Read vk.xml instead of vulkan_core.h
authorPiotr Byszewski <piotr.byszewski@mobica.com>
Fri, 3 Jun 2022 12:32:42 +0000 (14:32 +0200)
committerMatthew Netsch <quic_mnetsch@quicinc.com>
Fri, 29 Jul 2022 15:32:54 +0000 (08:32 -0700)
* gen_framework.py now reads vk.xml instead of vulkan_core.h
  (but only for Vulkan API, for SC old script is called)
* added gen_framework_sc.py script that reads vulkan_sc_core.h
  (gen_framework_sc.py is renamed previous version of
  gen_framework.py as currently we can't read .xml for SC because
  it is not ready yet; when it will be ready gen_framework_sc.py
  will be removed and gen_framework.py will work on xml for SC too)
* note that gen_framework.py still contains all changes that were
  done for SC; also gen_framework_sc.py should not change much so
  in future there should be no extra work in merging aside from
  adjusting gen_framework.py to read vksc.xml
* removed gen_ext_deps.py as operation from it now could be move
  to gen_framework.py (gen_ext_deps.py exited silently for VkSC)
* generation for Vulkan API is now much faster, many algorithms
  were simplified and in some cases new code was generated that
  previusly was mised as it required handling of special cases
  that were mised(see vkDeviceFeatures2.inl)
* resolved few issues related to aliases - now all objects (enums,
  enumerators, structures, functions, etc.) store list of their
  aliases; with this it was possible to remove all
  checks for "VK_KHR_buffer_device_address" to determine if
  getBufferDeviceAddress or getBufferDeviceAddressEXT should be
  called (this is now handled in vkInitDeviceFunctionPointers.inl)

VK-GL-CTS issue: 3151

Components: Framework, Vulkan

Affects:
dEQP-VK.*

Change-Id: If5020819630914e77dc5b0bc8bff22e45fbc5d97

65 files changed:
android/cts/main/src/vk-incremental-deqp.txt
android/cts/main/src/vk-master-2019-03-01.txt
android/cts/main/vk-incremental-deqp/api.txt
android/cts/main/vk-master-2019-03-01/api.txt
android/cts/main/vk-master-2022-03-01/api.txt
android/cts/main/vk-master/api.txt
external/vulkancts/framework/vulkan/CMakeLists.txt
external/vulkancts/framework/vulkan/generated/vulkan/vkApiExtensionDependencyInfo.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkBasicTypes.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkConcreteDeviceInterface.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkConcreteInstanceInterface.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkConcretePlatformInterface.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkCoreFunctionalities.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkDeviceDriverImpl.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkDeviceFeatureTest.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkDeviceFeatures.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkDeviceFeatures2.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkDeviceFeaturesForContextDecl.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkDeviceFeaturesForContextDefs.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkDeviceFeaturesForDefaultDeviceDefs.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkDeviceFunctionPointers.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkDeviceProperties.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkDevicePropertiesForContextDecl.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkDevicePropertiesForContextDefs.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkDevicePropertiesForDefaultDeviceDefs.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkExtensionFunctions.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkFunctionPointerTypes.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkGetStructureTypeImpl.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkHandleType.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkInitDeviceFunctionPointers.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkInitInstanceFunctionPointers.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkInitPlatformFunctionPointers.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkInstanceDriverImpl.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkInstanceFunctionPointers.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkNullDriverImpl.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkObjTypeImpl.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkPlatformDriverImpl.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkPlatformFunctionPointers.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkRefUtil.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkRefUtilImpl.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkStrUtil.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkStrUtilImpl.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkStructTypes.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkSupportedExtensions.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkTypeUtil.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkVirtualDeviceInterface.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkVirtualInstanceInterface.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkVirtualPlatformInterface.inl
external/vulkancts/framework/vulkan/vkNullDriver.cpp
external/vulkancts/modules/vulkan/api/vktApiDeviceInitializationTests.cpp
external/vulkancts/modules/vulkan/binding_model/vktBindingBufferDeviceAddressTests.cpp
external/vulkancts/modules/vulkan/binding_model/vktBindingDescriptorSetRandomTests.cpp
external/vulkancts/modules/vulkan/compute/vktComputeCooperativeMatrixTests.cpp
external/vulkancts/modules/vulkan/memory_model/vktMemoryModelMessagePassing.cpp
external/vulkancts/modules/vulkan/robustness/vktRobustnessExtsTests.cpp
external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmComputeShaderCase.cpp
external/vulkancts/modules/vulkan/ssbo/vktSSBOCornerCase.cpp
external/vulkancts/modules/vulkan/synchronization/vktSynchronizationWin32KeyedMutexTests.cpp
external/vulkancts/modules/vulkan/wsi/vktWsiSurfaceTests.cpp
external/vulkancts/mustpass/main/vk-default/api.txt
external/vulkancts/scripts/gen_ext_deps.py [deleted file]
external/vulkancts/scripts/gen_framework.py
external/vulkancts/scripts/gen_framework_c.py
external/vulkancts/scripts/gen_framework_sc.py [new file with mode: 0644]
scripts/check_build_sanity.py

index 6451861..c5d1915 100644 (file)
@@ -238,7 +238,7 @@ dEQP-VK.api.info.get_physical_device_properties2.features.workgroup_memory_expli
 dEQP-VK.api.info.get_physical_device_properties2.features.variable_pointers_features
 dEQP-VK.api.info.get_physical_device_properties2.features.vertex_attribute_divisor_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.vertex_input_dynamic_state_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.vulkan_memory_model_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.vulkan_memory_model_features
 dEQP-VK.api.info.get_physical_device_properties2.features.ycbcr_image_arrays_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.ycbcr2_plane444_formats_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.zero_initialize_workgroup_memory_features
index 9937e45..d3df8a9 100644 (file)
@@ -1487,7 +1487,7 @@ dEQP-VK.api.info.get_physical_device_properties2.features.workgroup_memory_expli
 dEQP-VK.api.info.get_physical_device_properties2.features.variable_pointers_features
 dEQP-VK.api.info.get_physical_device_properties2.features.vertex_attribute_divisor_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.vertex_input_dynamic_state_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.vulkan_memory_model_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.vulkan_memory_model_features
 dEQP-VK.api.info.get_physical_device_properties2.features.ycbcr_image_arrays_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.ycbcr2_plane444_formats_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.zero_initialize_workgroup_memory_features
index 5b0f787..ccd4031 100644 (file)
@@ -93,78 +93,78 @@ dEQP-VK.api.info.image_format_properties.3d.linear.astc_12x10_srgb_block
 dEQP-VK.api.info.image_format_properties.3d.linear.astc_12x12_unorm_block
 dEQP-VK.api.info.image_format_properties.3d.linear.astc_12x12_srgb_block
 dEQP-VK.api.info.get_physical_device_properties2.features.core
-dEQP-VK.api.info.get_physical_device_properties2.features.4444_formats_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.8_bit_storage_features
+dEQP-VK.api.info.get_physical_device_properties2.features.private_data_features
+dEQP-VK.api.info.get_physical_device_properties2.features.variable_pointers_features
+dEQP-VK.api.info.get_physical_device_properties2.features.multiview_features
+dEQP-VK.api.info.get_physical_device_properties2.features.present_id_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.present_wait_features_khr
 dEQP-VK.api.info.get_physical_device_properties2.features.16_bit_storage_features
-dEQP-VK.api.info.get_physical_device_properties2.features.acceleration_structure_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.astc_decode_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_subgroup_extended_types_features
+dEQP-VK.api.info.get_physical_device_properties2.features.sampler_ycbcr_conversion_features
+dEQP-VK.api.info.get_physical_device_properties2.features.protected_memory_features
 dEQP-VK.api.info.get_physical_device_properties2.features.blend_operation_advanced_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.buffer_device_address_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.buffer_device_address_features
-dEQP-VK.api.info.get_physical_device_properties2.features.conditional_rendering_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.custom_border_color_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.color_write_enable_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.descriptor_indexing_features
-dEQP-VK.api.info.get_physical_device_properties2.features.depth_clip_enable_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.dynamic_rendering_features
-dEQP-VK.api.info.get_physical_device_properties2.features.extended_dynamic_state_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.extended_dynamic_state2_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.fragment_density_map_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.fragment_density_map2_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.fragment_shading_rate_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.global_priority_query_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.multi_draw_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.inline_uniform_block_features
-dEQP-VK.api.info.get_physical_device_properties2.features.index_type_uint8_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.imageless_framebuffer_features
-dEQP-VK.api.info.get_physical_device_properties2.features.image_robustness_features
-dEQP-VK.api.info.get_physical_device_properties2.features.host_query_reset_features
-dEQP-VK.api.info.get_physical_device_properties2.features.line_rasterization_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.maintenance4_features
-dEQP-VK.api.info.get_physical_device_properties2.features.multiview_features
-dEQP-VK.api.info.get_physical_device_properties2.features.multi_draw_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.memory_priority_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_draw_parameters_features
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_float16_int8_features
+dEQP-VK.api.info.get_physical_device_properties2.features.host_query_reset_features
+dEQP-VK.api.info.get_physical_device_properties2.features.global_priority_query_features_khr
 dEQP-VK.api.info.get_physical_device_properties2.features.device_memory_report_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.performance_query_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_creation_cache_control_features
-dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_executable_properties_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.present_id_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.present_wait_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.protected_memory_features
-dEQP-VK.api.info.get_physical_device_properties2.features.provoking_vertex_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.primitive_topology_list_restart_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.private_data_features
-dEQP-VK.api.info.get_physical_device_properties2.features.ray_tracing_pipeline_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.ray_query_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.robustness2_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.sampler_ycbcr_conversion_features
-dEQP-VK.api.info.get_physical_device_properties2.features.scalar_block_layout_features
-dEQP-VK.api.info.get_physical_device_properties2.features.separate_depth_stencil_layouts_features
+dEQP-VK.api.info.get_physical_device_properties2.features.descriptor_indexing_features
+dEQP-VK.api.info.get_physical_device_properties2.features.timeline_semaphore_features
+dEQP-VK.api.info.get_physical_device_properties2.features.8_bit_storage_features
+dEQP-VK.api.info.get_physical_device_properties2.features.conditional_rendering_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.vulkan_memory_model_features
 dEQP-VK.api.info.get_physical_device_properties2.features.shader_atomic_int64_features
 dEQP-VK.api.info.get_physical_device_properties2.features.shader_atomic_float_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.shader_atomic_float2_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_float16_int8_features
+dEQP-VK.api.info.get_physical_device_properties2.features.vertex_attribute_divisor_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.astc_decode_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.transform_feedback_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.acceleration_structure_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.ray_tracing_pipeline_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.ray_query_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.fragment_density_map_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.fragment_density_map2_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.scalar_block_layout_features
+dEQP-VK.api.info.get_physical_device_properties2.features.uniform_buffer_standard_layout_features
+dEQP-VK.api.info.get_physical_device_properties2.features.depth_clip_enable_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.memory_priority_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.buffer_device_address_features
+dEQP-VK.api.info.get_physical_device_properties2.features.buffer_device_address_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.imageless_framebuffer_features
+dEQP-VK.api.info.get_physical_device_properties2.features.texture_compression_astchdr_features
+dEQP-VK.api.info.get_physical_device_properties2.features.ycbcr_image_arrays_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.performance_query_features_khr
 dEQP-VK.api.info.get_physical_device_properties2.features.shader_clock_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_demote_to_helper_invocation_features
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_draw_parameters_features
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_integer_dot_product_features
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_subgroup_extended_types_features
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_terminate_invocation_features
-dEQP-VK.api.info.get_physical_device_properties2.features.subgroup_size_control_features
-dEQP-VK.api.info.get_physical_device_properties2.features.synchronization2_features
+dEQP-VK.api.info.get_physical_device_properties2.features.index_type_uint8_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.fragment_shader_interlock_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.separate_depth_stencil_layouts_features
+dEQP-VK.api.info.get_physical_device_properties2.features.primitive_topology_list_restart_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_executable_properties_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_demote_to_helper_invocation_features
 dEQP-VK.api.info.get_physical_device_properties2.features.texel_buffer_alignment_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.texture_compression_astchdr_features
-dEQP-VK.api.info.get_physical_device_properties2.features.timeline_semaphore_features
-dEQP-VK.api.info.get_physical_device_properties2.features.transform_feedback_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.uniform_buffer_standard_layout_features
+dEQP-VK.api.info.get_physical_device_properties2.features.subgroup_size_control_features
+dEQP-VK.api.info.get_physical_device_properties2.features.line_rasterization_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_creation_cache_control_features
+dEQP-VK.api.info.get_physical_device_properties2.features.custom_border_color_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.extended_dynamic_state_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.extended_dynamic_state2_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.zero_initialize_workgroup_memory_features
+dEQP-VK.api.info.get_physical_device_properties2.features.robustness2_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.image_robustness_features
 dEQP-VK.api.info.get_physical_device_properties2.features.workgroup_memory_explicit_layout_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.variable_pointers_features
-dEQP-VK.api.info.get_physical_device_properties2.features.vertex_attribute_divisor_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.4444_formats_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.fragment_shading_rate_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_terminate_invocation_features
 dEQP-VK.api.info.get_physical_device_properties2.features.vertex_input_dynamic_state_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.vulkan_memory_model_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.ycbcr_image_arrays_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.color_write_enable_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.synchronization2_features
 dEQP-VK.api.info.get_physical_device_properties2.features.ycbcr2_plane444_formats_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.zero_initialize_workgroup_memory_features
+dEQP-VK.api.info.get_physical_device_properties2.features.provoking_vertex_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_integer_dot_product_features
+dEQP-VK.api.info.get_physical_device_properties2.features.dynamic_rendering_features
 dEQP-VK.api.info.get_physical_device_properties2.properties.basic
 dEQP-VK.api.info.get_physical_device_properties2.format_properties.basic
 dEQP-VK.api.info.get_physical_device_properties2.queue_family_properties.basic
index 5919dda..1c3daf6 100644 (file)
@@ -1810,78 +1810,78 @@ dEQP-VK.api.info.image_format_properties.3d.linear.astc_12x10_srgb_block
 dEQP-VK.api.info.image_format_properties.3d.linear.astc_12x12_unorm_block
 dEQP-VK.api.info.image_format_properties.3d.linear.astc_12x12_srgb_block
 dEQP-VK.api.info.get_physical_device_properties2.features.core
-dEQP-VK.api.info.get_physical_device_properties2.features.4444_formats_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.8_bit_storage_features
+dEQP-VK.api.info.get_physical_device_properties2.features.private_data_features
+dEQP-VK.api.info.get_physical_device_properties2.features.variable_pointers_features
+dEQP-VK.api.info.get_physical_device_properties2.features.multiview_features
+dEQP-VK.api.info.get_physical_device_properties2.features.present_id_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.present_wait_features_khr
 dEQP-VK.api.info.get_physical_device_properties2.features.16_bit_storage_features
-dEQP-VK.api.info.get_physical_device_properties2.features.acceleration_structure_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.astc_decode_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_subgroup_extended_types_features
+dEQP-VK.api.info.get_physical_device_properties2.features.sampler_ycbcr_conversion_features
+dEQP-VK.api.info.get_physical_device_properties2.features.protected_memory_features
 dEQP-VK.api.info.get_physical_device_properties2.features.blend_operation_advanced_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.buffer_device_address_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.buffer_device_address_features
-dEQP-VK.api.info.get_physical_device_properties2.features.conditional_rendering_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.custom_border_color_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.color_write_enable_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.descriptor_indexing_features
-dEQP-VK.api.info.get_physical_device_properties2.features.depth_clip_enable_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.dynamic_rendering_features
-dEQP-VK.api.info.get_physical_device_properties2.features.extended_dynamic_state_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.extended_dynamic_state2_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.fragment_density_map_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.fragment_density_map2_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.fragment_shading_rate_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.global_priority_query_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.multi_draw_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.inline_uniform_block_features
-dEQP-VK.api.info.get_physical_device_properties2.features.index_type_uint8_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.imageless_framebuffer_features
-dEQP-VK.api.info.get_physical_device_properties2.features.image_robustness_features
-dEQP-VK.api.info.get_physical_device_properties2.features.host_query_reset_features
-dEQP-VK.api.info.get_physical_device_properties2.features.line_rasterization_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.maintenance4_features
-dEQP-VK.api.info.get_physical_device_properties2.features.multiview_features
-dEQP-VK.api.info.get_physical_device_properties2.features.multi_draw_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.memory_priority_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_draw_parameters_features
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_float16_int8_features
+dEQP-VK.api.info.get_physical_device_properties2.features.host_query_reset_features
+dEQP-VK.api.info.get_physical_device_properties2.features.global_priority_query_features_khr
 dEQP-VK.api.info.get_physical_device_properties2.features.device_memory_report_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.performance_query_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_creation_cache_control_features
-dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_executable_properties_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.present_id_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.present_wait_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.protected_memory_features
-dEQP-VK.api.info.get_physical_device_properties2.features.provoking_vertex_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.primitive_topology_list_restart_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.private_data_features
-dEQP-VK.api.info.get_physical_device_properties2.features.ray_tracing_pipeline_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.ray_query_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.robustness2_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.sampler_ycbcr_conversion_features
-dEQP-VK.api.info.get_physical_device_properties2.features.scalar_block_layout_features
-dEQP-VK.api.info.get_physical_device_properties2.features.separate_depth_stencil_layouts_features
+dEQP-VK.api.info.get_physical_device_properties2.features.descriptor_indexing_features
+dEQP-VK.api.info.get_physical_device_properties2.features.timeline_semaphore_features
+dEQP-VK.api.info.get_physical_device_properties2.features.8_bit_storage_features
+dEQP-VK.api.info.get_physical_device_properties2.features.conditional_rendering_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.vulkan_memory_model_features
 dEQP-VK.api.info.get_physical_device_properties2.features.shader_atomic_int64_features
 dEQP-VK.api.info.get_physical_device_properties2.features.shader_atomic_float_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.shader_atomic_float2_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_float16_int8_features
+dEQP-VK.api.info.get_physical_device_properties2.features.vertex_attribute_divisor_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.astc_decode_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.transform_feedback_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.acceleration_structure_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.ray_tracing_pipeline_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.ray_query_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.fragment_density_map_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.fragment_density_map2_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.scalar_block_layout_features
+dEQP-VK.api.info.get_physical_device_properties2.features.uniform_buffer_standard_layout_features
+dEQP-VK.api.info.get_physical_device_properties2.features.depth_clip_enable_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.memory_priority_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.buffer_device_address_features
+dEQP-VK.api.info.get_physical_device_properties2.features.buffer_device_address_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.imageless_framebuffer_features
+dEQP-VK.api.info.get_physical_device_properties2.features.texture_compression_astchdr_features
+dEQP-VK.api.info.get_physical_device_properties2.features.ycbcr_image_arrays_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.performance_query_features_khr
 dEQP-VK.api.info.get_physical_device_properties2.features.shader_clock_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_demote_to_helper_invocation_features
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_draw_parameters_features
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_integer_dot_product_features
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_subgroup_extended_types_features
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_terminate_invocation_features
-dEQP-VK.api.info.get_physical_device_properties2.features.subgroup_size_control_features
-dEQP-VK.api.info.get_physical_device_properties2.features.synchronization2_features
+dEQP-VK.api.info.get_physical_device_properties2.features.index_type_uint8_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.fragment_shader_interlock_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.separate_depth_stencil_layouts_features
+dEQP-VK.api.info.get_physical_device_properties2.features.primitive_topology_list_restart_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_executable_properties_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_demote_to_helper_invocation_features
 dEQP-VK.api.info.get_physical_device_properties2.features.texel_buffer_alignment_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.texture_compression_astchdr_features
-dEQP-VK.api.info.get_physical_device_properties2.features.timeline_semaphore_features
-dEQP-VK.api.info.get_physical_device_properties2.features.transform_feedback_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.uniform_buffer_standard_layout_features
+dEQP-VK.api.info.get_physical_device_properties2.features.subgroup_size_control_features
+dEQP-VK.api.info.get_physical_device_properties2.features.line_rasterization_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_creation_cache_control_features
+dEQP-VK.api.info.get_physical_device_properties2.features.custom_border_color_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.extended_dynamic_state_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.extended_dynamic_state2_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.zero_initialize_workgroup_memory_features
+dEQP-VK.api.info.get_physical_device_properties2.features.robustness2_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.image_robustness_features
 dEQP-VK.api.info.get_physical_device_properties2.features.workgroup_memory_explicit_layout_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.variable_pointers_features
-dEQP-VK.api.info.get_physical_device_properties2.features.vertex_attribute_divisor_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.4444_formats_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.fragment_shading_rate_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_terminate_invocation_features
 dEQP-VK.api.info.get_physical_device_properties2.features.vertex_input_dynamic_state_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.vulkan_memory_model_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.ycbcr_image_arrays_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.color_write_enable_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.synchronization2_features
 dEQP-VK.api.info.get_physical_device_properties2.features.ycbcr2_plane444_formats_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.zero_initialize_workgroup_memory_features
+dEQP-VK.api.info.get_physical_device_properties2.features.provoking_vertex_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_integer_dot_product_features
+dEQP-VK.api.info.get_physical_device_properties2.features.dynamic_rendering_features
 dEQP-VK.api.info.get_physical_device_properties2.properties.basic
 dEQP-VK.api.info.get_physical_device_properties2.format_properties.basic
 dEQP-VK.api.info.get_physical_device_properties2.queue_family_properties.basic
@@ -10019,115 +10019,115 @@ dEQP-VK.api.device_init.create_device_unsupported_extensions.basic
 dEQP-VK.api.device_init.create_device_various_queue_counts.basic
 dEQP-VK.api.device_init.create_device_features2.basic
 dEQP-VK.api.device_init.create_device_unsupported_features.core
-dEQP-VK.api.device_init.create_device_unsupported_features.16_bit_storage_features
-dEQP-VK.api.device_init.create_device_unsupported_features.multiview_features
+dEQP-VK.api.device_init.create_device_unsupported_features.device_generated_commands_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.private_data_features
 dEQP-VK.api.device_init.create_device_unsupported_features.variable_pointers_features
-dEQP-VK.api.device_init.create_device_unsupported_features.protected_memory_features
+dEQP-VK.api.device_init.create_device_unsupported_features.multiview_features
+dEQP-VK.api.device_init.create_device_unsupported_features.present_id_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.present_wait_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.16_bit_storage_features
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_subgroup_extended_types_features
 dEQP-VK.api.device_init.create_device_unsupported_features.sampler_ycbcr_conversion_features
+dEQP-VK.api.device_init.create_device_unsupported_features.protected_memory_features
+dEQP-VK.api.device_init.create_device_unsupported_features.blend_operation_advanced_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.multi_draw_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.inline_uniform_block_features
+dEQP-VK.api.device_init.create_device_unsupported_features.maintenance4_features
 dEQP-VK.api.device_init.create_device_unsupported_features.shader_draw_parameters_features
-dEQP-VK.api.device_init.create_device_unsupported_features.vulkan11_features
-dEQP-VK.api.device_init.create_device_unsupported_features.vulkan12_features
-dEQP-VK.api.device_init.create_device_unsupported_features.8_bit_storage_features
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_atomic_int64_features
 dEQP-VK.api.device_init.create_device_unsupported_features.shader_float16_int8_features
-dEQP-VK.api.device_init.create_device_unsupported_features.descriptor_indexing_features
-dEQP-VK.api.device_init.create_device_unsupported_features.scalar_block_layout_features
-dEQP-VK.api.device_init.create_device_unsupported_features.vulkan_memory_model_features
-dEQP-VK.api.device_init.create_device_unsupported_features.imageless_framebuffer_features
-dEQP-VK.api.device_init.create_device_unsupported_features.uniform_buffer_standard_layout_features
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_subgroup_extended_types_features
-dEQP-VK.api.device_init.create_device_unsupported_features.separate_depth_stencil_layouts_features
 dEQP-VK.api.device_init.create_device_unsupported_features.host_query_reset_features
-dEQP-VK.api.device_init.create_device_unsupported_features.timeline_semaphore_features
-dEQP-VK.api.device_init.create_device_unsupported_features.buffer_device_address_features
-dEQP-VK.api.device_init.create_device_unsupported_features.vulkan13_features
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_terminate_invocation_features
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_demote_to_helper_invocation_features
-dEQP-VK.api.device_init.create_device_unsupported_features.private_data_features
-dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_creation_cache_control_features
-dEQP-VK.api.device_init.create_device_unsupported_features.synchronization2_features
-dEQP-VK.api.device_init.create_device_unsupported_features.zero_initialize_workgroup_memory_features
-dEQP-VK.api.device_init.create_device_unsupported_features.image_robustness_features
-dEQP-VK.api.device_init.create_device_unsupported_features.subgroup_size_control_features
-dEQP-VK.api.device_init.create_device_unsupported_features.inline_uniform_block_features
-dEQP-VK.api.device_init.create_device_unsupported_features.texture_compression_astchdr_features
-dEQP-VK.api.device_init.create_device_unsupported_features.dynamic_rendering_features
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_integer_dot_product_features
-dEQP-VK.api.device_init.create_device_unsupported_features.maintenance4_features
-dEQP-VK.api.device_init.create_device_unsupported_features.performance_query_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_clock_features_khr
 dEQP-VK.api.device_init.create_device_unsupported_features.global_priority_query_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shading_rate_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.present_wait_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_executable_properties_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.present_id_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shader_barycentric_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_subgroup_uniform_control_flow_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.workgroup_memory_explicit_layout_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.transform_feedback_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.corner_sampled_image_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.astc_decode_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.device_memory_report_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.descriptor_indexing_features
+dEQP-VK.api.device_init.create_device_unsupported_features.timeline_semaphore_features
+dEQP-VK.api.device_init.create_device_unsupported_features.8_bit_storage_features
 dEQP-VK.api.device_init.create_device_unsupported_features.conditional_rendering_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.depth_clip_enable_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.blend_operation_advanced_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_sm_builtins_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.shading_rate_image_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.representative_fragment_test_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.vulkan_memory_model_features
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_atomic_int64_features
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_atomic_float_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_atomic_float2_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.vertex_attribute_divisor_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.astc_decode_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.transform_feedback_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.representative_fragment_test_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.exclusive_scissor_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.corner_sampled_image_features_nv
 dEQP-VK.api.device_init.create_device_unsupported_features.compute_shader_derivatives_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.mesh_shader_features_nv
 dEQP-VK.api.device_init.create_device_unsupported_features.shader_image_footprint_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.exclusive_scissor_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_integer_functions2_features_intel
+dEQP-VK.api.device_init.create_device_unsupported_features.dedicated_allocation_image_aliasing_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.shading_rate_image_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.invocation_mask_features_huawei
+dEQP-VK.api.device_init.create_device_unsupported_features.mesh_shader_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.acceleration_structure_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.ray_tracing_pipeline_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.ray_query_features_khr
 dEQP-VK.api.device_init.create_device_unsupported_features.fragment_density_map_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.coherent_memory_features_amd
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_image_atomic_int64_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.fragment_density_map2_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.fragment_density_map_offset_features_qcom
+dEQP-VK.api.device_init.create_device_unsupported_features.scalar_block_layout_features
+dEQP-VK.api.device_init.create_device_unsupported_features.uniform_buffer_standard_layout_features
+dEQP-VK.api.device_init.create_device_unsupported_features.depth_clip_enable_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.memory_priority_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.dedicated_allocation_image_aliasing_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.pageable_device_local_memory_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.buffer_device_address_features
 dEQP-VK.api.device_init.create_device_unsupported_features.buffer_device_address_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.imageless_framebuffer_features
+dEQP-VK.api.device_init.create_device_unsupported_features.texture_compression_astchdr_features
 dEQP-VK.api.device_init.create_device_unsupported_features.cooperative_matrix_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.coverage_reduction_mode_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shader_interlock_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.ycbcr_image_arrays_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.provoking_vertex_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.line_rasterization_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_atomic_float_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.performance_query_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.coverage_reduction_mode_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_integer_functions2_features_intel
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_clock_features_khr
 dEQP-VK.api.device_init.create_device_unsupported_features.index_type_uint8_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.extended_dynamic_state_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_atomic_float2_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.device_generated_commands_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.inherited_viewport_scissor_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_sm_builtins_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shader_interlock_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.separate_depth_stencil_layouts_features
+dEQP-VK.api.device_init.create_device_unsupported_features.primitive_topology_list_restart_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_executable_properties_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_demote_to_helper_invocation_features
 dEQP-VK.api.device_init.create_device_unsupported_features.texel_buffer_alignment_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.device_memory_report_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.robustness2_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.subgroup_size_control_features
+dEQP-VK.api.device_init.create_device_unsupported_features.line_rasterization_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_creation_cache_control_features
+dEQP-VK.api.device_init.create_device_unsupported_features.vulkan11_features
+dEQP-VK.api.device_init.create_device_unsupported_features.vulkan12_features
+dEQP-VK.api.device_init.create_device_unsupported_features.vulkan13_features
+dEQP-VK.api.device_init.create_device_unsupported_features.coherent_memory_features_amd
 dEQP-VK.api.device_init.create_device_unsupported_features.custom_border_color_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.border_color_swizzle_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.extended_dynamic_state_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.extended_dynamic_state2_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.diagnostics_config_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shading_rate_enums_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.ray_tracing_motion_blur_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.ycbcr2_plane444_formats_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.fragment_density_map2_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.zero_initialize_workgroup_memory_features
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_subgroup_uniform_control_flow_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.robustness2_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.image_robustness_features
+dEQP-VK.api.device_init.create_device_unsupported_features.workgroup_memory_explicit_layout_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.portability_subset_features_khr
 dEQP-VK.api.device_init.create_device_unsupported_features.4444_formats_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.rasterization_order_attachment_access_features_arm
-dEQP-VK.api.device_init.create_device_unsupported_features.rgba10_x6_formats_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.subpass_shading_features_huawei
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_image_atomic_int64_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shading_rate_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_terminate_invocation_features
+dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shading_rate_enums_features_nv
 dEQP-VK.api.device_init.create_device_unsupported_features.mutable_descriptor_type_features_valve
-dEQP-VK.api.device_init.create_device_unsupported_features.vertex_input_dynamic_state_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.depth_clip_control_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.primitive_topology_list_restart_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.subpass_shading_features_huawei
-dEQP-VK.api.device_init.create_device_unsupported_features.invocation_mask_features_huawei
+dEQP-VK.api.device_init.create_device_unsupported_features.vertex_input_dynamic_state_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.external_memory_rdma_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.extended_dynamic_state2_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.color_write_enable_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.synchronization2_features
+dEQP-VK.api.device_init.create_device_unsupported_features.inherited_viewport_scissor_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.ycbcr2_plane444_formats_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.provoking_vertex_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_integer_dot_product_features
+dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shader_barycentric_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.ray_tracing_motion_blur_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.rgba10_x6_formats_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.dynamic_rendering_features
 dEQP-VK.api.device_init.create_device_unsupported_features.image_view_min_lod_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.multi_draw_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.border_color_swizzle_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.pageable_device_local_memory_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.fragment_density_map_offset_features_qcom
+dEQP-VK.api.device_init.create_device_unsupported_features.rasterization_order_attachment_access_features_arm
 dEQP-VK.api.device_init.create_device_unsupported_features.linear_color_attachment_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.acceleration_structure_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.ray_tracing_pipeline_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.ray_query_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.portability_subset_features_khr
 dEQP-VK.api.device_init.create_device_queue2.basic
 dEQP-VK.api.device_init.create_instance_device_intentional_alloc_fail.basic
 dEQP-VK.api.descriptor_set.descriptor_set_layout_lifetime.graphics
index 9c835d3..c9a7f0f 100644 (file)
@@ -4,6 +4,30 @@ dEQP-VK.api.pipeline.pipeline_invalid_pointers_unused_structs.graphics
 dEQP-VK.api.pipeline.pipeline_invalid_pointers_unused_structs.compute
 dEQP-VK.api.invariance.memory_requirements_matching
 dEQP-VK.api.info.extension_core_versions.extension_core_versions
+dEQP-VK.api.info.get_physical_device_properties2.features.ray_tracing_maintenance1_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.pageable_device_local_memory_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.vulkan11_features
+dEQP-VK.api.info.get_physical_device_properties2.features.vulkan12_features
+dEQP-VK.api.info.get_physical_device_properties2.features.vulkan13_features
+dEQP-VK.api.info.get_physical_device_properties2.features.border_color_swizzle_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_subgroup_uniform_control_flow_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.portability_subset_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_image_atomic_int64_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.image2_d_view_of3_d_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.depth_clip_control_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.primitives_generated_query_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.multisampled_render_to_single_sampled_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.fragment_shader_barycentric_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.rgba10_x6_formats_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.image_view_min_lod_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.graphics_pipeline_library_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_module_identifier_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.image_compression_control_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.image_compression_control_swapchain_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.subpass_merge_feedback_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_properties_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.non_seamless_cube_map_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_robustness_features_ext
 dEQP-VK.api.info.vulkan1p3.features
 dEQP-VK.api.info.vulkan1p3.properties
 dEQP-VK.api.info.vulkan1p3.feature_extensions_consistency
@@ -1074,20 +1098,20 @@ dEQP-VK.api.device_init.create_device_global_priority_khr.basic
 dEQP-VK.api.device_init.create_device_global_priority_query.basic
 dEQP-VK.api.device_init.create_device_global_priority_query_khr.basic
 dEQP-VK.api.device_init.create_device_unsupported_features.ray_tracing_maintenance1_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_robustness_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.image2_d_view_of3_d_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.primitives_generated_query_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.multisampled_render_to_single_sampled_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.graphics_pipeline_library_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_early_and_late_fragment_tests_features_amd
+dEQP-VK.api.device_init.create_device_unsupported_features.descriptor_set_host_mapping_features_valve
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_module_identifier_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.image_compression_control_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.image_compression_control_swapchain_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.subpass_merge_feedback_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_properties_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.multisampled_render_to_single_sampled_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.primitives_generated_query_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.image2_d_view_of3_d_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.descriptor_set_host_mapping_features_valve
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_early_and_late_fragment_tests_features_amd
 dEQP-VK.api.device_init.create_device_unsupported_features.non_seamless_cube_map_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.image_compression_control_swapchain_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_robustness_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.image_processing_features_qcom
-dEQP-VK.api.device_init.create_device_unsupported_features.subpass_merge_feedback_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_module_identifier_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.tile_properties_features_qcom
 dEQP-VK.api.device_init.create_device_queue2_two_queues.basic
 dEQP-VK.api.device_init.create_device_queue2_all_protected.basic
index 7840360..bc6a4df 100644 (file)
@@ -1872,78 +1872,102 @@ dEQP-VK.api.info.image_format_properties.3d.linear.astc_12x12_unorm_block
 dEQP-VK.api.info.image_format_properties.3d.linear.astc_12x12_srgb_block
 dEQP-VK.api.info.extension_core_versions.extension_core_versions
 dEQP-VK.api.info.get_physical_device_properties2.features.core
-dEQP-VK.api.info.get_physical_device_properties2.features.4444_formats_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.8_bit_storage_features
+dEQP-VK.api.info.get_physical_device_properties2.features.private_data_features
+dEQP-VK.api.info.get_physical_device_properties2.features.variable_pointers_features
+dEQP-VK.api.info.get_physical_device_properties2.features.multiview_features
+dEQP-VK.api.info.get_physical_device_properties2.features.present_id_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.present_wait_features_khr
 dEQP-VK.api.info.get_physical_device_properties2.features.16_bit_storage_features
-dEQP-VK.api.info.get_physical_device_properties2.features.acceleration_structure_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.astc_decode_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_subgroup_extended_types_features
+dEQP-VK.api.info.get_physical_device_properties2.features.sampler_ycbcr_conversion_features
+dEQP-VK.api.info.get_physical_device_properties2.features.protected_memory_features
 dEQP-VK.api.info.get_physical_device_properties2.features.blend_operation_advanced_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.buffer_device_address_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.buffer_device_address_features
-dEQP-VK.api.info.get_physical_device_properties2.features.conditional_rendering_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.custom_border_color_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.color_write_enable_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.descriptor_indexing_features
-dEQP-VK.api.info.get_physical_device_properties2.features.depth_clip_enable_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.dynamic_rendering_features
-dEQP-VK.api.info.get_physical_device_properties2.features.extended_dynamic_state_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.extended_dynamic_state2_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.fragment_density_map_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.fragment_density_map2_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.fragment_shading_rate_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.global_priority_query_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.multi_draw_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.inline_uniform_block_features
-dEQP-VK.api.info.get_physical_device_properties2.features.index_type_uint8_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.imageless_framebuffer_features
-dEQP-VK.api.info.get_physical_device_properties2.features.image_robustness_features
-dEQP-VK.api.info.get_physical_device_properties2.features.host_query_reset_features
-dEQP-VK.api.info.get_physical_device_properties2.features.line_rasterization_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.maintenance4_features
-dEQP-VK.api.info.get_physical_device_properties2.features.multiview_features
-dEQP-VK.api.info.get_physical_device_properties2.features.multi_draw_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.memory_priority_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_draw_parameters_features
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_float16_int8_features
+dEQP-VK.api.info.get_physical_device_properties2.features.host_query_reset_features
+dEQP-VK.api.info.get_physical_device_properties2.features.global_priority_query_features_khr
 dEQP-VK.api.info.get_physical_device_properties2.features.device_memory_report_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.performance_query_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_creation_cache_control_features
-dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_executable_properties_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.present_id_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.present_wait_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.protected_memory_features
-dEQP-VK.api.info.get_physical_device_properties2.features.provoking_vertex_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.primitive_topology_list_restart_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.private_data_features
-dEQP-VK.api.info.get_physical_device_properties2.features.ray_tracing_pipeline_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.ray_query_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.robustness2_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.sampler_ycbcr_conversion_features
-dEQP-VK.api.info.get_physical_device_properties2.features.scalar_block_layout_features
-dEQP-VK.api.info.get_physical_device_properties2.features.separate_depth_stencil_layouts_features
+dEQP-VK.api.info.get_physical_device_properties2.features.descriptor_indexing_features
+dEQP-VK.api.info.get_physical_device_properties2.features.timeline_semaphore_features
+dEQP-VK.api.info.get_physical_device_properties2.features.8_bit_storage_features
+dEQP-VK.api.info.get_physical_device_properties2.features.conditional_rendering_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.vulkan_memory_model_features
 dEQP-VK.api.info.get_physical_device_properties2.features.shader_atomic_int64_features
 dEQP-VK.api.info.get_physical_device_properties2.features.shader_atomic_float_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.shader_atomic_float2_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_float16_int8_features
+dEQP-VK.api.info.get_physical_device_properties2.features.vertex_attribute_divisor_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.astc_decode_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.transform_feedback_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.acceleration_structure_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.ray_tracing_pipeline_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.ray_query_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.ray_tracing_maintenance1_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.fragment_density_map_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.fragment_density_map2_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.scalar_block_layout_features
+dEQP-VK.api.info.get_physical_device_properties2.features.uniform_buffer_standard_layout_features
+dEQP-VK.api.info.get_physical_device_properties2.features.depth_clip_enable_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.memory_priority_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.pageable_device_local_memory_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.buffer_device_address_features
+dEQP-VK.api.info.get_physical_device_properties2.features.buffer_device_address_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.imageless_framebuffer_features
+dEQP-VK.api.info.get_physical_device_properties2.features.texture_compression_astchdr_features
+dEQP-VK.api.info.get_physical_device_properties2.features.ycbcr_image_arrays_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.performance_query_features_khr
 dEQP-VK.api.info.get_physical_device_properties2.features.shader_clock_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_demote_to_helper_invocation_features
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_draw_parameters_features
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_integer_dot_product_features
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_subgroup_extended_types_features
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_terminate_invocation_features
-dEQP-VK.api.info.get_physical_device_properties2.features.subgroup_size_control_features
-dEQP-VK.api.info.get_physical_device_properties2.features.synchronization2_features
+dEQP-VK.api.info.get_physical_device_properties2.features.index_type_uint8_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.fragment_shader_interlock_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.separate_depth_stencil_layouts_features
+dEQP-VK.api.info.get_physical_device_properties2.features.primitive_topology_list_restart_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_executable_properties_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_demote_to_helper_invocation_features
 dEQP-VK.api.info.get_physical_device_properties2.features.texel_buffer_alignment_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.texture_compression_astchdr_features
-dEQP-VK.api.info.get_physical_device_properties2.features.timeline_semaphore_features
-dEQP-VK.api.info.get_physical_device_properties2.features.transform_feedback_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.uniform_buffer_standard_layout_features
+dEQP-VK.api.info.get_physical_device_properties2.features.subgroup_size_control_features
+dEQP-VK.api.info.get_physical_device_properties2.features.line_rasterization_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_creation_cache_control_features
+dEQP-VK.api.info.get_physical_device_properties2.features.vulkan11_features
+dEQP-VK.api.info.get_physical_device_properties2.features.vulkan12_features
+dEQP-VK.api.info.get_physical_device_properties2.features.vulkan13_features
+dEQP-VK.api.info.get_physical_device_properties2.features.custom_border_color_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.border_color_swizzle_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.extended_dynamic_state_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.extended_dynamic_state2_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.zero_initialize_workgroup_memory_features
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_subgroup_uniform_control_flow_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.robustness2_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.image_robustness_features
 dEQP-VK.api.info.get_physical_device_properties2.features.workgroup_memory_explicit_layout_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.variable_pointers_features
-dEQP-VK.api.info.get_physical_device_properties2.features.vertex_attribute_divisor_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.portability_subset_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.4444_formats_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_image_atomic_int64_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.fragment_shading_rate_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_terminate_invocation_features
+dEQP-VK.api.info.get_physical_device_properties2.features.image2_d_view_of3_d_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.depth_clip_control_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.vertex_input_dynamic_state_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.vulkan_memory_model_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.ycbcr_image_arrays_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.color_write_enable_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.synchronization2_features
+dEQP-VK.api.info.get_physical_device_properties2.features.primitives_generated_query_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.multisampled_render_to_single_sampled_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.ycbcr2_plane444_formats_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.zero_initialize_workgroup_memory_features
+dEQP-VK.api.info.get_physical_device_properties2.features.provoking_vertex_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_integer_dot_product_features
+dEQP-VK.api.info.get_physical_device_properties2.features.fragment_shader_barycentric_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.rgba10_x6_formats_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.dynamic_rendering_features
+dEQP-VK.api.info.get_physical_device_properties2.features.image_view_min_lod_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.graphics_pipeline_library_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_module_identifier_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.image_compression_control_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.image_compression_control_swapchain_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.subpass_merge_feedback_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_properties_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.non_seamless_cube_map_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_robustness_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.properties.basic
 dEQP-VK.api.info.get_physical_device_properties2.format_properties.basic
 dEQP-VK.api.info.get_physical_device_properties2.queue_family_properties.basic
@@ -41727,131 +41751,131 @@ dEQP-VK.api.device_init.create_device_global_priority_query.basic
 dEQP-VK.api.device_init.create_device_global_priority_query_khr.basic
 dEQP-VK.api.device_init.create_device_features2.basic
 dEQP-VK.api.device_init.create_device_unsupported_features.core
-dEQP-VK.api.device_init.create_device_unsupported_features.16_bit_storage_features
-dEQP-VK.api.device_init.create_device_unsupported_features.multiview_features
+dEQP-VK.api.device_init.create_device_unsupported_features.device_generated_commands_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.private_data_features
 dEQP-VK.api.device_init.create_device_unsupported_features.variable_pointers_features
-dEQP-VK.api.device_init.create_device_unsupported_features.protected_memory_features
+dEQP-VK.api.device_init.create_device_unsupported_features.multiview_features
+dEQP-VK.api.device_init.create_device_unsupported_features.present_id_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.present_wait_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.16_bit_storage_features
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_subgroup_extended_types_features
 dEQP-VK.api.device_init.create_device_unsupported_features.sampler_ycbcr_conversion_features
+dEQP-VK.api.device_init.create_device_unsupported_features.protected_memory_features
+dEQP-VK.api.device_init.create_device_unsupported_features.blend_operation_advanced_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.multi_draw_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.inline_uniform_block_features
+dEQP-VK.api.device_init.create_device_unsupported_features.maintenance4_features
 dEQP-VK.api.device_init.create_device_unsupported_features.shader_draw_parameters_features
-dEQP-VK.api.device_init.create_device_unsupported_features.vulkan11_features
-dEQP-VK.api.device_init.create_device_unsupported_features.vulkan12_features
-dEQP-VK.api.device_init.create_device_unsupported_features.8_bit_storage_features
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_atomic_int64_features
 dEQP-VK.api.device_init.create_device_unsupported_features.shader_float16_int8_features
-dEQP-VK.api.device_init.create_device_unsupported_features.descriptor_indexing_features
-dEQP-VK.api.device_init.create_device_unsupported_features.scalar_block_layout_features
-dEQP-VK.api.device_init.create_device_unsupported_features.vulkan_memory_model_features
-dEQP-VK.api.device_init.create_device_unsupported_features.imageless_framebuffer_features
-dEQP-VK.api.device_init.create_device_unsupported_features.uniform_buffer_standard_layout_features
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_subgroup_extended_types_features
-dEQP-VK.api.device_init.create_device_unsupported_features.separate_depth_stencil_layouts_features
 dEQP-VK.api.device_init.create_device_unsupported_features.host_query_reset_features
-dEQP-VK.api.device_init.create_device_unsupported_features.timeline_semaphore_features
-dEQP-VK.api.device_init.create_device_unsupported_features.buffer_device_address_features
-dEQP-VK.api.device_init.create_device_unsupported_features.vulkan13_features
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_terminate_invocation_features
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_demote_to_helper_invocation_features
-dEQP-VK.api.device_init.create_device_unsupported_features.private_data_features
-dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_creation_cache_control_features
-dEQP-VK.api.device_init.create_device_unsupported_features.synchronization2_features
-dEQP-VK.api.device_init.create_device_unsupported_features.zero_initialize_workgroup_memory_features
-dEQP-VK.api.device_init.create_device_unsupported_features.image_robustness_features
-dEQP-VK.api.device_init.create_device_unsupported_features.subgroup_size_control_features
-dEQP-VK.api.device_init.create_device_unsupported_features.inline_uniform_block_features
-dEQP-VK.api.device_init.create_device_unsupported_features.texture_compression_astchdr_features
-dEQP-VK.api.device_init.create_device_unsupported_features.dynamic_rendering_features
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_integer_dot_product_features
-dEQP-VK.api.device_init.create_device_unsupported_features.maintenance4_features
-dEQP-VK.api.device_init.create_device_unsupported_features.performance_query_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_clock_features_khr
 dEQP-VK.api.device_init.create_device_unsupported_features.global_priority_query_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shading_rate_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.present_wait_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_executable_properties_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.present_id_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shader_barycentric_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_subgroup_uniform_control_flow_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.workgroup_memory_explicit_layout_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.ray_tracing_maintenance1_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.transform_feedback_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.corner_sampled_image_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.astc_decode_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_robustness_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.device_memory_report_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.descriptor_indexing_features
+dEQP-VK.api.device_init.create_device_unsupported_features.timeline_semaphore_features
+dEQP-VK.api.device_init.create_device_unsupported_features.8_bit_storage_features
 dEQP-VK.api.device_init.create_device_unsupported_features.conditional_rendering_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.depth_clip_enable_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.blend_operation_advanced_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_sm_builtins_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.shading_rate_image_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.representative_fragment_test_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.vulkan_memory_model_features
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_atomic_int64_features
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_atomic_float_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_atomic_float2_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.vertex_attribute_divisor_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.astc_decode_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.transform_feedback_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.representative_fragment_test_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.exclusive_scissor_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.corner_sampled_image_features_nv
 dEQP-VK.api.device_init.create_device_unsupported_features.compute_shader_derivatives_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.mesh_shader_features_nv
 dEQP-VK.api.device_init.create_device_unsupported_features.shader_image_footprint_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.exclusive_scissor_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_integer_functions2_features_intel
+dEQP-VK.api.device_init.create_device_unsupported_features.dedicated_allocation_image_aliasing_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.shading_rate_image_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.invocation_mask_features_huawei
+dEQP-VK.api.device_init.create_device_unsupported_features.mesh_shader_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.acceleration_structure_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.ray_tracing_pipeline_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.ray_query_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.ray_tracing_maintenance1_features_khr
 dEQP-VK.api.device_init.create_device_unsupported_features.fragment_density_map_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.coherent_memory_features_amd
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_image_atomic_int64_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.fragment_density_map2_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.fragment_density_map_offset_features_qcom
+dEQP-VK.api.device_init.create_device_unsupported_features.scalar_block_layout_features
+dEQP-VK.api.device_init.create_device_unsupported_features.uniform_buffer_standard_layout_features
+dEQP-VK.api.device_init.create_device_unsupported_features.depth_clip_enable_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.memory_priority_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.dedicated_allocation_image_aliasing_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.pageable_device_local_memory_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.buffer_device_address_features
 dEQP-VK.api.device_init.create_device_unsupported_features.buffer_device_address_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.imageless_framebuffer_features
+dEQP-VK.api.device_init.create_device_unsupported_features.texture_compression_astchdr_features
 dEQP-VK.api.device_init.create_device_unsupported_features.cooperative_matrix_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.coverage_reduction_mode_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shader_interlock_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.ycbcr_image_arrays_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.provoking_vertex_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.line_rasterization_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_atomic_float_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.performance_query_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.coverage_reduction_mode_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_integer_functions2_features_intel
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_clock_features_khr
 dEQP-VK.api.device_init.create_device_unsupported_features.index_type_uint8_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.extended_dynamic_state_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_atomic_float2_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.device_generated_commands_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.inherited_viewport_scissor_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_sm_builtins_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shader_interlock_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.separate_depth_stencil_layouts_features
+dEQP-VK.api.device_init.create_device_unsupported_features.primitive_topology_list_restart_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_executable_properties_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_demote_to_helper_invocation_features
 dEQP-VK.api.device_init.create_device_unsupported_features.texel_buffer_alignment_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.device_memory_report_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.robustness2_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.subgroup_size_control_features
+dEQP-VK.api.device_init.create_device_unsupported_features.line_rasterization_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_creation_cache_control_features
+dEQP-VK.api.device_init.create_device_unsupported_features.vulkan11_features
+dEQP-VK.api.device_init.create_device_unsupported_features.vulkan12_features
+dEQP-VK.api.device_init.create_device_unsupported_features.vulkan13_features
+dEQP-VK.api.device_init.create_device_unsupported_features.coherent_memory_features_amd
 dEQP-VK.api.device_init.create_device_unsupported_features.custom_border_color_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.border_color_swizzle_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.extended_dynamic_state_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.extended_dynamic_state2_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.diagnostics_config_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.graphics_pipeline_library_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_early_and_late_fragment_tests_features_amd
-dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shading_rate_enums_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.ray_tracing_motion_blur_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.ycbcr2_plane444_formats_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.fragment_density_map2_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.image_compression_control_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.zero_initialize_workgroup_memory_features
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_subgroup_uniform_control_flow_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.robustness2_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.image_robustness_features
+dEQP-VK.api.device_init.create_device_unsupported_features.workgroup_memory_explicit_layout_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.portability_subset_features_khr
 dEQP-VK.api.device_init.create_device_unsupported_features.4444_formats_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.rasterization_order_attachment_access_features_arm
-dEQP-VK.api.device_init.create_device_unsupported_features.rgba10_x6_formats_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.subpass_shading_features_huawei
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_image_atomic_int64_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shading_rate_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_terminate_invocation_features
+dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shading_rate_enums_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.image2_d_view_of3_d_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.mutable_descriptor_type_features_valve
-dEQP-VK.api.device_init.create_device_unsupported_features.vertex_input_dynamic_state_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.depth_clip_control_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.primitive_topology_list_restart_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.subpass_shading_features_huawei
-dEQP-VK.api.device_init.create_device_unsupported_features.invocation_mask_features_huawei
+dEQP-VK.api.device_init.create_device_unsupported_features.vertex_input_dynamic_state_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.external_memory_rdma_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_properties_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.multisampled_render_to_single_sampled_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.extended_dynamic_state2_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.color_write_enable_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.synchronization2_features
 dEQP-VK.api.device_init.create_device_unsupported_features.primitives_generated_query_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.multisampled_render_to_single_sampled_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.inherited_viewport_scissor_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.ycbcr2_plane444_formats_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.provoking_vertex_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_integer_dot_product_features
+dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shader_barycentric_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.ray_tracing_motion_blur_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.rgba10_x6_formats_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.dynamic_rendering_features
 dEQP-VK.api.device_init.create_device_unsupported_features.image_view_min_lod_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.multi_draw_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.image2_d_view_of3_d_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.border_color_swizzle_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.pageable_device_local_memory_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.descriptor_set_host_mapping_features_valve
-dEQP-VK.api.device_init.create_device_unsupported_features.non_seamless_cube_map_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.fragment_density_map_offset_features_qcom
+dEQP-VK.api.device_init.create_device_unsupported_features.rasterization_order_attachment_access_features_arm
 dEQP-VK.api.device_init.create_device_unsupported_features.linear_color_attachment_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.graphics_pipeline_library_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.descriptor_set_host_mapping_features_valve
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_module_identifier_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.image_compression_control_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.image_compression_control_swapchain_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.image_processing_features_qcom
 dEQP-VK.api.device_init.create_device_unsupported_features.subpass_merge_feedback_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_module_identifier_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_properties_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_early_and_late_fragment_tests_features_amd
+dEQP-VK.api.device_init.create_device_unsupported_features.non_seamless_cube_map_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_robustness_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.image_processing_features_qcom
 dEQP-VK.api.device_init.create_device_unsupported_features.tile_properties_features_qcom
-dEQP-VK.api.device_init.create_device_unsupported_features.acceleration_structure_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.ray_tracing_pipeline_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.ray_query_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.portability_subset_features_khr
 dEQP-VK.api.device_init.create_device_queue2.basic
 dEQP-VK.api.device_init.create_instance_device_intentional_alloc_fail.basic
 dEQP-VK.api.device_init.create_device_queue2_two_queues.basic
index 41de0b3..6cb9726 100644 (file)
@@ -70,7 +70,6 @@ if (DEQP_VULKAN_INL_GEN_OUTPUTS_DIR MATCHES ^${PROJECT_BINARY_DIR})
                COMMAND cmake -E remove ${DEQP_VULKAN_INL_GEN_OUTPUTS}
 
                # Generate all inl files.
-               COMMAND ${PYTHON_EXECUTABLE} ARGS ${PROJECT_SOURCE_DIR}/external/vulkancts/scripts/gen_ext_deps.py -o ${DEQP_VULKAN_INL_GEN_OUTPUTS_DIR}
                COMMAND ${PYTHON_EXECUTABLE} ARGS ${PROJECT_SOURCE_DIR}/external/vulkancts/scripts/gen_framework.py -o ${DEQP_VULKAN_INL_GEN_OUTPUTS_DIR}
                COMMAND ${PYTHON_EXECUTABLE} ARGS ${PROJECT_SOURCE_DIR}/external/vulkancts/scripts/gen_framework_c.py -o ${DEQP_VULKAN_INL_GEN_OUTPUTS_DIR}
 
index 04123a0..9620797 100644 (file)
@@ -1,92 +1,69 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
- * This file was generated by /scripts/gen_ext_deps.py
+ * This file was generated by /scripts/gen_framework.py
  */
 
 static const std::tuple<deUint32, deUint32, deUint32, const char*, const char*>        instanceExtensionDependencies[] =
 {
-       std::make_tuple(0, 1, 0, "VK_EXT_acquire_drm_display", "VK_EXT_direct_mode_display"),
-       std::make_tuple(0, 1, 1, "VK_EXT_acquire_drm_display", "VK_EXT_direct_mode_display"),
-       std::make_tuple(0, 1, 2, "VK_EXT_acquire_drm_display", "VK_EXT_direct_mode_display"),
-       std::make_tuple(0, 1, 3, "VK_EXT_acquire_drm_display", "VK_EXT_direct_mode_display"),
-       std::make_tuple(0, 1, 0, "VK_EXT_acquire_xlib_display", "VK_EXT_direct_mode_display"),
-       std::make_tuple(0, 1, 1, "VK_EXT_acquire_xlib_display", "VK_EXT_direct_mode_display"),
-       std::make_tuple(0, 1, 2, "VK_EXT_acquire_xlib_display", "VK_EXT_direct_mode_display"),
-       std::make_tuple(0, 1, 3, "VK_EXT_acquire_xlib_display", "VK_EXT_direct_mode_display"),
+       std::make_tuple(0, 1, 0, "VK_KHR_display", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 1, "VK_KHR_display", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 2, "VK_KHR_display", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 3, "VK_KHR_display", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 0, "VK_KHR_xlib_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 1, "VK_KHR_xlib_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 2, "VK_KHR_xlib_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 3, "VK_KHR_xlib_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 0, "VK_KHR_xcb_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 1, "VK_KHR_xcb_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 2, "VK_KHR_xcb_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 3, "VK_KHR_xcb_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 0, "VK_KHR_wayland_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 1, "VK_KHR_wayland_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 2, "VK_KHR_wayland_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 3, "VK_KHR_wayland_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 0, "VK_KHR_android_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 1, "VK_KHR_android_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 2, "VK_KHR_android_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 3, "VK_KHR_android_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 0, "VK_KHR_win32_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 1, "VK_KHR_win32_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 2, "VK_KHR_win32_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 3, "VK_KHR_win32_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 0, "VK_GGP_stream_descriptor_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 1, "VK_GGP_stream_descriptor_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 2, "VK_GGP_stream_descriptor_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 3, "VK_GGP_stream_descriptor_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 0, "VK_NN_vi_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 1, "VK_NN_vi_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 2, "VK_NN_vi_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 3, "VK_NN_vi_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 0, "VK_KHR_external_memory_capabilities", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_external_semaphore_capabilities", "VK_KHR_get_physical_device_properties2"),
        std::make_tuple(0, 1, 0, "VK_EXT_direct_mode_display", "VK_KHR_display"),
        std::make_tuple(0, 1, 1, "VK_EXT_direct_mode_display", "VK_KHR_display"),
        std::make_tuple(0, 1, 2, "VK_EXT_direct_mode_display", "VK_KHR_display"),
        std::make_tuple(0, 1, 3, "VK_EXT_direct_mode_display", "VK_KHR_display"),
-       std::make_tuple(0, 1, 0, "VK_EXT_directfb_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 1, "VK_EXT_directfb_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 2, "VK_EXT_directfb_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 3, "VK_EXT_directfb_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 0, "VK_EXT_acquire_xlib_display", "VK_EXT_direct_mode_display"),
+       std::make_tuple(0, 1, 1, "VK_EXT_acquire_xlib_display", "VK_EXT_direct_mode_display"),
+       std::make_tuple(0, 1, 2, "VK_EXT_acquire_xlib_display", "VK_EXT_direct_mode_display"),
+       std::make_tuple(0, 1, 3, "VK_EXT_acquire_xlib_display", "VK_EXT_direct_mode_display"),
        std::make_tuple(0, 1, 0, "VK_EXT_display_surface_counter", "VK_KHR_display"),
        std::make_tuple(0, 1, 1, "VK_EXT_display_surface_counter", "VK_KHR_display"),
        std::make_tuple(0, 1, 2, "VK_EXT_display_surface_counter", "VK_KHR_display"),
        std::make_tuple(0, 1, 3, "VK_EXT_display_surface_counter", "VK_KHR_display"),
-       std::make_tuple(0, 1, 0, "VK_EXT_headless_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 1, "VK_EXT_headless_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 2, "VK_EXT_headless_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 3, "VK_EXT_headless_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 0, "VK_EXT_metal_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 1, "VK_EXT_metal_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 2, "VK_EXT_metal_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 3, "VK_EXT_metal_surface", "VK_KHR_surface"),
        std::make_tuple(0, 1, 0, "VK_EXT_swapchain_colorspace", "VK_KHR_surface"),
        std::make_tuple(0, 1, 1, "VK_EXT_swapchain_colorspace", "VK_KHR_surface"),
        std::make_tuple(0, 1, 2, "VK_EXT_swapchain_colorspace", "VK_KHR_surface"),
        std::make_tuple(0, 1, 3, "VK_EXT_swapchain_colorspace", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 0, "VK_FUCHSIA_imagepipe_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 1, "VK_FUCHSIA_imagepipe_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 2, "VK_FUCHSIA_imagepipe_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 3, "VK_FUCHSIA_imagepipe_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 0, "VK_GGP_stream_descriptor_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 1, "VK_GGP_stream_descriptor_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 2, "VK_GGP_stream_descriptor_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 3, "VK_GGP_stream_descriptor_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 0, "VK_GOOGLE_surfaceless_query", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 1, "VK_GOOGLE_surfaceless_query", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 2, "VK_GOOGLE_surfaceless_query", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 3, "VK_GOOGLE_surfaceless_query", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 0, "VK_KHR_android_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 1, "VK_KHR_android_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 2, "VK_KHR_android_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 3, "VK_KHR_android_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 0, "VK_KHR_display", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 1, "VK_KHR_display", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 2, "VK_KHR_display", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 3, "VK_KHR_display", "VK_KHR_surface"),
        std::make_tuple(0, 1, 0, "VK_KHR_external_fence_capabilities", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_external_memory_capabilities", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_external_semaphore_capabilities", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_get_display_properties2", "VK_KHR_display"),
-       std::make_tuple(0, 1, 1, "VK_KHR_get_display_properties2", "VK_KHR_display"),
-       std::make_tuple(0, 1, 2, "VK_KHR_get_display_properties2", "VK_KHR_display"),
-       std::make_tuple(0, 1, 3, "VK_KHR_get_display_properties2", "VK_KHR_display"),
        std::make_tuple(0, 1, 0, "VK_KHR_get_surface_capabilities2", "VK_KHR_surface"),
        std::make_tuple(0, 1, 1, "VK_KHR_get_surface_capabilities2", "VK_KHR_surface"),
        std::make_tuple(0, 1, 2, "VK_KHR_get_surface_capabilities2", "VK_KHR_surface"),
        std::make_tuple(0, 1, 3, "VK_KHR_get_surface_capabilities2", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 1, "VK_KHR_surface_protected_capabilities", "VK_KHR_get_surface_capabilities2"),
-       std::make_tuple(0, 1, 2, "VK_KHR_surface_protected_capabilities", "VK_KHR_get_surface_capabilities2"),
-       std::make_tuple(0, 1, 3, "VK_KHR_surface_protected_capabilities", "VK_KHR_get_surface_capabilities2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_wayland_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 1, "VK_KHR_wayland_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 2, "VK_KHR_wayland_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 3, "VK_KHR_wayland_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 0, "VK_KHR_win32_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 1, "VK_KHR_win32_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 2, "VK_KHR_win32_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 3, "VK_KHR_win32_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 0, "VK_KHR_xcb_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 1, "VK_KHR_xcb_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 2, "VK_KHR_xcb_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 3, "VK_KHR_xcb_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 0, "VK_KHR_xlib_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 1, "VK_KHR_xlib_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 2, "VK_KHR_xlib_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 3, "VK_KHR_xlib_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 0, "VK_KHR_get_display_properties2", "VK_KHR_display"),
+       std::make_tuple(0, 1, 1, "VK_KHR_get_display_properties2", "VK_KHR_display"),
+       std::make_tuple(0, 1, 2, "VK_KHR_get_display_properties2", "VK_KHR_display"),
+       std::make_tuple(0, 1, 3, "VK_KHR_get_display_properties2", "VK_KHR_display"),
        std::make_tuple(0, 1, 0, "VK_MVK_ios_surface", "VK_KHR_surface"),
        std::make_tuple(0, 1, 1, "VK_MVK_ios_surface", "VK_KHR_surface"),
        std::make_tuple(0, 1, 2, "VK_MVK_ios_surface", "VK_KHR_surface"),
@@ -95,60 +72,114 @@ static const std::tuple<deUint32, deUint32, deUint32, const char*, const char*>
        std::make_tuple(0, 1, 1, "VK_MVK_macos_surface", "VK_KHR_surface"),
        std::make_tuple(0, 1, 2, "VK_MVK_macos_surface", "VK_KHR_surface"),
        std::make_tuple(0, 1, 3, "VK_MVK_macos_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 0, "VK_NN_vi_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 1, "VK_NN_vi_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 2, "VK_NN_vi_surface", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 3, "VK_NN_vi_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 0, "VK_FUCHSIA_imagepipe_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 1, "VK_FUCHSIA_imagepipe_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 2, "VK_FUCHSIA_imagepipe_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 3, "VK_FUCHSIA_imagepipe_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 0, "VK_EXT_metal_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 1, "VK_EXT_metal_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 2, "VK_EXT_metal_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 3, "VK_EXT_metal_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 1, "VK_KHR_surface_protected_capabilities", "VK_KHR_get_surface_capabilities2"),
+       std::make_tuple(0, 1, 2, "VK_KHR_surface_protected_capabilities", "VK_KHR_get_surface_capabilities2"),
+       std::make_tuple(0, 1, 3, "VK_KHR_surface_protected_capabilities", "VK_KHR_get_surface_capabilities2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_headless_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 1, "VK_EXT_headless_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 2, "VK_EXT_headless_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 3, "VK_EXT_headless_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 0, "VK_EXT_acquire_drm_display", "VK_EXT_direct_mode_display"),
+       std::make_tuple(0, 1, 1, "VK_EXT_acquire_drm_display", "VK_EXT_direct_mode_display"),
+       std::make_tuple(0, 1, 2, "VK_EXT_acquire_drm_display", "VK_EXT_direct_mode_display"),
+       std::make_tuple(0, 1, 3, "VK_EXT_acquire_drm_display", "VK_EXT_direct_mode_display"),
        std::make_tuple(0, 1, 0, "VK_QNX_screen_surface", "VK_KHR_surface"),
        std::make_tuple(0, 1, 1, "VK_QNX_screen_surface", "VK_KHR_surface"),
        std::make_tuple(0, 1, 2, "VK_QNX_screen_surface", "VK_KHR_surface"),
        std::make_tuple(0, 1, 3, "VK_QNX_screen_surface", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 0, "VK_GOOGLE_surfaceless_query", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 1, "VK_GOOGLE_surfaceless_query", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 2, "VK_GOOGLE_surfaceless_query", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 3, "VK_GOOGLE_surfaceless_query", "VK_KHR_surface"),
 };
 static const std::tuple<deUint32, deUint32, deUint32, const char*, const char*>        deviceExtensionDependencies[]   =
 {
-       std::make_tuple(0, 1, 0, "VK_AMD_display_native_hdr", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_AMD_display_native_hdr", "VK_KHR_get_surface_capabilities2"),
-       std::make_tuple(0, 1, 0, "VK_AMD_display_native_hdr", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 1, "VK_AMD_display_native_hdr", "VK_KHR_get_surface_capabilities2"),
-       std::make_tuple(0, 1, 1, "VK_AMD_display_native_hdr", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 2, "VK_AMD_display_native_hdr", "VK_KHR_get_surface_capabilities2"),
-       std::make_tuple(0, 1, 2, "VK_AMD_display_native_hdr", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 3, "VK_AMD_display_native_hdr", "VK_KHR_get_surface_capabilities2"),
-       std::make_tuple(0, 1, 3, "VK_AMD_display_native_hdr", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 0, "VK_AMD_shader_core_properties", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_AMD_shader_core_properties2", "VK_AMD_shader_core_properties"),
-       std::make_tuple(0, 1, 1, "VK_AMD_shader_core_properties2", "VK_AMD_shader_core_properties"),
-       std::make_tuple(0, 1, 2, "VK_AMD_shader_core_properties2", "VK_AMD_shader_core_properties"),
-       std::make_tuple(0, 1, 3, "VK_AMD_shader_core_properties2", "VK_AMD_shader_core_properties"),
-       std::make_tuple(0, 1, 0, "VK_AMD_texture_gather_bias_lod", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_ANDROID_external_memory_android_hardware_buffer", "VK_KHR_sampler_ycbcr_conversion"),
-       std::make_tuple(0, 1, 0, "VK_ANDROID_external_memory_android_hardware_buffer", "VK_KHR_external_memory"),
-       std::make_tuple(0, 1, 0, "VK_ANDROID_external_memory_android_hardware_buffer", "VK_EXT_queue_family_foreign"),
-       std::make_tuple(0, 1, 0, "VK_ANDROID_external_memory_android_hardware_buffer", "VK_KHR_dedicated_allocation"),
-       std::make_tuple(0, 1, 1, "VK_ANDROID_external_memory_android_hardware_buffer", "VK_EXT_queue_family_foreign"),
-       std::make_tuple(0, 1, 2, "VK_ANDROID_external_memory_android_hardware_buffer", "VK_EXT_queue_family_foreign"),
-       std::make_tuple(0, 1, 3, "VK_ANDROID_external_memory_android_hardware_buffer", "VK_EXT_queue_family_foreign"),
-       std::make_tuple(0, 1, 0, "VK_ARM_rasterization_order_attachment_access", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_4444_formats", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_astc_decode_mode", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_blend_operation_advanced", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_border_color_swizzle", "VK_EXT_custom_border_color"),
-       std::make_tuple(0, 1, 1, "VK_EXT_border_color_swizzle", "VK_EXT_custom_border_color"),
-       std::make_tuple(0, 1, 2, "VK_EXT_border_color_swizzle", "VK_EXT_custom_border_color"),
-       std::make_tuple(0, 1, 3, "VK_EXT_border_color_swizzle", "VK_EXT_custom_border_color"),
-       std::make_tuple(0, 1, 0, "VK_EXT_buffer_device_address", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_calibrated_timestamps", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_color_write_enable", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_conservative_rasterization", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_swapchain", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 1, "VK_KHR_swapchain", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 2, "VK_KHR_swapchain", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 3, "VK_KHR_swapchain", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 0, "VK_KHR_display_swapchain", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 0, "VK_KHR_display_swapchain", "VK_KHR_display"),
+       std::make_tuple(0, 1, 1, "VK_KHR_display_swapchain", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 1, "VK_KHR_display_swapchain", "VK_KHR_display"),
+       std::make_tuple(0, 1, 2, "VK_KHR_display_swapchain", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 2, "VK_KHR_display_swapchain", "VK_KHR_display"),
+       std::make_tuple(0, 1, 3, "VK_KHR_display_swapchain", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 3, "VK_KHR_display_swapchain", "VK_KHR_display"),
        std::make_tuple(0, 1, 0, "VK_EXT_debug_marker", "VK_EXT_debug_report"),
        std::make_tuple(0, 1, 1, "VK_EXT_debug_marker", "VK_EXT_debug_report"),
        std::make_tuple(0, 1, 2, "VK_EXT_debug_marker", "VK_EXT_debug_report"),
        std::make_tuple(0, 1, 3, "VK_EXT_debug_marker", "VK_EXT_debug_report"),
-       std::make_tuple(0, 1, 0, "VK_EXT_depth_clip_control", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_descriptor_indexing", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_descriptor_indexing", "VK_KHR_maintenance3"),
-       std::make_tuple(0, 1, 0, "VK_EXT_device_memory_report", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_discard_rectangles", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 1, "VK_KHR_video_queue", "VK_KHR_synchronization2"),
+       std::make_tuple(0, 1, 2, "VK_KHR_video_queue", "VK_KHR_synchronization2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_video_decode_queue", "VK_KHR_video_queue"),
+       std::make_tuple(0, 1, 0, "VK_KHR_video_decode_queue", "VK_KHR_synchronization2"),
+       std::make_tuple(0, 1, 1, "VK_KHR_video_decode_queue", "VK_KHR_video_queue"),
+       std::make_tuple(0, 1, 1, "VK_KHR_video_decode_queue", "VK_KHR_synchronization2"),
+       std::make_tuple(0, 1, 2, "VK_KHR_video_decode_queue", "VK_KHR_video_queue"),
+       std::make_tuple(0, 1, 2, "VK_KHR_video_decode_queue", "VK_KHR_synchronization2"),
+       std::make_tuple(0, 1, 3, "VK_KHR_video_decode_queue", "VK_KHR_video_queue"),
+       std::make_tuple(0, 1, 0, "VK_EXT_transform_feedback", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_video_encode_h264", "VK_KHR_video_encode_queue"),
+       std::make_tuple(0, 1, 1, "VK_EXT_video_encode_h264", "VK_KHR_video_encode_queue"),
+       std::make_tuple(0, 1, 2, "VK_EXT_video_encode_h264", "VK_KHR_video_encode_queue"),
+       std::make_tuple(0, 1, 3, "VK_EXT_video_encode_h264", "VK_KHR_video_encode_queue"),
+       std::make_tuple(0, 1, 0, "VK_EXT_video_encode_h265", "VK_KHR_video_encode_queue"),
+       std::make_tuple(0, 1, 1, "VK_EXT_video_encode_h265", "VK_KHR_video_encode_queue"),
+       std::make_tuple(0, 1, 2, "VK_EXT_video_encode_h265", "VK_KHR_video_encode_queue"),
+       std::make_tuple(0, 1, 3, "VK_EXT_video_encode_h265", "VK_KHR_video_encode_queue"),
+       std::make_tuple(0, 1, 0, "VK_EXT_video_decode_h264", "VK_KHR_video_decode_queue"),
+       std::make_tuple(0, 1, 1, "VK_EXT_video_decode_h264", "VK_KHR_video_decode_queue"),
+       std::make_tuple(0, 1, 2, "VK_EXT_video_decode_h264", "VK_KHR_video_decode_queue"),
+       std::make_tuple(0, 1, 3, "VK_EXT_video_decode_h264", "VK_KHR_video_decode_queue"),
+       std::make_tuple(0, 1, 0, "VK_AMD_texture_gather_bias_lod", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_dynamic_rendering", "VK_KHR_depth_stencil_resolve"),
+       std::make_tuple(0, 1, 0, "VK_KHR_dynamic_rendering", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 1, "VK_KHR_dynamic_rendering", "VK_KHR_depth_stencil_resolve"),
+       std::make_tuple(0, 1, 0, "VK_NV_corner_sampled_image", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_multiview", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_NV_external_memory", "VK_NV_external_memory_capabilities"),
+       std::make_tuple(0, 1, 1, "VK_NV_external_memory", "VK_NV_external_memory_capabilities"),
+       std::make_tuple(0, 1, 2, "VK_NV_external_memory", "VK_NV_external_memory_capabilities"),
+       std::make_tuple(0, 1, 3, "VK_NV_external_memory", "VK_NV_external_memory_capabilities"),
+       std::make_tuple(0, 1, 0, "VK_NV_external_memory_win32", "VK_NV_external_memory"),
+       std::make_tuple(0, 1, 1, "VK_NV_external_memory_win32", "VK_NV_external_memory"),
+       std::make_tuple(0, 1, 2, "VK_NV_external_memory_win32", "VK_NV_external_memory"),
+       std::make_tuple(0, 1, 3, "VK_NV_external_memory_win32", "VK_NV_external_memory"),
+       std::make_tuple(0, 1, 0, "VK_NV_win32_keyed_mutex", "VK_NV_external_memory_win32"),
+       std::make_tuple(0, 1, 1, "VK_NV_win32_keyed_mutex", "VK_NV_external_memory_win32"),
+       std::make_tuple(0, 1, 2, "VK_NV_win32_keyed_mutex", "VK_NV_external_memory_win32"),
+       std::make_tuple(0, 1, 3, "VK_NV_win32_keyed_mutex", "VK_NV_external_memory_win32"),
+       std::make_tuple(0, 1, 0, "VK_KHR_device_group", "VK_KHR_device_group_creation"),
+       std::make_tuple(0, 1, 0, "VK_EXT_texture_compression_astc_hdr", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_astc_decode_mode", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_pipeline_robustness", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_external_memory", "VK_KHR_external_memory_capabilities"),
+       std::make_tuple(0, 1, 0, "VK_KHR_external_memory_win32", "VK_KHR_external_memory"),
+       std::make_tuple(0, 1, 0, "VK_KHR_external_memory_fd", "VK_KHR_external_memory"),
+       std::make_tuple(0, 1, 0, "VK_KHR_win32_keyed_mutex", "VK_KHR_external_memory_win32"),
+       std::make_tuple(0, 1, 1, "VK_KHR_win32_keyed_mutex", "VK_KHR_external_memory_win32"),
+       std::make_tuple(0, 1, 2, "VK_KHR_win32_keyed_mutex", "VK_KHR_external_memory_win32"),
+       std::make_tuple(0, 1, 3, "VK_KHR_win32_keyed_mutex", "VK_KHR_external_memory_win32"),
+       std::make_tuple(0, 1, 0, "VK_KHR_external_semaphore", "VK_KHR_external_semaphore_capabilities"),
+       std::make_tuple(0, 1, 0, "VK_KHR_external_semaphore_win32", "VK_KHR_external_semaphore"),
+       std::make_tuple(0, 1, 0, "VK_KHR_external_semaphore_fd", "VK_KHR_external_semaphore"),
+       std::make_tuple(0, 1, 0, "VK_KHR_push_descriptor", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_shader_float16_int8", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_16bit_storage", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_16bit_storage", "VK_KHR_storage_buffer_storage_class"),
+       std::make_tuple(0, 1, 0, "VK_KHR_incremental_present", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 1, "VK_KHR_incremental_present", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 2, "VK_KHR_incremental_present", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 3, "VK_KHR_incremental_present", "VK_KHR_swapchain"),
        std::make_tuple(0, 1, 0, "VK_EXT_display_control", "VK_EXT_display_surface_counter"),
        std::make_tuple(0, 1, 0, "VK_EXT_display_control", "VK_KHR_swapchain"),
        std::make_tuple(0, 1, 1, "VK_EXT_display_control", "VK_EXT_display_surface_counter"),
@@ -157,130 +188,96 @@ static const std::tuple<deUint32, deUint32, deUint32, const char*, const char*>
        std::make_tuple(0, 1, 2, "VK_EXT_display_control", "VK_KHR_swapchain"),
        std::make_tuple(0, 1, 3, "VK_EXT_display_control", "VK_EXT_display_surface_counter"),
        std::make_tuple(0, 1, 3, "VK_EXT_display_control", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 0, "VK_EXT_extended_dynamic_state", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_extended_dynamic_state2", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_external_memory_dma_buf", "VK_KHR_external_memory_fd"),
-       std::make_tuple(0, 1, 1, "VK_EXT_external_memory_dma_buf", "VK_KHR_external_memory_fd"),
-       std::make_tuple(0, 1, 2, "VK_EXT_external_memory_dma_buf", "VK_KHR_external_memory_fd"),
-       std::make_tuple(0, 1, 3, "VK_EXT_external_memory_dma_buf", "VK_KHR_external_memory_fd"),
-       std::make_tuple(0, 1, 0, "VK_EXT_external_memory_host", "VK_KHR_external_memory"),
-       std::make_tuple(0, 1, 0, "VK_EXT_fragment_density_map", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_fragment_density_map2", "VK_EXT_fragment_density_map"),
-       std::make_tuple(0, 1, 1, "VK_EXT_fragment_density_map2", "VK_EXT_fragment_density_map"),
-       std::make_tuple(0, 1, 2, "VK_EXT_fragment_density_map2", "VK_EXT_fragment_density_map"),
-       std::make_tuple(0, 1, 3, "VK_EXT_fragment_density_map2", "VK_EXT_fragment_density_map"),
-       std::make_tuple(0, 1, 0, "VK_EXT_fragment_shader_interlock", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_full_screen_exclusive", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_full_screen_exclusive", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 0, "VK_EXT_full_screen_exclusive", "VK_KHR_get_surface_capabilities2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_full_screen_exclusive", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 1, "VK_EXT_full_screen_exclusive", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 1, "VK_EXT_full_screen_exclusive", "VK_KHR_get_surface_capabilities2"),
-       std::make_tuple(0, 1, 1, "VK_EXT_full_screen_exclusive", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 2, "VK_EXT_full_screen_exclusive", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 2, "VK_EXT_full_screen_exclusive", "VK_KHR_get_surface_capabilities2"),
-       std::make_tuple(0, 1, 2, "VK_EXT_full_screen_exclusive", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 3, "VK_EXT_full_screen_exclusive", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 3, "VK_EXT_full_screen_exclusive", "VK_KHR_get_surface_capabilities2"),
-       std::make_tuple(0, 1, 3, "VK_EXT_full_screen_exclusive", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 0, "VK_EXT_global_priority_query", "VK_EXT_global_priority"),
-       std::make_tuple(0, 1, 0, "VK_EXT_global_priority_query", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 1, "VK_EXT_global_priority_query", "VK_EXT_global_priority"),
-       std::make_tuple(0, 1, 2, "VK_EXT_global_priority_query", "VK_EXT_global_priority"),
-       std::make_tuple(0, 1, 3, "VK_EXT_global_priority_query", "VK_EXT_global_priority"),
-       std::make_tuple(0, 1, 0, "VK_EXT_graphics_pipeline_library", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_graphics_pipeline_library", "VK_KHR_pipeline_library"),
-       std::make_tuple(0, 1, 1, "VK_EXT_graphics_pipeline_library", "VK_KHR_pipeline_library"),
-       std::make_tuple(0, 1, 2, "VK_EXT_graphics_pipeline_library", "VK_KHR_pipeline_library"),
-       std::make_tuple(0, 1, 3, "VK_EXT_graphics_pipeline_library", "VK_KHR_pipeline_library"),
+       std::make_tuple(0, 1, 0, "VK_GOOGLE_display_timing", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 1, "VK_GOOGLE_display_timing", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 2, "VK_GOOGLE_display_timing", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 3, "VK_GOOGLE_display_timing", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 0, "VK_NVX_multiview_per_view_attributes", "VK_KHR_multiview"),
+       std::make_tuple(0, 1, 0, "VK_EXT_discard_rectangles", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_conservative_rasterization", "VK_KHR_get_physical_device_properties2"),
        std::make_tuple(0, 1, 0, "VK_EXT_hdr_metadata", "VK_KHR_swapchain"),
        std::make_tuple(0, 1, 1, "VK_EXT_hdr_metadata", "VK_KHR_swapchain"),
        std::make_tuple(0, 1, 2, "VK_EXT_hdr_metadata", "VK_KHR_swapchain"),
        std::make_tuple(0, 1, 3, "VK_EXT_hdr_metadata", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 0, "VK_EXT_host_query_reset", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_image_2d_view_of_3d", "VK_KHR_maintenance1"),
-       std::make_tuple(0, 1, 0, "VK_EXT_image_2d_view_of_3d", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_image_compression_control_swapchain", "VK_EXT_image_compression_control"),
-       std::make_tuple(0, 1, 1, "VK_EXT_image_compression_control_swapchain", "VK_EXT_image_compression_control"),
-       std::make_tuple(0, 1, 2, "VK_EXT_image_compression_control_swapchain", "VK_EXT_image_compression_control"),
-       std::make_tuple(0, 1, 3, "VK_EXT_image_compression_control_swapchain", "VK_EXT_image_compression_control"),
+       std::make_tuple(0, 1, 0, "VK_KHR_imageless_framebuffer", "VK_KHR_maintenance2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_imageless_framebuffer", "VK_KHR_image_format_list"),
+       std::make_tuple(0, 1, 1, "VK_KHR_imageless_framebuffer", "VK_KHR_image_format_list"),
+       std::make_tuple(0, 1, 0, "VK_KHR_create_renderpass2", "VK_KHR_multiview"),
+       std::make_tuple(0, 1, 0, "VK_KHR_create_renderpass2", "VK_KHR_maintenance2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_shared_presentable_image", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 0, "VK_KHR_shared_presentable_image", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_shared_presentable_image", "VK_KHR_get_surface_capabilities2"),
+       std::make_tuple(0, 1, 1, "VK_KHR_shared_presentable_image", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 1, "VK_KHR_shared_presentable_image", "VK_KHR_get_surface_capabilities2"),
+       std::make_tuple(0, 1, 2, "VK_KHR_shared_presentable_image", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 2, "VK_KHR_shared_presentable_image", "VK_KHR_get_surface_capabilities2"),
+       std::make_tuple(0, 1, 3, "VK_KHR_shared_presentable_image", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 3, "VK_KHR_shared_presentable_image", "VK_KHR_get_surface_capabilities2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_external_fence", "VK_KHR_external_fence_capabilities"),
+       std::make_tuple(0, 1, 0, "VK_KHR_external_fence_win32", "VK_KHR_external_fence"),
+       std::make_tuple(0, 1, 0, "VK_KHR_external_fence_fd", "VK_KHR_external_fence"),
+       std::make_tuple(0, 1, 0, "VK_KHR_performance_query", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_variable_pointers", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_variable_pointers", "VK_KHR_storage_buffer_storage_class"),
+       std::make_tuple(0, 1, 0, "VK_EXT_external_memory_dma_buf", "VK_KHR_external_memory_fd"),
+       std::make_tuple(0, 1, 1, "VK_EXT_external_memory_dma_buf", "VK_KHR_external_memory_fd"),
+       std::make_tuple(0, 1, 2, "VK_EXT_external_memory_dma_buf", "VK_KHR_external_memory_fd"),
+       std::make_tuple(0, 1, 3, "VK_EXT_external_memory_dma_buf", "VK_KHR_external_memory_fd"),
+       std::make_tuple(0, 1, 0, "VK_EXT_queue_family_foreign", "VK_KHR_external_memory"),
+       std::make_tuple(0, 1, 0, "VK_KHR_dedicated_allocation", "VK_KHR_get_memory_requirements2"),
+       std::make_tuple(0, 1, 0, "VK_ANDROID_external_memory_android_hardware_buffer", "VK_KHR_sampler_ycbcr_conversion"),
+       std::make_tuple(0, 1, 0, "VK_ANDROID_external_memory_android_hardware_buffer", "VK_KHR_external_memory"),
+       std::make_tuple(0, 1, 0, "VK_ANDROID_external_memory_android_hardware_buffer", "VK_EXT_queue_family_foreign"),
+       std::make_tuple(0, 1, 0, "VK_ANDROID_external_memory_android_hardware_buffer", "VK_KHR_dedicated_allocation"),
+       std::make_tuple(0, 1, 1, "VK_ANDROID_external_memory_android_hardware_buffer", "VK_EXT_queue_family_foreign"),
+       std::make_tuple(0, 1, 2, "VK_ANDROID_external_memory_android_hardware_buffer", "VK_EXT_queue_family_foreign"),
+       std::make_tuple(0, 1, 3, "VK_ANDROID_external_memory_android_hardware_buffer", "VK_EXT_queue_family_foreign"),
+       std::make_tuple(0, 1, 0, "VK_EXT_sampler_filter_minmax", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_inline_uniform_block", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_inline_uniform_block", "VK_KHR_maintenance1"),
+       std::make_tuple(0, 1, 0, "VK_EXT_sample_locations", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_blend_operation_advanced", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 1, "VK_KHR_acceleration_structure", "VK_EXT_descriptor_indexing"),
+       std::make_tuple(0, 1, 1, "VK_KHR_acceleration_structure", "VK_KHR_buffer_device_address"),
+       std::make_tuple(0, 1, 1, "VK_KHR_acceleration_structure", "VK_KHR_deferred_host_operations"),
+       std::make_tuple(0, 1, 2, "VK_KHR_acceleration_structure", "VK_KHR_deferred_host_operations"),
+       std::make_tuple(0, 1, 3, "VK_KHR_acceleration_structure", "VK_KHR_deferred_host_operations"),
+       std::make_tuple(0, 1, 1, "VK_KHR_ray_tracing_pipeline", "VK_KHR_spirv_1_4"),
+       std::make_tuple(0, 1, 1, "VK_KHR_ray_tracing_pipeline", "VK_KHR_acceleration_structure"),
+       std::make_tuple(0, 1, 2, "VK_KHR_ray_tracing_pipeline", "VK_KHR_acceleration_structure"),
+       std::make_tuple(0, 1, 3, "VK_KHR_ray_tracing_pipeline", "VK_KHR_acceleration_structure"),
+       std::make_tuple(0, 1, 1, "VK_KHR_ray_query", "VK_KHR_spirv_1_4"),
+       std::make_tuple(0, 1, 1, "VK_KHR_ray_query", "VK_KHR_acceleration_structure"),
+       std::make_tuple(0, 1, 2, "VK_KHR_ray_query", "VK_KHR_acceleration_structure"),
+       std::make_tuple(0, 1, 3, "VK_KHR_ray_query", "VK_KHR_acceleration_structure"),
+       std::make_tuple(0, 1, 0, "VK_KHR_sampler_ycbcr_conversion", "VK_KHR_maintenance1"),
+       std::make_tuple(0, 1, 0, "VK_KHR_sampler_ycbcr_conversion", "VK_KHR_bind_memory2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_sampler_ycbcr_conversion", "VK_KHR_get_memory_requirements2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_sampler_ycbcr_conversion", "VK_KHR_get_physical_device_properties2"),
        std::make_tuple(0, 1, 0, "VK_EXT_image_drm_format_modifier", "VK_KHR_bind_memory2"),
        std::make_tuple(0, 1, 0, "VK_EXT_image_drm_format_modifier", "VK_KHR_get_physical_device_properties2"),
        std::make_tuple(0, 1, 0, "VK_EXT_image_drm_format_modifier", "VK_KHR_image_format_list"),
        std::make_tuple(0, 1, 0, "VK_EXT_image_drm_format_modifier", "VK_KHR_sampler_ycbcr_conversion"),
        std::make_tuple(0, 1, 1, "VK_EXT_image_drm_format_modifier", "VK_KHR_image_format_list"),
-       std::make_tuple(0, 1, 0, "VK_EXT_image_robustness", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_image_view_min_lod", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_inline_uniform_block", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_inline_uniform_block", "VK_KHR_maintenance1"),
-       std::make_tuple(0, 1, 0, "VK_EXT_line_rasterization", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_memory_budget", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_memory_priority", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_multisampled_render_to_single_sampled", "VK_KHR_create_renderpass2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_multisampled_render_to_single_sampled", "VK_KHR_depth_stencil_resolve"),
-       std::make_tuple(0, 1, 1, "VK_EXT_multisampled_render_to_single_sampled", "VK_KHR_create_renderpass2"),
-       std::make_tuple(0, 1, 1, "VK_EXT_multisampled_render_to_single_sampled", "VK_KHR_depth_stencil_resolve"),
-       std::make_tuple(0, 1, 0, "VK_EXT_pageable_device_local_memory", "VK_EXT_memory_priority"),
-       std::make_tuple(0, 1, 1, "VK_EXT_pageable_device_local_memory", "VK_EXT_memory_priority"),
-       std::make_tuple(0, 1, 2, "VK_EXT_pageable_device_local_memory", "VK_EXT_memory_priority"),
-       std::make_tuple(0, 1, 3, "VK_EXT_pageable_device_local_memory", "VK_EXT_memory_priority"),
-       std::make_tuple(0, 1, 0, "VK_EXT_pci_bus_info", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_physical_device_drm", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_pipeline_properties", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_pipeline_robustness", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_primitives_generated_query", "VK_EXT_transform_feedback"),
-       std::make_tuple(0, 1, 1, "VK_EXT_primitives_generated_query", "VK_EXT_transform_feedback"),
-       std::make_tuple(0, 1, 2, "VK_EXT_primitives_generated_query", "VK_EXT_transform_feedback"),
-       std::make_tuple(0, 1, 3, "VK_EXT_primitives_generated_query", "VK_EXT_transform_feedback"),
-       std::make_tuple(0, 1, 0, "VK_EXT_provoking_vertex", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_queue_family_foreign", "VK_KHR_external_memory"),
-       std::make_tuple(0, 1, 0, "VK_EXT_rgba10x6_formats", "VK_KHR_sampler_ycbcr_conversion"),
-       std::make_tuple(0, 1, 0, "VK_EXT_sample_locations", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_sampler_filter_minmax", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_scalar_block_layout", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_shader_atomic_float", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_shader_atomic_float2", "VK_EXT_shader_atomic_float"),
-       std::make_tuple(0, 1, 1, "VK_EXT_shader_atomic_float2", "VK_EXT_shader_atomic_float"),
-       std::make_tuple(0, 1, 2, "VK_EXT_shader_atomic_float2", "VK_EXT_shader_atomic_float"),
-       std::make_tuple(0, 1, 3, "VK_EXT_shader_atomic_float2", "VK_EXT_shader_atomic_float"),
-       std::make_tuple(0, 1, 0, "VK_EXT_shader_demote_to_helper_invocation", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_shader_image_atomic_int64", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_shader_module_identifier", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_shader_module_identifier", "VK_EXT_pipeline_creation_cache_control"),
-       std::make_tuple(0, 1, 1, "VK_EXT_shader_module_identifier", "VK_EXT_pipeline_creation_cache_control"),
-       std::make_tuple(0, 1, 2, "VK_EXT_shader_module_identifier", "VK_EXT_pipeline_creation_cache_control"),
-       std::make_tuple(0, 1, 0, "VK_EXT_texel_buffer_alignment", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_texture_compression_astc_hdr", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_transform_feedback", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_vertex_attribute_divisor", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_vertex_input_dynamic_state", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_EXT_video_decode_h264", "VK_KHR_video_decode_queue"),
-       std::make_tuple(0, 1, 1, "VK_EXT_video_decode_h264", "VK_KHR_video_decode_queue"),
-       std::make_tuple(0, 1, 2, "VK_EXT_video_decode_h264", "VK_KHR_video_decode_queue"),
-       std::make_tuple(0, 1, 3, "VK_EXT_video_decode_h264", "VK_KHR_video_decode_queue"),
+       std::make_tuple(0, 1, 0, "VK_EXT_descriptor_indexing", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_descriptor_indexing", "VK_KHR_maintenance3"),
+       std::make_tuple(0, 1, 0, "VK_KHR_portability_subset", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_NV_shading_rate_image", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_NV_ray_tracing", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_NV_ray_tracing", "VK_KHR_get_memory_requirements2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_maintenance3", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_8bit_storage", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_8bit_storage", "VK_KHR_storage_buffer_storage_class"),
+       std::make_tuple(0, 1, 0, "VK_EXT_external_memory_host", "VK_KHR_external_memory"),
+       std::make_tuple(0, 1, 0, "VK_KHR_shader_atomic_int64", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_shader_clock", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_calibrated_timestamps", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_AMD_shader_core_properties", "VK_KHR_get_physical_device_properties2"),
        std::make_tuple(0, 1, 0, "VK_EXT_video_decode_h265", "VK_KHR_video_decode_queue"),
        std::make_tuple(0, 1, 1, "VK_EXT_video_decode_h265", "VK_KHR_video_decode_queue"),
        std::make_tuple(0, 1, 2, "VK_EXT_video_decode_h265", "VK_KHR_video_decode_queue"),
        std::make_tuple(0, 1, 3, "VK_EXT_video_decode_h265", "VK_KHR_video_decode_queue"),
-       std::make_tuple(0, 1, 0, "VK_EXT_video_encode_h264", "VK_KHR_video_encode_queue"),
-       std::make_tuple(0, 1, 1, "VK_EXT_video_encode_h264", "VK_KHR_video_encode_queue"),
-       std::make_tuple(0, 1, 2, "VK_EXT_video_encode_h264", "VK_KHR_video_encode_queue"),
-       std::make_tuple(0, 1, 3, "VK_EXT_video_encode_h264", "VK_KHR_video_encode_queue"),
-       std::make_tuple(0, 1, 0, "VK_EXT_video_encode_h265", "VK_KHR_video_encode_queue"),
-       std::make_tuple(0, 1, 1, "VK_EXT_video_encode_h265", "VK_KHR_video_encode_queue"),
-       std::make_tuple(0, 1, 2, "VK_EXT_video_encode_h265", "VK_KHR_video_encode_queue"),
-       std::make_tuple(0, 1, 3, "VK_EXT_video_encode_h265", "VK_KHR_video_encode_queue"),
-       std::make_tuple(0, 1, 0, "VK_EXT_ycbcr_2plane_444_formats", "VK_KHR_sampler_ycbcr_conversion"),
-       std::make_tuple(0, 1, 0, "VK_EXT_ycbcr_image_arrays", "VK_KHR_sampler_ycbcr_conversion"),
-       std::make_tuple(0, 1, 0, "VK_FUCHSIA_buffer_collection", "VK_FUCHSIA_external_memory"),
-       std::make_tuple(0, 1, 0, "VK_FUCHSIA_buffer_collection", "VK_KHR_sampler_ycbcr_conversion"),
-       std::make_tuple(0, 1, 1, "VK_FUCHSIA_buffer_collection", "VK_FUCHSIA_external_memory"),
-       std::make_tuple(0, 1, 2, "VK_FUCHSIA_buffer_collection", "VK_FUCHSIA_external_memory"),
-       std::make_tuple(0, 1, 3, "VK_FUCHSIA_buffer_collection", "VK_FUCHSIA_external_memory"),
-       std::make_tuple(0, 1, 0, "VK_FUCHSIA_external_memory", "VK_KHR_external_memory_capabilities"),
-       std::make_tuple(0, 1, 0, "VK_FUCHSIA_external_memory", "VK_KHR_external_memory"),
-       std::make_tuple(0, 1, 0, "VK_FUCHSIA_external_semaphore", "VK_KHR_external_semaphore_capabilities"),
-       std::make_tuple(0, 1, 0, "VK_FUCHSIA_external_semaphore", "VK_KHR_external_semaphore"),
+       std::make_tuple(0, 1, 0, "VK_EXT_vertex_attribute_divisor", "VK_KHR_get_physical_device_properties2"),
        std::make_tuple(0, 1, 0, "VK_GGP_frame_token", "VK_KHR_swapchain"),
        std::make_tuple(0, 1, 0, "VK_GGP_frame_token", "VK_GGP_stream_descriptor_surface"),
        std::make_tuple(0, 1, 1, "VK_GGP_frame_token", "VK_KHR_swapchain"),
@@ -289,128 +286,10 @@ static const std::tuple<deUint32, deUint32, deUint32, const char*, const char*>
        std::make_tuple(0, 1, 2, "VK_GGP_frame_token", "VK_GGP_stream_descriptor_surface"),
        std::make_tuple(0, 1, 3, "VK_GGP_frame_token", "VK_KHR_swapchain"),
        std::make_tuple(0, 1, 3, "VK_GGP_frame_token", "VK_GGP_stream_descriptor_surface"),
-       std::make_tuple(0, 1, 0, "VK_GOOGLE_display_timing", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 1, "VK_GOOGLE_display_timing", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 2, "VK_GOOGLE_display_timing", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 3, "VK_GOOGLE_display_timing", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 0, "VK_HUAWEI_invocation_mask", "VK_KHR_ray_tracing_pipeline"),
-       std::make_tuple(0, 1, 0, "VK_HUAWEI_invocation_mask", "VK_KHR_synchronization2"),
-       std::make_tuple(0, 1, 1, "VK_HUAWEI_invocation_mask", "VK_KHR_ray_tracing_pipeline"),
-       std::make_tuple(0, 1, 1, "VK_HUAWEI_invocation_mask", "VK_KHR_synchronization2"),
-       std::make_tuple(0, 1, 2, "VK_HUAWEI_invocation_mask", "VK_KHR_ray_tracing_pipeline"),
-       std::make_tuple(0, 1, 2, "VK_HUAWEI_invocation_mask", "VK_KHR_synchronization2"),
-       std::make_tuple(0, 1, 3, "VK_HUAWEI_invocation_mask", "VK_KHR_ray_tracing_pipeline"),
-       std::make_tuple(0, 1, 0, "VK_HUAWEI_subpass_shading", "VK_KHR_create_renderpass2"),
-       std::make_tuple(0, 1, 0, "VK_HUAWEI_subpass_shading", "VK_KHR_synchronization2"),
-       std::make_tuple(0, 1, 1, "VK_HUAWEI_subpass_shading", "VK_KHR_create_renderpass2"),
-       std::make_tuple(0, 1, 1, "VK_HUAWEI_subpass_shading", "VK_KHR_synchronization2"),
-       std::make_tuple(0, 1, 2, "VK_HUAWEI_subpass_shading", "VK_KHR_synchronization2"),
-       std::make_tuple(0, 1, 0, "VK_INTEL_shader_integer_functions2", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_16bit_storage", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_16bit_storage", "VK_KHR_storage_buffer_storage_class"),
-       std::make_tuple(0, 1, 0, "VK_KHR_8bit_storage", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_8bit_storage", "VK_KHR_storage_buffer_storage_class"),
-       std::make_tuple(0, 1, 1, "VK_KHR_acceleration_structure", "VK_EXT_descriptor_indexing"),
-       std::make_tuple(0, 1, 1, "VK_KHR_acceleration_structure", "VK_KHR_buffer_device_address"),
-       std::make_tuple(0, 1, 1, "VK_KHR_acceleration_structure", "VK_KHR_deferred_host_operations"),
-       std::make_tuple(0, 1, 2, "VK_KHR_acceleration_structure", "VK_KHR_deferred_host_operations"),
-       std::make_tuple(0, 1, 3, "VK_KHR_acceleration_structure", "VK_KHR_deferred_host_operations"),
-       std::make_tuple(0, 1, 0, "VK_KHR_buffer_device_address", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_create_renderpass2", "VK_KHR_multiview"),
-       std::make_tuple(0, 1, 0, "VK_KHR_create_renderpass2", "VK_KHR_maintenance2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_dedicated_allocation", "VK_KHR_get_memory_requirements2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_driver_properties", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_shader_float_controls", "VK_KHR_get_physical_device_properties2"),
        std::make_tuple(0, 1, 0, "VK_KHR_depth_stencil_resolve", "VK_KHR_create_renderpass2"),
        std::make_tuple(0, 1, 1, "VK_KHR_depth_stencil_resolve", "VK_KHR_create_renderpass2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_device_group", "VK_KHR_device_group_creation"),
-       std::make_tuple(0, 1, 0, "VK_KHR_display_swapchain", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 0, "VK_KHR_display_swapchain", "VK_KHR_display"),
-       std::make_tuple(0, 1, 1, "VK_KHR_display_swapchain", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 1, "VK_KHR_display_swapchain", "VK_KHR_display"),
-       std::make_tuple(0, 1, 2, "VK_KHR_display_swapchain", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 2, "VK_KHR_display_swapchain", "VK_KHR_display"),
-       std::make_tuple(0, 1, 3, "VK_KHR_display_swapchain", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 3, "VK_KHR_display_swapchain", "VK_KHR_display"),
-       std::make_tuple(0, 1, 0, "VK_KHR_driver_properties", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_dynamic_rendering", "VK_KHR_depth_stencil_resolve"),
-       std::make_tuple(0, 1, 0, "VK_KHR_dynamic_rendering", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 1, "VK_KHR_dynamic_rendering", "VK_KHR_depth_stencil_resolve"),
-       std::make_tuple(0, 1, 0, "VK_KHR_external_fence", "VK_KHR_external_fence_capabilities"),
-       std::make_tuple(0, 1, 0, "VK_KHR_external_fence_fd", "VK_KHR_external_fence"),
-       std::make_tuple(0, 1, 0, "VK_KHR_external_fence_win32", "VK_KHR_external_fence"),
-       std::make_tuple(0, 1, 0, "VK_KHR_external_memory", "VK_KHR_external_memory_capabilities"),
-       std::make_tuple(0, 1, 0, "VK_KHR_external_memory_fd", "VK_KHR_external_memory"),
-       std::make_tuple(0, 1, 0, "VK_KHR_external_memory_win32", "VK_KHR_external_memory"),
-       std::make_tuple(0, 1, 0, "VK_KHR_external_semaphore", "VK_KHR_external_semaphore_capabilities"),
-       std::make_tuple(0, 1, 0, "VK_KHR_external_semaphore_fd", "VK_KHR_external_semaphore"),
-       std::make_tuple(0, 1, 0, "VK_KHR_external_semaphore_win32", "VK_KHR_external_semaphore"),
-       std::make_tuple(0, 1, 0, "VK_KHR_format_feature_flags2", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_fragment_shader_barycentric", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_fragment_shading_rate", "VK_KHR_create_renderpass2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_fragment_shading_rate", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 1, "VK_KHR_fragment_shading_rate", "VK_KHR_create_renderpass2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_imageless_framebuffer", "VK_KHR_maintenance2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_imageless_framebuffer", "VK_KHR_image_format_list"),
-       std::make_tuple(0, 1, 1, "VK_KHR_imageless_framebuffer", "VK_KHR_image_format_list"),
-       std::make_tuple(0, 1, 0, "VK_KHR_incremental_present", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 1, "VK_KHR_incremental_present", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 2, "VK_KHR_incremental_present", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 3, "VK_KHR_incremental_present", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 0, "VK_KHR_maintenance3", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_multiview", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_performance_query", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_pipeline_executable_properties", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_portability_subset", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_present_id", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 1, "VK_KHR_present_id", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 2, "VK_KHR_present_id", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 3, "VK_KHR_present_id", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 0, "VK_KHR_present_wait", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 0, "VK_KHR_present_wait", "VK_KHR_present_id"),
-       std::make_tuple(0, 1, 1, "VK_KHR_present_wait", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 1, "VK_KHR_present_wait", "VK_KHR_present_id"),
-       std::make_tuple(0, 1, 2, "VK_KHR_present_wait", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 2, "VK_KHR_present_wait", "VK_KHR_present_id"),
-       std::make_tuple(0, 1, 3, "VK_KHR_present_wait", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 3, "VK_KHR_present_wait", "VK_KHR_present_id"),
-       std::make_tuple(0, 1, 0, "VK_KHR_push_descriptor", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 1, "VK_KHR_ray_query", "VK_KHR_spirv_1_4"),
-       std::make_tuple(0, 1, 1, "VK_KHR_ray_query", "VK_KHR_acceleration_structure"),
-       std::make_tuple(0, 1, 2, "VK_KHR_ray_query", "VK_KHR_acceleration_structure"),
-       std::make_tuple(0, 1, 3, "VK_KHR_ray_query", "VK_KHR_acceleration_structure"),
-       std::make_tuple(0, 1, 1, "VK_KHR_ray_tracing_maintenance1", "VK_KHR_acceleration_structure"),
-       std::make_tuple(0, 1, 2, "VK_KHR_ray_tracing_maintenance1", "VK_KHR_acceleration_structure"),
-       std::make_tuple(0, 1, 3, "VK_KHR_ray_tracing_maintenance1", "VK_KHR_acceleration_structure"),
-       std::make_tuple(0, 1, 1, "VK_KHR_ray_tracing_pipeline", "VK_KHR_spirv_1_4"),
-       std::make_tuple(0, 1, 1, "VK_KHR_ray_tracing_pipeline", "VK_KHR_acceleration_structure"),
-       std::make_tuple(0, 1, 2, "VK_KHR_ray_tracing_pipeline", "VK_KHR_acceleration_structure"),
-       std::make_tuple(0, 1, 3, "VK_KHR_ray_tracing_pipeline", "VK_KHR_acceleration_structure"),
-       std::make_tuple(0, 1, 0, "VK_KHR_sampler_ycbcr_conversion", "VK_KHR_maintenance1"),
-       std::make_tuple(0, 1, 0, "VK_KHR_sampler_ycbcr_conversion", "VK_KHR_bind_memory2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_sampler_ycbcr_conversion", "VK_KHR_get_memory_requirements2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_sampler_ycbcr_conversion", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_separate_depth_stencil_layouts", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_separate_depth_stencil_layouts", "VK_KHR_create_renderpass2"),
-       std::make_tuple(0, 1, 1, "VK_KHR_separate_depth_stencil_layouts", "VK_KHR_create_renderpass2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_shader_atomic_int64", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_shader_clock", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_shader_float16_int8", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_shader_float_controls", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_shader_integer_dot_product", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_shader_terminate_invocation", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_shared_presentable_image", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 0, "VK_KHR_shared_presentable_image", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_shared_presentable_image", "VK_KHR_get_surface_capabilities2"),
-       std::make_tuple(0, 1, 1, "VK_KHR_shared_presentable_image", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 1, "VK_KHR_shared_presentable_image", "VK_KHR_get_surface_capabilities2"),
-       std::make_tuple(0, 1, 2, "VK_KHR_shared_presentable_image", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 2, "VK_KHR_shared_presentable_image", "VK_KHR_get_surface_capabilities2"),
-       std::make_tuple(0, 1, 3, "VK_KHR_shared_presentable_image", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 3, "VK_KHR_shared_presentable_image", "VK_KHR_get_surface_capabilities2"),
-       std::make_tuple(0, 1, 1, "VK_KHR_spirv_1_4", "VK_KHR_shader_float_controls"),
-       std::make_tuple(0, 1, 0, "VK_KHR_swapchain", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 1, "VK_KHR_swapchain", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 2, "VK_KHR_swapchain", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 3, "VK_KHR_swapchain", "VK_KHR_surface"),
        std::make_tuple(0, 1, 0, "VK_KHR_swapchain_mutable_format", "VK_KHR_swapchain"),
        std::make_tuple(0, 1, 0, "VK_KHR_swapchain_mutable_format", "VK_KHR_maintenance2"),
        std::make_tuple(0, 1, 0, "VK_KHR_swapchain_mutable_format", "VK_KHR_image_format_list"),
@@ -418,18 +297,100 @@ static const std::tuple<deUint32, deUint32, deUint32, const char*, const char*>
        std::make_tuple(0, 1, 1, "VK_KHR_swapchain_mutable_format", "VK_KHR_image_format_list"),
        std::make_tuple(0, 1, 2, "VK_KHR_swapchain_mutable_format", "VK_KHR_swapchain"),
        std::make_tuple(0, 1, 3, "VK_KHR_swapchain_mutable_format", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 0, "VK_KHR_synchronization2", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_NV_compute_shader_derivatives", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_NV_mesh_shader", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_NV_fragment_shader_barycentric", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_NV_shader_image_footprint", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_NV_scissor_exclusive", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_NV_device_diagnostic_checkpoints", "VK_KHR_get_physical_device_properties2"),
        std::make_tuple(0, 1, 0, "VK_KHR_timeline_semaphore", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_INTEL_shader_integer_functions2", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_pci_bus_info", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_AMD_display_native_hdr", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_AMD_display_native_hdr", "VK_KHR_get_surface_capabilities2"),
+       std::make_tuple(0, 1, 0, "VK_AMD_display_native_hdr", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 1, "VK_AMD_display_native_hdr", "VK_KHR_get_surface_capabilities2"),
+       std::make_tuple(0, 1, 1, "VK_AMD_display_native_hdr", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 2, "VK_AMD_display_native_hdr", "VK_KHR_get_surface_capabilities2"),
+       std::make_tuple(0, 1, 2, "VK_AMD_display_native_hdr", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 3, "VK_AMD_display_native_hdr", "VK_KHR_get_surface_capabilities2"),
+       std::make_tuple(0, 1, 3, "VK_AMD_display_native_hdr", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 0, "VK_KHR_shader_terminate_invocation", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_fragment_density_map", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_scalar_block_layout", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_fragment_shading_rate", "VK_KHR_create_renderpass2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_fragment_shading_rate", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 1, "VK_KHR_fragment_shading_rate", "VK_KHR_create_renderpass2"),
+       std::make_tuple(0, 1, 0, "VK_AMD_shader_core_properties2", "VK_AMD_shader_core_properties"),
+       std::make_tuple(0, 1, 1, "VK_AMD_shader_core_properties2", "VK_AMD_shader_core_properties"),
+       std::make_tuple(0, 1, 2, "VK_AMD_shader_core_properties2", "VK_AMD_shader_core_properties"),
+       std::make_tuple(0, 1, 3, "VK_AMD_shader_core_properties2", "VK_AMD_shader_core_properties"),
+       std::make_tuple(0, 1, 0, "VK_EXT_shader_image_atomic_int64", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 1, "VK_KHR_spirv_1_4", "VK_KHR_shader_float_controls"),
+       std::make_tuple(0, 1, 0, "VK_EXT_memory_budget", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_memory_priority", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_NV_dedicated_allocation_image_aliasing", "VK_KHR_dedicated_allocation"),
+       std::make_tuple(0, 1, 0, "VK_KHR_separate_depth_stencil_layouts", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_separate_depth_stencil_layouts", "VK_KHR_create_renderpass2"),
+       std::make_tuple(0, 1, 1, "VK_KHR_separate_depth_stencil_layouts", "VK_KHR_create_renderpass2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_buffer_device_address", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_present_wait", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 0, "VK_KHR_present_wait", "VK_KHR_present_id"),
+       std::make_tuple(0, 1, 1, "VK_KHR_present_wait", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 1, "VK_KHR_present_wait", "VK_KHR_present_id"),
+       std::make_tuple(0, 1, 2, "VK_KHR_present_wait", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 2, "VK_KHR_present_wait", "VK_KHR_present_id"),
+       std::make_tuple(0, 1, 3, "VK_KHR_present_wait", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 3, "VK_KHR_present_wait", "VK_KHR_present_id"),
+       std::make_tuple(0, 1, 0, "VK_NV_cooperative_matrix", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_NV_coverage_reduction_mode", "VK_NV_framebuffer_mixed_samples"),
+       std::make_tuple(0, 1, 1, "VK_NV_coverage_reduction_mode", "VK_NV_framebuffer_mixed_samples"),
+       std::make_tuple(0, 1, 2, "VK_NV_coverage_reduction_mode", "VK_NV_framebuffer_mixed_samples"),
+       std::make_tuple(0, 1, 3, "VK_NV_coverage_reduction_mode", "VK_NV_framebuffer_mixed_samples"),
+       std::make_tuple(0, 1, 0, "VK_EXT_fragment_shader_interlock", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_ycbcr_image_arrays", "VK_KHR_sampler_ycbcr_conversion"),
        std::make_tuple(0, 1, 0, "VK_KHR_uniform_buffer_standard_layout", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_variable_pointers", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_variable_pointers", "VK_KHR_storage_buffer_storage_class"),
-       std::make_tuple(0, 1, 0, "VK_KHR_video_decode_queue", "VK_KHR_video_queue"),
-       std::make_tuple(0, 1, 0, "VK_KHR_video_decode_queue", "VK_KHR_synchronization2"),
-       std::make_tuple(0, 1, 1, "VK_KHR_video_decode_queue", "VK_KHR_video_queue"),
-       std::make_tuple(0, 1, 1, "VK_KHR_video_decode_queue", "VK_KHR_synchronization2"),
-       std::make_tuple(0, 1, 2, "VK_KHR_video_decode_queue", "VK_KHR_video_queue"),
-       std::make_tuple(0, 1, 2, "VK_KHR_video_decode_queue", "VK_KHR_synchronization2"),
-       std::make_tuple(0, 1, 3, "VK_KHR_video_decode_queue", "VK_KHR_video_queue"),
+       std::make_tuple(0, 1, 0, "VK_EXT_provoking_vertex", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_full_screen_exclusive", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_full_screen_exclusive", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 0, "VK_EXT_full_screen_exclusive", "VK_KHR_get_surface_capabilities2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_full_screen_exclusive", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 1, "VK_EXT_full_screen_exclusive", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 1, "VK_EXT_full_screen_exclusive", "VK_KHR_get_surface_capabilities2"),
+       std::make_tuple(0, 1, 1, "VK_EXT_full_screen_exclusive", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 2, "VK_EXT_full_screen_exclusive", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 2, "VK_EXT_full_screen_exclusive", "VK_KHR_get_surface_capabilities2"),
+       std::make_tuple(0, 1, 2, "VK_EXT_full_screen_exclusive", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 3, "VK_EXT_full_screen_exclusive", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 3, "VK_EXT_full_screen_exclusive", "VK_KHR_get_surface_capabilities2"),
+       std::make_tuple(0, 1, 3, "VK_EXT_full_screen_exclusive", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 0, "VK_KHR_buffer_device_address", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_line_rasterization", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_shader_atomic_float", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_host_query_reset", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_extended_dynamic_state", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_pipeline_executable_properties", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_shader_atomic_float2", "VK_EXT_shader_atomic_float"),
+       std::make_tuple(0, 1, 1, "VK_EXT_shader_atomic_float2", "VK_EXT_shader_atomic_float"),
+       std::make_tuple(0, 1, 2, "VK_EXT_shader_atomic_float2", "VK_EXT_shader_atomic_float"),
+       std::make_tuple(0, 1, 3, "VK_EXT_shader_atomic_float2", "VK_EXT_shader_atomic_float"),
+       std::make_tuple(0, 1, 0, "VK_EXT_shader_demote_to_helper_invocation", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 1, "VK_NV_device_generated_commands", "VK_KHR_buffer_device_address"),
+       std::make_tuple(0, 1, 0, "VK_KHR_shader_integer_dot_product", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_texel_buffer_alignment", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_QCOM_render_pass_transform", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 0, "VK_QCOM_render_pass_transform", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 1, "VK_QCOM_render_pass_transform", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 1, "VK_QCOM_render_pass_transform", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 2, "VK_QCOM_render_pass_transform", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 2, "VK_QCOM_render_pass_transform", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 3, "VK_QCOM_render_pass_transform", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 3, "VK_QCOM_render_pass_transform", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 0, "VK_EXT_device_memory_report", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_present_id", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 1, "VK_KHR_present_id", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 2, "VK_KHR_present_id", "VK_KHR_swapchain"),
+       std::make_tuple(0, 1, 3, "VK_KHR_present_id", "VK_KHR_swapchain"),
        std::make_tuple(0, 1, 0, "VK_KHR_video_encode_queue", "VK_KHR_video_queue"),
        std::make_tuple(0, 1, 0, "VK_KHR_video_encode_queue", "VK_KHR_synchronization2"),
        std::make_tuple(0, 1, 1, "VK_KHR_video_encode_queue", "VK_KHR_video_queue"),
@@ -437,74 +398,28 @@ static const std::tuple<deUint32, deUint32, deUint32, const char*, const char*>
        std::make_tuple(0, 1, 2, "VK_KHR_video_encode_queue", "VK_KHR_video_queue"),
        std::make_tuple(0, 1, 2, "VK_KHR_video_encode_queue", "VK_KHR_synchronization2"),
        std::make_tuple(0, 1, 3, "VK_KHR_video_encode_queue", "VK_KHR_video_queue"),
-       std::make_tuple(0, 1, 1, "VK_KHR_video_queue", "VK_KHR_synchronization2"),
-       std::make_tuple(0, 1, 2, "VK_KHR_video_queue", "VK_KHR_synchronization2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_win32_keyed_mutex", "VK_KHR_external_memory_win32"),
-       std::make_tuple(0, 1, 1, "VK_KHR_win32_keyed_mutex", "VK_KHR_external_memory_win32"),
-       std::make_tuple(0, 1, 2, "VK_KHR_win32_keyed_mutex", "VK_KHR_external_memory_win32"),
-       std::make_tuple(0, 1, 3, "VK_KHR_win32_keyed_mutex", "VK_KHR_external_memory_win32"),
-       std::make_tuple(0, 1, 0, "VK_KHR_workgroup_memory_explicit_layout", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_KHR_zero_initialize_workgroup_memory", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_NVX_multiview_per_view_attributes", "VK_KHR_multiview"),
-       std::make_tuple(0, 1, 0, "VK_NV_acquire_winrt_display", "VK_EXT_direct_mode_display"),
-       std::make_tuple(0, 1, 1, "VK_NV_acquire_winrt_display", "VK_EXT_direct_mode_display"),
-       std::make_tuple(0, 1, 2, "VK_NV_acquire_winrt_display", "VK_EXT_direct_mode_display"),
-       std::make_tuple(0, 1, 3, "VK_NV_acquire_winrt_display", "VK_EXT_direct_mode_display"),
-       std::make_tuple(0, 1, 0, "VK_NV_compute_shader_derivatives", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_NV_cooperative_matrix", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_NV_corner_sampled_image", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_NV_coverage_reduction_mode", "VK_NV_framebuffer_mixed_samples"),
-       std::make_tuple(0, 1, 1, "VK_NV_coverage_reduction_mode", "VK_NV_framebuffer_mixed_samples"),
-       std::make_tuple(0, 1, 2, "VK_NV_coverage_reduction_mode", "VK_NV_framebuffer_mixed_samples"),
-       std::make_tuple(0, 1, 3, "VK_NV_coverage_reduction_mode", "VK_NV_framebuffer_mixed_samples"),
-       std::make_tuple(0, 1, 0, "VK_NV_dedicated_allocation_image_aliasing", "VK_KHR_dedicated_allocation"),
-       std::make_tuple(0, 1, 0, "VK_NV_device_diagnostic_checkpoints", "VK_KHR_get_physical_device_properties2"),
        std::make_tuple(0, 1, 0, "VK_NV_device_diagnostics_config", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 1, "VK_NV_device_generated_commands", "VK_KHR_buffer_device_address"),
-       std::make_tuple(0, 1, 0, "VK_NV_external_memory", "VK_NV_external_memory_capabilities"),
-       std::make_tuple(0, 1, 1, "VK_NV_external_memory", "VK_NV_external_memory_capabilities"),
-       std::make_tuple(0, 1, 2, "VK_NV_external_memory", "VK_NV_external_memory_capabilities"),
-       std::make_tuple(0, 1, 3, "VK_NV_external_memory", "VK_NV_external_memory_capabilities"),
-       std::make_tuple(0, 1, 0, "VK_NV_external_memory_rdma", "VK_KHR_external_memory"),
-       std::make_tuple(0, 1, 0, "VK_NV_external_memory_win32", "VK_NV_external_memory"),
-       std::make_tuple(0, 1, 1, "VK_NV_external_memory_win32", "VK_NV_external_memory"),
-       std::make_tuple(0, 1, 2, "VK_NV_external_memory_win32", "VK_NV_external_memory"),
-       std::make_tuple(0, 1, 3, "VK_NV_external_memory_win32", "VK_NV_external_memory"),
-       std::make_tuple(0, 1, 0, "VK_NV_fragment_shader_barycentric", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_synchronization2", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_graphics_pipeline_library", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_graphics_pipeline_library", "VK_KHR_pipeline_library"),
+       std::make_tuple(0, 1, 1, "VK_EXT_graphics_pipeline_library", "VK_KHR_pipeline_library"),
+       std::make_tuple(0, 1, 2, "VK_EXT_graphics_pipeline_library", "VK_KHR_pipeline_library"),
+       std::make_tuple(0, 1, 3, "VK_EXT_graphics_pipeline_library", "VK_KHR_pipeline_library"),
+       std::make_tuple(0, 1, 0, "VK_KHR_fragment_shader_barycentric", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_zero_initialize_workgroup_memory", "VK_KHR_get_physical_device_properties2"),
        std::make_tuple(0, 1, 0, "VK_NV_fragment_shading_rate_enums", "VK_KHR_fragment_shading_rate"),
        std::make_tuple(0, 1, 1, "VK_NV_fragment_shading_rate_enums", "VK_KHR_fragment_shading_rate"),
        std::make_tuple(0, 1, 2, "VK_NV_fragment_shading_rate_enums", "VK_KHR_fragment_shading_rate"),
        std::make_tuple(0, 1, 3, "VK_NV_fragment_shading_rate_enums", "VK_KHR_fragment_shading_rate"),
-       std::make_tuple(0, 1, 0, "VK_NV_mesh_shader", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_NV_ray_tracing", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_NV_ray_tracing", "VK_KHR_get_memory_requirements2"),
        std::make_tuple(0, 1, 0, "VK_NV_ray_tracing_motion_blur", "VK_KHR_ray_tracing_pipeline"),
        std::make_tuple(0, 1, 1, "VK_NV_ray_tracing_motion_blur", "VK_KHR_ray_tracing_pipeline"),
        std::make_tuple(0, 1, 2, "VK_NV_ray_tracing_motion_blur", "VK_KHR_ray_tracing_pipeline"),
        std::make_tuple(0, 1, 3, "VK_NV_ray_tracing_motion_blur", "VK_KHR_ray_tracing_pipeline"),
-       std::make_tuple(0, 1, 0, "VK_NV_scissor_exclusive", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_NV_shader_image_footprint", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_NV_shading_rate_image", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_NV_win32_keyed_mutex", "VK_NV_external_memory_win32"),
-       std::make_tuple(0, 1, 1, "VK_NV_win32_keyed_mutex", "VK_NV_external_memory_win32"),
-       std::make_tuple(0, 1, 2, "VK_NV_win32_keyed_mutex", "VK_NV_external_memory_win32"),
-       std::make_tuple(0, 1, 3, "VK_NV_win32_keyed_mutex", "VK_NV_external_memory_win32"),
-       std::make_tuple(0, 1, 0, "VK_QCOM_fragment_density_map_offset", "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(0, 1, 0, "VK_QCOM_fragment_density_map_offset", "VK_EXT_fragment_density_map"),
-       std::make_tuple(0, 1, 1, "VK_QCOM_fragment_density_map_offset", "VK_EXT_fragment_density_map"),
-       std::make_tuple(0, 1, 2, "VK_QCOM_fragment_density_map_offset", "VK_EXT_fragment_density_map"),
-       std::make_tuple(0, 1, 3, "VK_QCOM_fragment_density_map_offset", "VK_EXT_fragment_density_map"),
-       std::make_tuple(0, 1, 0, "VK_QCOM_image_processing", "VK_KHR_format_feature_flags2"),
-       std::make_tuple(0, 1, 1, "VK_QCOM_image_processing", "VK_KHR_format_feature_flags2"),
-       std::make_tuple(0, 1, 2, "VK_QCOM_image_processing", "VK_KHR_format_feature_flags2"),
-       std::make_tuple(0, 1, 0, "VK_QCOM_render_pass_transform", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 0, "VK_QCOM_render_pass_transform", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 1, "VK_QCOM_render_pass_transform", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 1, "VK_QCOM_render_pass_transform", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 2, "VK_QCOM_render_pass_transform", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 2, "VK_QCOM_render_pass_transform", "VK_KHR_surface"),
-       std::make_tuple(0, 1, 3, "VK_QCOM_render_pass_transform", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 3, "VK_QCOM_render_pass_transform", "VK_KHR_surface"),
+       std::make_tuple(0, 1, 0, "VK_EXT_ycbcr_2plane_444_formats", "VK_KHR_sampler_ycbcr_conversion"),
+       std::make_tuple(0, 1, 0, "VK_EXT_fragment_density_map2", "VK_EXT_fragment_density_map"),
+       std::make_tuple(0, 1, 1, "VK_EXT_fragment_density_map2", "VK_EXT_fragment_density_map"),
+       std::make_tuple(0, 1, 2, "VK_EXT_fragment_density_map2", "VK_EXT_fragment_density_map"),
+       std::make_tuple(0, 1, 3, "VK_EXT_fragment_density_map2", "VK_EXT_fragment_density_map"),
        std::make_tuple(0, 1, 0, "VK_QCOM_rotated_copy_commands", "VK_KHR_swapchain"),
        std::make_tuple(0, 1, 0, "VK_QCOM_rotated_copy_commands", "VK_KHR_copy_commands2"),
        std::make_tuple(0, 1, 1, "VK_QCOM_rotated_copy_commands", "VK_KHR_swapchain"),
@@ -512,307 +427,387 @@ static const std::tuple<deUint32, deUint32, deUint32, const char*, const char*>
        std::make_tuple(0, 1, 2, "VK_QCOM_rotated_copy_commands", "VK_KHR_swapchain"),
        std::make_tuple(0, 1, 2, "VK_QCOM_rotated_copy_commands", "VK_KHR_copy_commands2"),
        std::make_tuple(0, 1, 3, "VK_QCOM_rotated_copy_commands", "VK_KHR_swapchain"),
-       std::make_tuple(0, 1, 0, "VK_QCOM_tile_properties", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_image_robustness", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_workgroup_memory_explicit_layout", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_4444_formats", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_ARM_rasterization_order_attachment_access", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_rgba10x6_formats", "VK_KHR_sampler_ycbcr_conversion"),
+       std::make_tuple(0, 1, 0, "VK_NV_acquire_winrt_display", "VK_EXT_direct_mode_display"),
+       std::make_tuple(0, 1, 1, "VK_NV_acquire_winrt_display", "VK_EXT_direct_mode_display"),
+       std::make_tuple(0, 1, 2, "VK_NV_acquire_winrt_display", "VK_EXT_direct_mode_display"),
+       std::make_tuple(0, 1, 3, "VK_NV_acquire_winrt_display", "VK_EXT_direct_mode_display"),
        std::make_tuple(0, 1, 0, "VK_VALVE_mutable_descriptor_type", "VK_KHR_maintenance3"),
-};
-static const std::tuple<deUint32, deUint32, deUint32, deUint32>        releasedApiVersions[]   =
-{
-       std::make_tuple(4206592, 0, 1, 3),
-       std::make_tuple(4202496, 0, 1, 2),
-       std::make_tuple(4198400, 0, 1, 1),
-       std::make_tuple(4194304, 0, 1, 0),
-};
-static const std::tuple<deUint32, deUint32, const char*>       extensionRequiredCoreVersion[]   =
-{
-       std::make_tuple(1, 0, "VK_AMD_buffer_marker"),
-       std::make_tuple(1, 0, "VK_AMD_device_coherent_memory"),
-       std::make_tuple(1, 0, "VK_AMD_display_native_hdr"),
-       std::make_tuple(1, 0, "VK_AMD_draw_indirect_count"),
-       std::make_tuple(1, 0, "VK_AMD_gcn_shader"),
-       std::make_tuple(1, 0, "VK_AMD_gpu_shader_half_float"),
-       std::make_tuple(1, 0, "VK_AMD_gpu_shader_int16"),
-       std::make_tuple(1, 0, "VK_AMD_memory_overallocation_behavior"),
-       std::make_tuple(1, 0, "VK_AMD_mixed_attachment_samples"),
-       std::make_tuple(1, 0, "VK_AMD_negative_viewport_height"),
-       std::make_tuple(1, 0, "VK_AMD_pipeline_compiler_control"),
-       std::make_tuple(1, 0, "VK_AMD_rasterization_order"),
-       std::make_tuple(1, 0, "VK_AMD_shader_ballot"),
-       std::make_tuple(1, 0, "VK_AMD_shader_core_properties"),
-       std::make_tuple(1, 0, "VK_AMD_shader_core_properties2"),
-       std::make_tuple(1, 0, "VK_AMD_shader_early_and_late_fragment_tests"),
-       std::make_tuple(1, 0, "VK_AMD_shader_explicit_vertex_parameter"),
-       std::make_tuple(1, 0, "VK_AMD_shader_fragment_mask"),
-       std::make_tuple(1, 0, "VK_AMD_shader_image_load_store_lod"),
-       std::make_tuple(1, 0, "VK_AMD_shader_info"),
-       std::make_tuple(1, 0, "VK_AMD_shader_trinary_minmax"),
-       std::make_tuple(1, 0, "VK_AMD_texture_gather_bias_lod"),
-       std::make_tuple(1, 0, "VK_ANDROID_external_memory_android_hardware_buffer"),
-       std::make_tuple(1, 0, "VK_ARM_rasterization_order_attachment_access"),
-       std::make_tuple(1, 0, "VK_EXT_4444_formats"),
-       std::make_tuple(1, 0, "VK_EXT_acquire_drm_display"),
-       std::make_tuple(1, 0, "VK_EXT_acquire_xlib_display"),
-       std::make_tuple(1, 0, "VK_EXT_astc_decode_mode"),
-       std::make_tuple(1, 0, "VK_EXT_blend_operation_advanced"),
-       std::make_tuple(1, 0, "VK_EXT_border_color_swizzle"),
-       std::make_tuple(1, 0, "VK_EXT_buffer_device_address"),
-       std::make_tuple(1, 0, "VK_EXT_calibrated_timestamps"),
-       std::make_tuple(1, 0, "VK_EXT_color_write_enable"),
-       std::make_tuple(1, 0, "VK_EXT_conditional_rendering"),
-       std::make_tuple(1, 0, "VK_EXT_conservative_rasterization"),
-       std::make_tuple(1, 0, "VK_EXT_custom_border_color"),
-       std::make_tuple(1, 0, "VK_EXT_debug_marker"),
+       std::make_tuple(0, 1, 0, "VK_EXT_vertex_input_dynamic_state", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_physical_device_drm", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_depth_clip_control", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_KHR_format_feature_flags2", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_FUCHSIA_external_memory", "VK_KHR_external_memory_capabilities"),
+       std::make_tuple(0, 1, 0, "VK_FUCHSIA_external_memory", "VK_KHR_external_memory"),
+       std::make_tuple(0, 1, 0, "VK_FUCHSIA_external_semaphore", "VK_KHR_external_semaphore_capabilities"),
+       std::make_tuple(0, 1, 0, "VK_FUCHSIA_external_semaphore", "VK_KHR_external_semaphore"),
+       std::make_tuple(0, 1, 0, "VK_FUCHSIA_buffer_collection", "VK_FUCHSIA_external_memory"),
+       std::make_tuple(0, 1, 0, "VK_FUCHSIA_buffer_collection", "VK_KHR_sampler_ycbcr_conversion"),
+       std::make_tuple(0, 1, 1, "VK_FUCHSIA_buffer_collection", "VK_FUCHSIA_external_memory"),
+       std::make_tuple(0, 1, 2, "VK_FUCHSIA_buffer_collection", "VK_FUCHSIA_external_memory"),
+       std::make_tuple(0, 1, 3, "VK_FUCHSIA_buffer_collection", "VK_FUCHSIA_external_memory"),
+       std::make_tuple(0, 1, 0, "VK_HUAWEI_subpass_shading", "VK_KHR_create_renderpass2"),
+       std::make_tuple(0, 1, 0, "VK_HUAWEI_subpass_shading", "VK_KHR_synchronization2"),
+       std::make_tuple(0, 1, 1, "VK_HUAWEI_subpass_shading", "VK_KHR_create_renderpass2"),
+       std::make_tuple(0, 1, 1, "VK_HUAWEI_subpass_shading", "VK_KHR_synchronization2"),
+       std::make_tuple(0, 1, 2, "VK_HUAWEI_subpass_shading", "VK_KHR_synchronization2"),
+       std::make_tuple(0, 1, 0, "VK_HUAWEI_invocation_mask", "VK_KHR_ray_tracing_pipeline"),
+       std::make_tuple(0, 1, 0, "VK_HUAWEI_invocation_mask", "VK_KHR_synchronization2"),
+       std::make_tuple(0, 1, 1, "VK_HUAWEI_invocation_mask", "VK_KHR_ray_tracing_pipeline"),
+       std::make_tuple(0, 1, 1, "VK_HUAWEI_invocation_mask", "VK_KHR_synchronization2"),
+       std::make_tuple(0, 1, 2, "VK_HUAWEI_invocation_mask", "VK_KHR_ray_tracing_pipeline"),
+       std::make_tuple(0, 1, 2, "VK_HUAWEI_invocation_mask", "VK_KHR_synchronization2"),
+       std::make_tuple(0, 1, 3, "VK_HUAWEI_invocation_mask", "VK_KHR_ray_tracing_pipeline"),
+       std::make_tuple(0, 1, 0, "VK_NV_external_memory_rdma", "VK_KHR_external_memory"),
+       std::make_tuple(0, 1, 0, "VK_EXT_pipeline_properties", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_multisampled_render_to_single_sampled", "VK_KHR_create_renderpass2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_multisampled_render_to_single_sampled", "VK_KHR_depth_stencil_resolve"),
+       std::make_tuple(0, 1, 1, "VK_EXT_multisampled_render_to_single_sampled", "VK_KHR_create_renderpass2"),
+       std::make_tuple(0, 1, 1, "VK_EXT_multisampled_render_to_single_sampled", "VK_KHR_depth_stencil_resolve"),
+       std::make_tuple(0, 1, 0, "VK_EXT_extended_dynamic_state2", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_color_write_enable", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_primitives_generated_query", "VK_EXT_transform_feedback"),
+       std::make_tuple(0, 1, 1, "VK_EXT_primitives_generated_query", "VK_EXT_transform_feedback"),
+       std::make_tuple(0, 1, 2, "VK_EXT_primitives_generated_query", "VK_EXT_transform_feedback"),
+       std::make_tuple(0, 1, 3, "VK_EXT_primitives_generated_query", "VK_EXT_transform_feedback"),
+       std::make_tuple(0, 1, 1, "VK_KHR_ray_tracing_maintenance1", "VK_KHR_acceleration_structure"),
+       std::make_tuple(0, 1, 2, "VK_KHR_ray_tracing_maintenance1", "VK_KHR_acceleration_structure"),
+       std::make_tuple(0, 1, 3, "VK_KHR_ray_tracing_maintenance1", "VK_KHR_acceleration_structure"),
+       std::make_tuple(0, 1, 0, "VK_EXT_global_priority_query", "VK_EXT_global_priority"),
+       std::make_tuple(0, 1, 0, "VK_EXT_global_priority_query", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 1, "VK_EXT_global_priority_query", "VK_EXT_global_priority"),
+       std::make_tuple(0, 1, 2, "VK_EXT_global_priority_query", "VK_EXT_global_priority"),
+       std::make_tuple(0, 1, 3, "VK_EXT_global_priority_query", "VK_EXT_global_priority"),
+       std::make_tuple(0, 1, 0, "VK_EXT_image_view_min_lod", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_image_2d_view_of_3d", "VK_KHR_maintenance1"),
+       std::make_tuple(0, 1, 0, "VK_EXT_image_2d_view_of_3d", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_border_color_swizzle", "VK_EXT_custom_border_color"),
+       std::make_tuple(0, 1, 1, "VK_EXT_border_color_swizzle", "VK_EXT_custom_border_color"),
+       std::make_tuple(0, 1, 2, "VK_EXT_border_color_swizzle", "VK_EXT_custom_border_color"),
+       std::make_tuple(0, 1, 3, "VK_EXT_border_color_swizzle", "VK_EXT_custom_border_color"),
+       std::make_tuple(0, 1, 0, "VK_EXT_pageable_device_local_memory", "VK_EXT_memory_priority"),
+       std::make_tuple(0, 1, 1, "VK_EXT_pageable_device_local_memory", "VK_EXT_memory_priority"),
+       std::make_tuple(0, 1, 2, "VK_EXT_pageable_device_local_memory", "VK_EXT_memory_priority"),
+       std::make_tuple(0, 1, 3, "VK_EXT_pageable_device_local_memory", "VK_EXT_memory_priority"),
+       std::make_tuple(0, 1, 0, "VK_QCOM_fragment_density_map_offset", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_QCOM_fragment_density_map_offset", "VK_EXT_fragment_density_map"),
+       std::make_tuple(0, 1, 1, "VK_QCOM_fragment_density_map_offset", "VK_EXT_fragment_density_map"),
+       std::make_tuple(0, 1, 2, "VK_QCOM_fragment_density_map_offset", "VK_EXT_fragment_density_map"),
+       std::make_tuple(0, 1, 3, "VK_QCOM_fragment_density_map_offset", "VK_EXT_fragment_density_map"),
+       std::make_tuple(0, 1, 0, "VK_EXT_image_compression_control_swapchain", "VK_EXT_image_compression_control"),
+       std::make_tuple(0, 1, 1, "VK_EXT_image_compression_control_swapchain", "VK_EXT_image_compression_control"),
+       std::make_tuple(0, 1, 2, "VK_EXT_image_compression_control_swapchain", "VK_EXT_image_compression_control"),
+       std::make_tuple(0, 1, 3, "VK_EXT_image_compression_control_swapchain", "VK_EXT_image_compression_control"),
+       std::make_tuple(0, 1, 0, "VK_QCOM_image_processing", "VK_KHR_format_feature_flags2"),
+       std::make_tuple(0, 1, 1, "VK_QCOM_image_processing", "VK_KHR_format_feature_flags2"),
+       std::make_tuple(0, 1, 2, "VK_QCOM_image_processing", "VK_KHR_format_feature_flags2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_shader_module_identifier", "VK_KHR_get_physical_device_properties2"),
+       std::make_tuple(0, 1, 0, "VK_EXT_shader_module_identifier", "VK_EXT_pipeline_creation_cache_control"),
+       std::make_tuple(0, 1, 1, "VK_EXT_shader_module_identifier", "VK_EXT_pipeline_creation_cache_control"),
+       std::make_tuple(0, 1, 2, "VK_EXT_shader_module_identifier", "VK_EXT_pipeline_creation_cache_control"),
+       std::make_tuple(0, 1, 0, "VK_QCOM_tile_properties", "VK_KHR_get_physical_device_properties2"),
+};
+static const std::tuple<deUint32, deUint32, deUint32, deUint32>        releasedApiVersions[]   =
+{
+       std::make_tuple(4206592, 0, 1, 3),
+       std::make_tuple(4202496, 0, 1, 2),
+       std::make_tuple(4198400, 0, 1, 1),
+       std::make_tuple(4194304, 0, 1, 0),
+};
+static const std::tuple<deUint32, deUint32, const char*>       extensionRequiredCoreVersion[]   =
+{
+       std::make_tuple(1, 0, "VK_KHR_surface"),
+       std::make_tuple(1, 0, "VK_KHR_swapchain"),
+       std::make_tuple(1, 0, "VK_KHR_display"),
+       std::make_tuple(1, 0, "VK_KHR_display_swapchain"),
+       std::make_tuple(1, 0, "VK_KHR_xlib_surface"),
+       std::make_tuple(1, 0, "VK_KHR_xcb_surface"),
+       std::make_tuple(1, 0, "VK_KHR_wayland_surface"),
+       std::make_tuple(1, 0, "VK_KHR_android_surface"),
+       std::make_tuple(1, 0, "VK_KHR_win32_surface"),
        std::make_tuple(1, 0, "VK_EXT_debug_report"),
-       std::make_tuple(1, 0, "VK_EXT_debug_utils"),
-       std::make_tuple(1, 0, "VK_EXT_depth_clip_control"),
-       std::make_tuple(1, 0, "VK_EXT_depth_clip_enable"),
+       std::make_tuple(1, 0, "VK_NV_glsl_shader"),
        std::make_tuple(1, 0, "VK_EXT_depth_range_unrestricted"),
-       std::make_tuple(1, 0, "VK_EXT_descriptor_indexing"),
-       std::make_tuple(1, 0, "VK_EXT_device_memory_report"),
-       std::make_tuple(1, 0, "VK_EXT_direct_mode_display"),
-       std::make_tuple(1, 0, "VK_EXT_directfb_surface"),
-       std::make_tuple(1, 0, "VK_EXT_discard_rectangles"),
-       std::make_tuple(1, 0, "VK_EXT_display_control"),
-       std::make_tuple(1, 0, "VK_EXT_display_surface_counter"),
-       std::make_tuple(1, 0, "VK_EXT_extended_dynamic_state"),
-       std::make_tuple(1, 0, "VK_EXT_extended_dynamic_state2"),
-       std::make_tuple(1, 0, "VK_EXT_external_memory_dma_buf"),
-       std::make_tuple(1, 0, "VK_EXT_external_memory_host"),
-       std::make_tuple(1, 0, "VK_EXT_filter_cubic"),
-       std::make_tuple(1, 0, "VK_EXT_fragment_density_map"),
-       std::make_tuple(1, 0, "VK_EXT_fragment_density_map2"),
-       std::make_tuple(1, 0, "VK_EXT_fragment_shader_interlock"),
-       std::make_tuple(1, 0, "VK_EXT_full_screen_exclusive"),
-       std::make_tuple(1, 0, "VK_EXT_global_priority"),
-       std::make_tuple(1, 0, "VK_EXT_global_priority_query"),
-       std::make_tuple(1, 0, "VK_EXT_graphics_pipeline_library"),
-       std::make_tuple(1, 0, "VK_EXT_hdr_metadata"),
-       std::make_tuple(1, 0, "VK_EXT_headless_surface"),
-       std::make_tuple(1, 0, "VK_EXT_host_query_reset"),
-       std::make_tuple(1, 0, "VK_EXT_image_2d_view_of_3d"),
-       std::make_tuple(1, 0, "VK_EXT_image_compression_control"),
-       std::make_tuple(1, 0, "VK_EXT_image_compression_control_swapchain"),
-       std::make_tuple(1, 0, "VK_EXT_image_drm_format_modifier"),
-       std::make_tuple(1, 0, "VK_EXT_image_robustness"),
-       std::make_tuple(1, 0, "VK_EXT_image_view_min_lod"),
-       std::make_tuple(1, 0, "VK_EXT_index_type_uint8"),
-       std::make_tuple(1, 0, "VK_EXT_inline_uniform_block"),
-       std::make_tuple(1, 0, "VK_EXT_line_rasterization"),
-       std::make_tuple(1, 0, "VK_EXT_load_store_op_none"),
-       std::make_tuple(1, 0, "VK_EXT_memory_budget"),
-       std::make_tuple(1, 0, "VK_EXT_memory_priority"),
-       std::make_tuple(1, 0, "VK_EXT_metal_objects"),
-       std::make_tuple(1, 0, "VK_EXT_metal_surface"),
-       std::make_tuple(1, 0, "VK_EXT_multi_draw"),
-       std::make_tuple(1, 0, "VK_EXT_multisampled_render_to_single_sampled"),
-       std::make_tuple(1, 0, "VK_EXT_non_seamless_cube_map"),
-       std::make_tuple(1, 0, "VK_EXT_pageable_device_local_memory"),
-       std::make_tuple(1, 0, "VK_EXT_pci_bus_info"),
-       std::make_tuple(1, 0, "VK_EXT_physical_device_drm"),
-       std::make_tuple(1, 0, "VK_EXT_pipeline_creation_cache_control"),
-       std::make_tuple(1, 0, "VK_EXT_pipeline_creation_feedback"),
-       std::make_tuple(1, 0, "VK_EXT_pipeline_properties"),
-       std::make_tuple(1, 0, "VK_EXT_pipeline_robustness"),
-       std::make_tuple(1, 0, "VK_EXT_post_depth_coverage"),
-       std::make_tuple(1, 0, "VK_EXT_primitive_topology_list_restart"),
-       std::make_tuple(1, 0, "VK_EXT_primitives_generated_query"),
-       std::make_tuple(1, 0, "VK_EXT_private_data"),
-       std::make_tuple(1, 0, "VK_EXT_provoking_vertex"),
-       std::make_tuple(1, 0, "VK_EXT_queue_family_foreign"),
-       std::make_tuple(1, 0, "VK_EXT_rgba10x6_formats"),
-       std::make_tuple(1, 0, "VK_EXT_robustness2"),
-       std::make_tuple(1, 0, "VK_EXT_sample_locations"),
-       std::make_tuple(1, 0, "VK_EXT_sampler_filter_minmax"),
-       std::make_tuple(1, 0, "VK_EXT_scalar_block_layout"),
-       std::make_tuple(1, 0, "VK_EXT_separate_stencil_usage"),
-       std::make_tuple(1, 0, "VK_EXT_shader_atomic_float"),
-       std::make_tuple(1, 0, "VK_EXT_shader_atomic_float2"),
-       std::make_tuple(1, 0, "VK_EXT_shader_demote_to_helper_invocation"),
-       std::make_tuple(1, 0, "VK_EXT_shader_image_atomic_int64"),
-       std::make_tuple(1, 0, "VK_EXT_shader_module_identifier"),
-       std::make_tuple(1, 0, "VK_EXT_shader_stencil_export"),
-       std::make_tuple(1, 0, "VK_EXT_shader_subgroup_ballot"),
-       std::make_tuple(1, 0, "VK_EXT_shader_subgroup_vote"),
-       std::make_tuple(1, 0, "VK_EXT_shader_viewport_index_layer"),
-       std::make_tuple(1, 1, "VK_EXT_subgroup_size_control"),
-       std::make_tuple(1, 0, "VK_EXT_subpass_merge_feedback"),
-       std::make_tuple(1, 0, "VK_EXT_swapchain_colorspace"),
-       std::make_tuple(1, 0, "VK_EXT_texel_buffer_alignment"),
-       std::make_tuple(1, 0, "VK_EXT_texture_compression_astc_hdr"),
-       std::make_tuple(1, 0, "VK_EXT_tooling_info"),
+       std::make_tuple(1, 0, "VK_KHR_sampler_mirror_clamp_to_edge"),
+       std::make_tuple(1, 0, "VK_IMG_filter_cubic"),
+       std::make_tuple(1, 0, "VK_AMD_rasterization_order"),
+       std::make_tuple(1, 0, "VK_AMD_shader_trinary_minmax"),
+       std::make_tuple(1, 0, "VK_AMD_shader_explicit_vertex_parameter"),
+       std::make_tuple(1, 0, "VK_EXT_debug_marker"),
+       std::make_tuple(1, 1, "VK_KHR_video_queue"),
+       std::make_tuple(1, 0, "VK_KHR_video_decode_queue"),
+       std::make_tuple(1, 0, "VK_AMD_gcn_shader"),
+       std::make_tuple(1, 0, "VK_NV_dedicated_allocation"),
        std::make_tuple(1, 0, "VK_EXT_transform_feedback"),
-       std::make_tuple(1, 0, "VK_EXT_validation_cache"),
-       std::make_tuple(1, 0, "VK_EXT_validation_features"),
-       std::make_tuple(1, 0, "VK_EXT_validation_flags"),
-       std::make_tuple(1, 0, "VK_EXT_vertex_attribute_divisor"),
-       std::make_tuple(1, 0, "VK_EXT_vertex_input_dynamic_state"),
-       std::make_tuple(1, 0, "VK_EXT_video_decode_h264"),
-       std::make_tuple(1, 0, "VK_EXT_video_decode_h265"),
+       std::make_tuple(1, 0, "VK_NVX_binary_import"),
+       std::make_tuple(1, 0, "VK_NVX_image_view_handle"),
+       std::make_tuple(1, 0, "VK_AMD_draw_indirect_count"),
+       std::make_tuple(1, 0, "VK_AMD_negative_viewport_height"),
+       std::make_tuple(1, 0, "VK_AMD_gpu_shader_half_float"),
+       std::make_tuple(1, 0, "VK_AMD_shader_ballot"),
        std::make_tuple(1, 0, "VK_EXT_video_encode_h264"),
        std::make_tuple(1, 0, "VK_EXT_video_encode_h265"),
-       std::make_tuple(1, 0, "VK_EXT_ycbcr_2plane_444_formats"),
-       std::make_tuple(1, 0, "VK_EXT_ycbcr_image_arrays"),
-       std::make_tuple(1, 0, "VK_FUCHSIA_buffer_collection"),
-       std::make_tuple(1, 0, "VK_FUCHSIA_external_memory"),
-       std::make_tuple(1, 0, "VK_FUCHSIA_external_semaphore"),
-       std::make_tuple(1, 0, "VK_FUCHSIA_imagepipe_surface"),
-       std::make_tuple(1, 0, "VK_GGP_frame_token"),
+       std::make_tuple(1, 0, "VK_EXT_video_decode_h264"),
+       std::make_tuple(1, 0, "VK_AMD_texture_gather_bias_lod"),
+       std::make_tuple(1, 0, "VK_AMD_shader_info"),
+       std::make_tuple(1, 0, "VK_KHR_dynamic_rendering"),
+       std::make_tuple(1, 0, "VK_AMD_shader_image_load_store_lod"),
        std::make_tuple(1, 0, "VK_GGP_stream_descriptor_surface"),
-       std::make_tuple(1, 0, "VK_GOOGLE_decorate_string"),
-       std::make_tuple(1, 0, "VK_GOOGLE_display_timing"),
-       std::make_tuple(1, 0, "VK_GOOGLE_hlsl_functionality1"),
-       std::make_tuple(1, 0, "VK_GOOGLE_surfaceless_query"),
-       std::make_tuple(1, 0, "VK_GOOGLE_user_type"),
-       std::make_tuple(1, 0, "VK_HUAWEI_invocation_mask"),
-       std::make_tuple(1, 0, "VK_HUAWEI_subpass_shading"),
-       std::make_tuple(1, 0, "VK_IMG_filter_cubic"),
+       std::make_tuple(1, 0, "VK_NV_corner_sampled_image"),
+       std::make_tuple(1, 0, "VK_KHR_multiview"),
        std::make_tuple(1, 0, "VK_IMG_format_pvrtc"),
-       std::make_tuple(1, 0, "VK_INTEL_performance_query"),
-       std::make_tuple(1, 0, "VK_INTEL_shader_integer_functions2"),
-       std::make_tuple(1, 0, "VK_KHR_16bit_storage"),
-       std::make_tuple(1, 0, "VK_KHR_8bit_storage"),
-       std::make_tuple(1, 1, "VK_KHR_acceleration_structure"),
-       std::make_tuple(1, 0, "VK_KHR_android_surface"),
-       std::make_tuple(1, 0, "VK_KHR_bind_memory2"),
-       std::make_tuple(1, 0, "VK_KHR_buffer_device_address"),
-       std::make_tuple(1, 0, "VK_KHR_copy_commands2"),
-       std::make_tuple(1, 0, "VK_KHR_create_renderpass2"),
-       std::make_tuple(1, 0, "VK_KHR_dedicated_allocation"),
-       std::make_tuple(1, 0, "VK_KHR_deferred_host_operations"),
-       std::make_tuple(1, 0, "VK_KHR_depth_stencil_resolve"),
-       std::make_tuple(1, 0, "VK_KHR_descriptor_update_template"),
+       std::make_tuple(1, 0, "VK_NV_external_memory_capabilities"),
+       std::make_tuple(1, 0, "VK_NV_external_memory"),
+       std::make_tuple(1, 0, "VK_NV_external_memory_win32"),
+       std::make_tuple(1, 0, "VK_NV_win32_keyed_mutex"),
+       std::make_tuple(1, 0, "VK_KHR_get_physical_device_properties2"),
        std::make_tuple(1, 0, "VK_KHR_device_group"),
+       std::make_tuple(1, 0, "VK_EXT_validation_flags"),
+       std::make_tuple(1, 0, "VK_NN_vi_surface"),
+       std::make_tuple(1, 0, "VK_KHR_shader_draw_parameters"),
+       std::make_tuple(1, 0, "VK_EXT_shader_subgroup_ballot"),
+       std::make_tuple(1, 0, "VK_EXT_shader_subgroup_vote"),
+       std::make_tuple(1, 0, "VK_EXT_texture_compression_astc_hdr"),
+       std::make_tuple(1, 0, "VK_EXT_astc_decode_mode"),
+       std::make_tuple(1, 0, "VK_EXT_pipeline_robustness"),
+       std::make_tuple(1, 0, "VK_KHR_maintenance1"),
        std::make_tuple(1, 0, "VK_KHR_device_group_creation"),
-       std::make_tuple(1, 0, "VK_KHR_display"),
-       std::make_tuple(1, 0, "VK_KHR_display_swapchain"),
-       std::make_tuple(1, 0, "VK_KHR_draw_indirect_count"),
-       std::make_tuple(1, 0, "VK_KHR_driver_properties"),
-       std::make_tuple(1, 0, "VK_KHR_dynamic_rendering"),
-       std::make_tuple(1, 0, "VK_KHR_external_fence"),
-       std::make_tuple(1, 0, "VK_KHR_external_fence_capabilities"),
-       std::make_tuple(1, 0, "VK_KHR_external_fence_fd"),
-       std::make_tuple(1, 0, "VK_KHR_external_fence_win32"),
-       std::make_tuple(1, 0, "VK_KHR_external_memory"),
        std::make_tuple(1, 0, "VK_KHR_external_memory_capabilities"),
-       std::make_tuple(1, 0, "VK_KHR_external_memory_fd"),
+       std::make_tuple(1, 0, "VK_KHR_external_memory"),
        std::make_tuple(1, 0, "VK_KHR_external_memory_win32"),
-       std::make_tuple(1, 0, "VK_KHR_external_semaphore"),
+       std::make_tuple(1, 0, "VK_KHR_external_memory_fd"),
+       std::make_tuple(1, 0, "VK_KHR_win32_keyed_mutex"),
        std::make_tuple(1, 0, "VK_KHR_external_semaphore_capabilities"),
-       std::make_tuple(1, 0, "VK_KHR_external_semaphore_fd"),
+       std::make_tuple(1, 0, "VK_KHR_external_semaphore"),
        std::make_tuple(1, 0, "VK_KHR_external_semaphore_win32"),
-       std::make_tuple(1, 0, "VK_KHR_format_feature_flags2"),
-       std::make_tuple(1, 0, "VK_KHR_fragment_shader_barycentric"),
-       std::make_tuple(1, 0, "VK_KHR_fragment_shading_rate"),
+       std::make_tuple(1, 0, "VK_KHR_external_semaphore_fd"),
+       std::make_tuple(1, 0, "VK_KHR_push_descriptor"),
+       std::make_tuple(1, 0, "VK_EXT_conditional_rendering"),
+       std::make_tuple(1, 0, "VK_KHR_shader_float16_int8"),
+       std::make_tuple(1, 0, "VK_KHR_16bit_storage"),
+       std::make_tuple(1, 0, "VK_KHR_incremental_present"),
+       std::make_tuple(1, 0, "VK_KHR_descriptor_update_template"),
+       std::make_tuple(1, 0, "VK_NV_clip_space_w_scaling"),
+       std::make_tuple(1, 0, "VK_EXT_direct_mode_display"),
+       std::make_tuple(1, 0, "VK_EXT_acquire_xlib_display"),
+       std::make_tuple(1, 0, "VK_EXT_display_surface_counter"),
+       std::make_tuple(1, 0, "VK_EXT_display_control"),
+       std::make_tuple(1, 0, "VK_GOOGLE_display_timing"),
+       std::make_tuple(1, 0, "VK_NV_sample_mask_override_coverage"),
+       std::make_tuple(1, 0, "VK_NV_geometry_shader_passthrough"),
+       std::make_tuple(1, 0, "VK_NV_viewport_array2"),
+       std::make_tuple(1, 0, "VK_NVX_multiview_per_view_attributes"),
+       std::make_tuple(1, 0, "VK_NV_viewport_swizzle"),
+       std::make_tuple(1, 0, "VK_EXT_discard_rectangles"),
+       std::make_tuple(1, 0, "VK_EXT_conservative_rasterization"),
+       std::make_tuple(1, 0, "VK_EXT_depth_clip_enable"),
+       std::make_tuple(1, 0, "VK_EXT_swapchain_colorspace"),
+       std::make_tuple(1, 0, "VK_EXT_hdr_metadata"),
+       std::make_tuple(1, 0, "VK_KHR_imageless_framebuffer"),
+       std::make_tuple(1, 0, "VK_KHR_create_renderpass2"),
+       std::make_tuple(1, 0, "VK_KHR_shared_presentable_image"),
+       std::make_tuple(1, 0, "VK_KHR_external_fence_capabilities"),
+       std::make_tuple(1, 0, "VK_KHR_external_fence"),
+       std::make_tuple(1, 0, "VK_KHR_external_fence_win32"),
+       std::make_tuple(1, 0, "VK_KHR_external_fence_fd"),
+       std::make_tuple(1, 0, "VK_KHR_performance_query"),
+       std::make_tuple(1, 0, "VK_KHR_maintenance2"),
+       std::make_tuple(1, 0, "VK_KHR_get_surface_capabilities2"),
+       std::make_tuple(1, 0, "VK_KHR_variable_pointers"),
        std::make_tuple(1, 0, "VK_KHR_get_display_properties2"),
+       std::make_tuple(1, 0, "VK_MVK_ios_surface"),
+       std::make_tuple(1, 0, "VK_MVK_macos_surface"),
+       std::make_tuple(1, 0, "VK_EXT_external_memory_dma_buf"),
+       std::make_tuple(1, 0, "VK_EXT_queue_family_foreign"),
+       std::make_tuple(1, 0, "VK_KHR_dedicated_allocation"),
+       std::make_tuple(1, 0, "VK_EXT_debug_utils"),
+       std::make_tuple(1, 0, "VK_ANDROID_external_memory_android_hardware_buffer"),
+       std::make_tuple(1, 0, "VK_EXT_sampler_filter_minmax"),
+       std::make_tuple(1, 0, "VK_KHR_storage_buffer_storage_class"),
+       std::make_tuple(1, 0, "VK_AMD_gpu_shader_int16"),
+       std::make_tuple(1, 0, "VK_AMD_mixed_attachment_samples"),
+       std::make_tuple(1, 0, "VK_AMD_shader_fragment_mask"),
+       std::make_tuple(1, 0, "VK_EXT_inline_uniform_block"),
+       std::make_tuple(1, 0, "VK_EXT_shader_stencil_export"),
+       std::make_tuple(1, 0, "VK_EXT_sample_locations"),
+       std::make_tuple(1, 0, "VK_KHR_relaxed_block_layout"),
        std::make_tuple(1, 0, "VK_KHR_get_memory_requirements2"),
-       std::make_tuple(1, 0, "VK_KHR_get_physical_device_properties2"),
-       std::make_tuple(1, 0, "VK_KHR_get_surface_capabilities2"),
-       std::make_tuple(1, 0, "VK_KHR_global_priority"),
        std::make_tuple(1, 0, "VK_KHR_image_format_list"),
-       std::make_tuple(1, 0, "VK_KHR_imageless_framebuffer"),
-       std::make_tuple(1, 0, "VK_KHR_incremental_present"),
-       std::make_tuple(1, 0, "VK_KHR_maintenance1"),
-       std::make_tuple(1, 0, "VK_KHR_maintenance2"),
-       std::make_tuple(1, 0, "VK_KHR_maintenance3"),
-       std::make_tuple(1, 1, "VK_KHR_maintenance4"),
-       std::make_tuple(1, 0, "VK_KHR_multiview"),
-       std::make_tuple(1, 0, "VK_KHR_performance_query"),
-       std::make_tuple(1, 0, "VK_KHR_pipeline_executable_properties"),
-       std::make_tuple(1, 0, "VK_KHR_pipeline_library"),
-       std::make_tuple(1, 0, "VK_KHR_portability_enumeration"),
-       std::make_tuple(1, 0, "VK_KHR_portability_subset"),
-       std::make_tuple(1, 0, "VK_KHR_present_id"),
-       std::make_tuple(1, 0, "VK_KHR_present_wait"),
-       std::make_tuple(1, 0, "VK_KHR_push_descriptor"),
-       std::make_tuple(1, 1, "VK_KHR_ray_query"),
-       std::make_tuple(1, 1, "VK_KHR_ray_tracing_maintenance1"),
+       std::make_tuple(1, 0, "VK_EXT_blend_operation_advanced"),
+       std::make_tuple(1, 0, "VK_NV_fragment_coverage_to_color"),
+       std::make_tuple(1, 1, "VK_KHR_acceleration_structure"),
        std::make_tuple(1, 1, "VK_KHR_ray_tracing_pipeline"),
-       std::make_tuple(1, 0, "VK_KHR_relaxed_block_layout"),
-       std::make_tuple(1, 0, "VK_KHR_sampler_mirror_clamp_to_edge"),
+       std::make_tuple(1, 1, "VK_KHR_ray_query"),
+       std::make_tuple(1, 0, "VK_NV_framebuffer_mixed_samples"),
+       std::make_tuple(1, 0, "VK_NV_fill_rectangle"),
+       std::make_tuple(1, 1, "VK_NV_shader_sm_builtins"),
+       std::make_tuple(1, 0, "VK_EXT_post_depth_coverage"),
        std::make_tuple(1, 0, "VK_KHR_sampler_ycbcr_conversion"),
-       std::make_tuple(1, 0, "VK_KHR_separate_depth_stencil_layouts"),
+       std::make_tuple(1, 0, "VK_KHR_bind_memory2"),
+       std::make_tuple(1, 0, "VK_EXT_image_drm_format_modifier"),
+       std::make_tuple(1, 0, "VK_EXT_validation_cache"),
+       std::make_tuple(1, 0, "VK_EXT_descriptor_indexing"),
+       std::make_tuple(1, 0, "VK_EXT_shader_viewport_index_layer"),
+       std::make_tuple(1, 0, "VK_KHR_portability_subset"),
+       std::make_tuple(1, 0, "VK_NV_shading_rate_image"),
+       std::make_tuple(1, 0, "VK_NV_ray_tracing"),
+       std::make_tuple(1, 0, "VK_NV_representative_fragment_test"),
+       std::make_tuple(1, 0, "VK_KHR_maintenance3"),
+       std::make_tuple(1, 0, "VK_KHR_draw_indirect_count"),
+       std::make_tuple(1, 0, "VK_EXT_filter_cubic"),
+       std::make_tuple(1, 0, "VK_QCOM_render_pass_shader_resolve"),
+       std::make_tuple(1, 0, "VK_EXT_global_priority"),
+       std::make_tuple(1, 1, "VK_KHR_shader_subgroup_extended_types"),
+       std::make_tuple(1, 0, "VK_KHR_8bit_storage"),
+       std::make_tuple(1, 0, "VK_EXT_external_memory_host"),
+       std::make_tuple(1, 0, "VK_AMD_buffer_marker"),
        std::make_tuple(1, 0, "VK_KHR_shader_atomic_int64"),
        std::make_tuple(1, 0, "VK_KHR_shader_clock"),
-       std::make_tuple(1, 0, "VK_KHR_shader_draw_parameters"),
-       std::make_tuple(1, 0, "VK_KHR_shader_float16_int8"),
+       std::make_tuple(1, 0, "VK_AMD_pipeline_compiler_control"),
+       std::make_tuple(1, 0, "VK_EXT_calibrated_timestamps"),
+       std::make_tuple(1, 0, "VK_AMD_shader_core_properties"),
+       std::make_tuple(1, 0, "VK_EXT_video_decode_h265"),
+       std::make_tuple(1, 0, "VK_KHR_global_priority"),
+       std::make_tuple(1, 0, "VK_AMD_memory_overallocation_behavior"),
+       std::make_tuple(1, 0, "VK_EXT_vertex_attribute_divisor"),
+       std::make_tuple(1, 0, "VK_GGP_frame_token"),
+       std::make_tuple(1, 0, "VK_EXT_pipeline_creation_feedback"),
+       std::make_tuple(1, 0, "VK_KHR_driver_properties"),
        std::make_tuple(1, 0, "VK_KHR_shader_float_controls"),
-       std::make_tuple(1, 0, "VK_KHR_shader_integer_dot_product"),
-       std::make_tuple(1, 0, "VK_KHR_shader_non_semantic_info"),
-       std::make_tuple(1, 1, "VK_KHR_shader_subgroup_extended_types"),
-       std::make_tuple(1, 1, "VK_KHR_shader_subgroup_uniform_control_flow"),
-       std::make_tuple(1, 0, "VK_KHR_shader_terminate_invocation"),
-       std::make_tuple(1, 0, "VK_KHR_shared_presentable_image"),
-       std::make_tuple(1, 1, "VK_KHR_spirv_1_4"),
-       std::make_tuple(1, 0, "VK_KHR_storage_buffer_storage_class"),
-       std::make_tuple(1, 0, "VK_KHR_surface"),
-       std::make_tuple(1, 1, "VK_KHR_surface_protected_capabilities"),
-       std::make_tuple(1, 0, "VK_KHR_swapchain"),
+       std::make_tuple(1, 1, "VK_NV_shader_subgroup_partitioned"),
+       std::make_tuple(1, 0, "VK_KHR_depth_stencil_resolve"),
        std::make_tuple(1, 0, "VK_KHR_swapchain_mutable_format"),
-       std::make_tuple(1, 0, "VK_KHR_synchronization2"),
+       std::make_tuple(1, 0, "VK_NV_compute_shader_derivatives"),
+       std::make_tuple(1, 0, "VK_NV_mesh_shader"),
+       std::make_tuple(1, 0, "VK_NV_fragment_shader_barycentric"),
+       std::make_tuple(1, 0, "VK_NV_shader_image_footprint"),
+       std::make_tuple(1, 0, "VK_NV_scissor_exclusive"),
+       std::make_tuple(1, 0, "VK_NV_device_diagnostic_checkpoints"),
        std::make_tuple(1, 0, "VK_KHR_timeline_semaphore"),
-       std::make_tuple(1, 0, "VK_KHR_uniform_buffer_standard_layout"),
-       std::make_tuple(1, 0, "VK_KHR_variable_pointers"),
-       std::make_tuple(1, 0, "VK_KHR_video_decode_queue"),
-       std::make_tuple(1, 0, "VK_KHR_video_encode_queue"),
-       std::make_tuple(1, 1, "VK_KHR_video_queue"),
+       std::make_tuple(1, 0, "VK_INTEL_shader_integer_functions2"),
+       std::make_tuple(1, 0, "VK_INTEL_performance_query"),
        std::make_tuple(1, 0, "VK_KHR_vulkan_memory_model"),
-       std::make_tuple(1, 0, "VK_KHR_wayland_surface"),
-       std::make_tuple(1, 0, "VK_KHR_win32_keyed_mutex"),
-       std::make_tuple(1, 0, "VK_KHR_win32_surface"),
-       std::make_tuple(1, 0, "VK_KHR_workgroup_memory_explicit_layout"),
-       std::make_tuple(1, 0, "VK_KHR_xcb_surface"),
-       std::make_tuple(1, 0, "VK_KHR_xlib_surface"),
-       std::make_tuple(1, 0, "VK_KHR_zero_initialize_workgroup_memory"),
-       std::make_tuple(1, 0, "VK_MVK_ios_surface"),
-       std::make_tuple(1, 0, "VK_MVK_macos_surface"),
-       std::make_tuple(1, 0, "VK_NN_vi_surface"),
-       std::make_tuple(1, 0, "VK_NVX_binary_import"),
-       std::make_tuple(1, 0, "VK_NVX_image_view_handle"),
-       std::make_tuple(1, 0, "VK_NVX_multiview_per_view_attributes"),
-       std::make_tuple(1, 0, "VK_NV_acquire_winrt_display"),
-       std::make_tuple(1, 0, "VK_NV_clip_space_w_scaling"),
-       std::make_tuple(1, 0, "VK_NV_compute_shader_derivatives"),
+       std::make_tuple(1, 0, "VK_EXT_pci_bus_info"),
+       std::make_tuple(1, 0, "VK_AMD_display_native_hdr"),
+       std::make_tuple(1, 0, "VK_FUCHSIA_imagepipe_surface"),
+       std::make_tuple(1, 0, "VK_KHR_shader_terminate_invocation"),
+       std::make_tuple(1, 0, "VK_EXT_metal_surface"),
+       std::make_tuple(1, 0, "VK_EXT_fragment_density_map"),
+       std::make_tuple(1, 0, "VK_EXT_scalar_block_layout"),
+       std::make_tuple(1, 0, "VK_GOOGLE_hlsl_functionality1"),
+       std::make_tuple(1, 0, "VK_GOOGLE_decorate_string"),
+       std::make_tuple(1, 1, "VK_EXT_subgroup_size_control"),
+       std::make_tuple(1, 0, "VK_KHR_fragment_shading_rate"),
+       std::make_tuple(1, 0, "VK_AMD_shader_core_properties2"),
+       std::make_tuple(1, 0, "VK_AMD_device_coherent_memory"),
+       std::make_tuple(1, 0, "VK_EXT_shader_image_atomic_int64"),
+       std::make_tuple(1, 1, "VK_KHR_spirv_1_4"),
+       std::make_tuple(1, 0, "VK_EXT_memory_budget"),
+       std::make_tuple(1, 0, "VK_EXT_memory_priority"),
+       std::make_tuple(1, 1, "VK_KHR_surface_protected_capabilities"),
+       std::make_tuple(1, 0, "VK_NV_dedicated_allocation_image_aliasing"),
+       std::make_tuple(1, 0, "VK_KHR_separate_depth_stencil_layouts"),
+       std::make_tuple(1, 0, "VK_EXT_buffer_device_address"),
+       std::make_tuple(1, 0, "VK_EXT_tooling_info"),
+       std::make_tuple(1, 0, "VK_EXT_separate_stencil_usage"),
+       std::make_tuple(1, 0, "VK_EXT_validation_features"),
+       std::make_tuple(1, 0, "VK_KHR_present_wait"),
        std::make_tuple(1, 0, "VK_NV_cooperative_matrix"),
-       std::make_tuple(1, 0, "VK_NV_corner_sampled_image"),
        std::make_tuple(1, 0, "VK_NV_coverage_reduction_mode"),
-       std::make_tuple(1, 0, "VK_NV_dedicated_allocation"),
-       std::make_tuple(1, 0, "VK_NV_dedicated_allocation_image_aliasing"),
-       std::make_tuple(1, 0, "VK_NV_device_diagnostic_checkpoints"),
-       std::make_tuple(1, 0, "VK_NV_device_diagnostics_config"),
+       std::make_tuple(1, 0, "VK_EXT_fragment_shader_interlock"),
+       std::make_tuple(1, 0, "VK_EXT_ycbcr_image_arrays"),
+       std::make_tuple(1, 0, "VK_KHR_uniform_buffer_standard_layout"),
+       std::make_tuple(1, 0, "VK_EXT_provoking_vertex"),
+       std::make_tuple(1, 0, "VK_EXT_full_screen_exclusive"),
+       std::make_tuple(1, 0, "VK_EXT_headless_surface"),
+       std::make_tuple(1, 0, "VK_KHR_buffer_device_address"),
+       std::make_tuple(1, 0, "VK_EXT_line_rasterization"),
+       std::make_tuple(1, 0, "VK_EXT_shader_atomic_float"),
+       std::make_tuple(1, 0, "VK_EXT_host_query_reset"),
+       std::make_tuple(1, 0, "VK_EXT_index_type_uint8"),
+       std::make_tuple(1, 0, "VK_EXT_extended_dynamic_state"),
+       std::make_tuple(1, 0, "VK_KHR_deferred_host_operations"),
+       std::make_tuple(1, 0, "VK_KHR_pipeline_executable_properties"),
+       std::make_tuple(1, 0, "VK_EXT_shader_atomic_float2"),
+       std::make_tuple(1, 0, "VK_EXT_shader_demote_to_helper_invocation"),
        std::make_tuple(1, 1, "VK_NV_device_generated_commands"),
-       std::make_tuple(1, 0, "VK_NV_external_memory"),
-       std::make_tuple(1, 0, "VK_NV_external_memory_capabilities"),
-       std::make_tuple(1, 0, "VK_NV_external_memory_rdma"),
-       std::make_tuple(1, 0, "VK_NV_external_memory_win32"),
-       std::make_tuple(1, 0, "VK_NV_fill_rectangle"),
-       std::make_tuple(1, 0, "VK_NV_fragment_coverage_to_color"),
-       std::make_tuple(1, 0, "VK_NV_fragment_shader_barycentric"),
-       std::make_tuple(1, 0, "VK_NV_fragment_shading_rate_enums"),
-       std::make_tuple(1, 0, "VK_NV_framebuffer_mixed_samples"),
-       std::make_tuple(1, 0, "VK_NV_geometry_shader_passthrough"),
-       std::make_tuple(1, 0, "VK_NV_glsl_shader"),
        std::make_tuple(1, 0, "VK_NV_inherited_viewport_scissor"),
-       std::make_tuple(1, 0, "VK_NV_linear_color_attachment"),
-       std::make_tuple(1, 0, "VK_NV_mesh_shader"),
-       std::make_tuple(1, 0, "VK_NV_ray_tracing"),
-       std::make_tuple(1, 0, "VK_NV_ray_tracing_motion_blur"),
-       std::make_tuple(1, 0, "VK_NV_representative_fragment_test"),
-       std::make_tuple(1, 0, "VK_NV_sample_mask_override_coverage"),
-       std::make_tuple(1, 0, "VK_NV_scissor_exclusive"),
-       std::make_tuple(1, 0, "VK_NV_shader_image_footprint"),
-       std::make_tuple(1, 1, "VK_NV_shader_sm_builtins"),
-       std::make_tuple(1, 1, "VK_NV_shader_subgroup_partitioned"),
-       std::make_tuple(1, 0, "VK_NV_shading_rate_image"),
-       std::make_tuple(1, 0, "VK_NV_viewport_array2"),
-       std::make_tuple(1, 0, "VK_NV_viewport_swizzle"),
-       std::make_tuple(1, 0, "VK_NV_win32_keyed_mutex"),
-       std::make_tuple(1, 0, "VK_QCOM_fragment_density_map_offset"),
-       std::make_tuple(1, 0, "VK_QCOM_image_processing"),
-       std::make_tuple(1, 0, "VK_QCOM_render_pass_shader_resolve"),
-       std::make_tuple(1, 0, "VK_QCOM_render_pass_store_ops"),
+       std::make_tuple(1, 0, "VK_KHR_shader_integer_dot_product"),
+       std::make_tuple(1, 0, "VK_EXT_texel_buffer_alignment"),
        std::make_tuple(1, 0, "VK_QCOM_render_pass_transform"),
+       std::make_tuple(1, 0, "VK_EXT_device_memory_report"),
+       std::make_tuple(1, 0, "VK_EXT_acquire_drm_display"),
+       std::make_tuple(1, 0, "VK_EXT_robustness2"),
+       std::make_tuple(1, 0, "VK_EXT_custom_border_color"),
+       std::make_tuple(1, 0, "VK_GOOGLE_user_type"),
+       std::make_tuple(1, 0, "VK_KHR_pipeline_library"),
+       std::make_tuple(1, 0, "VK_KHR_shader_non_semantic_info"),
+       std::make_tuple(1, 0, "VK_KHR_present_id"),
+       std::make_tuple(1, 0, "VK_EXT_private_data"),
+       std::make_tuple(1, 0, "VK_EXT_pipeline_creation_cache_control"),
+       std::make_tuple(1, 0, "VK_KHR_video_encode_queue"),
+       std::make_tuple(1, 0, "VK_NV_device_diagnostics_config"),
+       std::make_tuple(1, 0, "VK_QCOM_render_pass_store_ops"),
+       std::make_tuple(1, 0, "VK_EXT_metal_objects"),
+       std::make_tuple(1, 0, "VK_KHR_synchronization2"),
+       std::make_tuple(1, 0, "VK_EXT_graphics_pipeline_library"),
+       std::make_tuple(1, 0, "VK_AMD_shader_early_and_late_fragment_tests"),
+       std::make_tuple(1, 0, "VK_KHR_fragment_shader_barycentric"),
+       std::make_tuple(1, 1, "VK_KHR_shader_subgroup_uniform_control_flow"),
+       std::make_tuple(1, 0, "VK_KHR_zero_initialize_workgroup_memory"),
+       std::make_tuple(1, 0, "VK_NV_fragment_shading_rate_enums"),
+       std::make_tuple(1, 0, "VK_NV_ray_tracing_motion_blur"),
+       std::make_tuple(1, 0, "VK_EXT_ycbcr_2plane_444_formats"),
+       std::make_tuple(1, 0, "VK_EXT_fragment_density_map2"),
        std::make_tuple(1, 0, "VK_QCOM_rotated_copy_commands"),
-       std::make_tuple(1, 0, "VK_QCOM_tile_properties"),
+       std::make_tuple(1, 0, "VK_EXT_image_robustness"),
+       std::make_tuple(1, 0, "VK_KHR_workgroup_memory_explicit_layout"),
+       std::make_tuple(1, 0, "VK_KHR_copy_commands2"),
+       std::make_tuple(1, 0, "VK_EXT_image_compression_control"),
+       std::make_tuple(1, 0, "VK_EXT_4444_formats"),
+       std::make_tuple(1, 0, "VK_ARM_rasterization_order_attachment_access"),
+       std::make_tuple(1, 0, "VK_EXT_rgba10x6_formats"),
+       std::make_tuple(1, 0, "VK_NV_acquire_winrt_display"),
+       std::make_tuple(1, 0, "VK_VALVE_mutable_descriptor_type"),
+       std::make_tuple(1, 0, "VK_EXT_vertex_input_dynamic_state"),
+       std::make_tuple(1, 0, "VK_EXT_physical_device_drm"),
+       std::make_tuple(1, 0, "VK_EXT_depth_clip_control"),
+       std::make_tuple(1, 0, "VK_EXT_primitive_topology_list_restart"),
+       std::make_tuple(1, 0, "VK_KHR_format_feature_flags2"),
+       std::make_tuple(1, 0, "VK_FUCHSIA_external_memory"),
+       std::make_tuple(1, 0, "VK_FUCHSIA_external_semaphore"),
+       std::make_tuple(1, 0, "VK_FUCHSIA_buffer_collection"),
+       std::make_tuple(1, 0, "VK_HUAWEI_subpass_shading"),
+       std::make_tuple(1, 0, "VK_HUAWEI_invocation_mask"),
+       std::make_tuple(1, 0, "VK_NV_external_memory_rdma"),
+       std::make_tuple(1, 0, "VK_EXT_pipeline_properties"),
+       std::make_tuple(1, 0, "VK_EXT_multisampled_render_to_single_sampled"),
+       std::make_tuple(1, 0, "VK_EXT_extended_dynamic_state2"),
        std::make_tuple(1, 0, "VK_QNX_screen_surface"),
+       std::make_tuple(1, 0, "VK_EXT_color_write_enable"),
+       std::make_tuple(1, 0, "VK_EXT_primitives_generated_query"),
+       std::make_tuple(1, 1, "VK_KHR_ray_tracing_maintenance1"),
+       std::make_tuple(1, 0, "VK_EXT_global_priority_query"),
+       std::make_tuple(1, 0, "VK_EXT_image_view_min_lod"),
+       std::make_tuple(1, 0, "VK_EXT_multi_draw"),
+       std::make_tuple(1, 0, "VK_EXT_image_2d_view_of_3d"),
+       std::make_tuple(1, 0, "VK_KHR_portability_enumeration"),
+       std::make_tuple(1, 0, "VK_EXT_load_store_op_none"),
+       std::make_tuple(1, 0, "VK_EXT_border_color_swizzle"),
+       std::make_tuple(1, 0, "VK_EXT_pageable_device_local_memory"),
+       std::make_tuple(1, 1, "VK_KHR_maintenance4"),
        std::make_tuple(1, 0, "VK_VALVE_descriptor_set_host_mapping"),
-       std::make_tuple(1, 0, "VK_VALVE_mutable_descriptor_type"),
+       std::make_tuple(1, 0, "VK_EXT_non_seamless_cube_map"),
+       std::make_tuple(1, 0, "VK_QCOM_fragment_density_map_offset"),
+       std::make_tuple(1, 0, "VK_NV_linear_color_attachment"),
+       std::make_tuple(1, 0, "VK_GOOGLE_surfaceless_query"),
+       std::make_tuple(1, 0, "VK_EXT_image_compression_control_swapchain"),
+       std::make_tuple(1, 0, "VK_QCOM_image_processing"),
+       std::make_tuple(1, 0, "VK_EXT_subpass_merge_feedback"),
+       std::make_tuple(1, 0, "VK_EXT_shader_module_identifier"),
+       std::make_tuple(1, 0, "VK_QCOM_tile_properties"),
 };
index 2d5c18d..f056512 100644 (file)
  * This file was generated by /scripts/gen_framework.py
  */
 
-#define VK_API_VERSION_1_0                                     (static_cast<uint32_t>                  (VK_MAKE_API_VERSION(0, 1, 0, 0)))
-#define VK_API_VERSION_1_1                                     (static_cast<uint32_t>                  (VK_MAKE_API_VERSION(0, 1, 1, 0)))
-#define VK_API_VERSION_1_2                                     (static_cast<uint32_t>                  (VK_MAKE_API_VERSION(0, 1, 2, 0)))
-#define VK_API_VERSION_1_3                                     (static_cast<uint32_t>                  (VK_MAKE_API_VERSION(0, 1, 3, 0)))
-#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE       (static_cast<size_t>                    (256U))
-#define VK_MAX_EXTENSION_NAME_SIZE                     (static_cast<size_t>                    (256U))
-#define VK_MAX_DRIVER_NAME_SIZE                                (static_cast<size_t>                    (256U))
-#define VK_MAX_DRIVER_INFO_SIZE                                (static_cast<size_t>                    (256U))
-#define VK_UUID_SIZE                                           (static_cast<size_t>                    (16U))
-#define VK_LUID_SIZE                                           (static_cast<size_t>                    (8U))
-#define VK_MAX_MEMORY_TYPES                                    (static_cast<size_t>                    (32U))
-#define VK_MAX_MEMORY_HEAPS                                    (static_cast<size_t>                    (16U))
-#define VK_MAX_DESCRIPTION_SIZE                                (static_cast<size_t>                    (256U))
-#define VK_MAX_DEVICE_GROUP_SIZE                       (static_cast<size_t>                    (32U))
-#define VK_ATTACHMENT_UNUSED                           (static_cast<uint32_t>                  ((~0U)))
-#define VK_SUBPASS_EXTERNAL                                    (static_cast<uint32_t>                  ((~0U)))
-#define VK_QUEUE_FAMILY_IGNORED                                (static_cast<uint32_t>                  ((~0U)))
-#define VK_QUEUE_FAMILY_EXTERNAL                       (static_cast<uint32_t>                  ((~1U)))
-#define VK_REMAINING_MIP_LEVELS                                (static_cast<uint32_t>                  ((~0U)))
-#define VK_REMAINING_ARRAY_LAYERS                      (static_cast<uint32_t>                  ((~0U)))
-#define VK_WHOLE_SIZE                                          (static_cast<vk::VkDeviceSize>  ((~0ULL)))
-#define VK_TRUE                                                                (static_cast<vk::VkBool32>              (1U))
-#define VK_FALSE                                                       (static_cast<vk::VkBool32>              (0U))
-#define VK_API_MAX_FRAMEWORK_VERSION           VK_API_VERSION_1_3
+#define VK_API_VERSION_1_0                                                     (static_cast<uint32_t>                  (VK_MAKE_API_VERSION(0, 1, 0, 0)))
+#define VK_API_VERSION_1_1                                                     (static_cast<uint32_t>                  (VK_MAKE_API_VERSION(0, 1, 1, 0)))
+#define VK_API_VERSION_1_2                                                     (static_cast<uint32_t>                  (VK_MAKE_API_VERSION(0, 1, 2, 0)))
+#define VK_API_VERSION_1_3                                                     (static_cast<uint32_t>                  (VK_MAKE_API_VERSION(0, 1, 3, 0)))
+#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE                       (static_cast<size_t>                    (256))
+#define VK_UUID_SIZE                                                           (static_cast<size_t>                    (16))
+#define VK_LUID_SIZE                                                           (static_cast<size_t>                    (8))
+#define VK_MAX_EXTENSION_NAME_SIZE                                     (static_cast<size_t>                    (256))
+#define VK_MAX_DESCRIPTION_SIZE                                                (static_cast<size_t>                    (256))
+#define VK_MAX_MEMORY_TYPES                                                    (static_cast<size_t>                    (32))
+#define VK_MAX_MEMORY_HEAPS                                                    (static_cast<size_t>                    (16))
+#define VK_LOD_CLAMP_NONE                                                      (static_cast<float>                             (1000.0F))
+#define VK_REMAINING_MIP_LEVELS                                                (static_cast<uint32_t>                  ((~0U)))
+#define VK_REMAINING_ARRAY_LAYERS                                      (static_cast<uint32_t>                  ((~0U)))
+#define VK_WHOLE_SIZE                                                          (static_cast<vk::VkDeviceSize>  ((~0ULL)))
+#define VK_ATTACHMENT_UNUSED                                           (static_cast<uint32_t>                  ((~0U)))
+#define VK_TRUE                                                                                (static_cast<vk::VkBool32>              (1))
+#define VK_FALSE                                                                       (static_cast<vk::VkBool32>              (0))
+#define VK_QUEUE_FAMILY_IGNORED                                                (static_cast<uint32_t>                  ((~0U)))
+#define VK_QUEUE_FAMILY_EXTERNAL                                       (static_cast<uint32_t>                  ((~1U)))
+#define VK_QUEUE_FAMILY_FOREIGN_EXT                                    (static_cast<uint32_t>                  ((~2U)))
+#define VK_SUBPASS_EXTERNAL                                                    (static_cast<uint32_t>                  ((~0U)))
+#define VK_MAX_DEVICE_GROUP_SIZE                                       (static_cast<size_t>                    (32))
+#define VK_MAX_DRIVER_NAME_SIZE                                                (static_cast<size_t>                    (256))
+#define VK_MAX_DRIVER_INFO_SIZE                                                (static_cast<size_t>                    (256))
+#define VK_SHADER_UNUSED_KHR                                           (static_cast<uint32_t>                  ((~0U)))
+#define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR                                (static_cast<uint32_t>                  (16))
+#define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT       (static_cast<uint32_t>                  (32))
+#define VK_API_MAX_FRAMEWORK_VERSION   VK_API_VERSION_1_3
 
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkBuffer,                                                      HANDLE_TYPE_BUFFER);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkImage,                                                       HANDLE_TYPE_IMAGE);
 VK_DEFINE_HANDLE                                       (VkInstance,                                            HANDLE_TYPE_INSTANCE);
 VK_DEFINE_HANDLE                                       (VkPhysicalDevice,                                      HANDLE_TYPE_PHYSICAL_DEVICE);
 VK_DEFINE_HANDLE                                       (VkDevice,                                                      HANDLE_TYPE_DEVICE);
 VK_DEFINE_HANDLE                                       (VkQueue,                                                       HANDLE_TYPE_QUEUE);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkSemaphore,                                           HANDLE_TYPE_SEMAPHORE);
 VK_DEFINE_HANDLE                                       (VkCommandBuffer,                                       HANDLE_TYPE_COMMAND_BUFFER);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkFence,                                                       HANDLE_TYPE_FENCE);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDeviceMemory,                                        HANDLE_TYPE_DEVICE_MEMORY);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkEvent,                                                       HANDLE_TYPE_EVENT);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkQueryPool,                                           HANDLE_TYPE_QUERY_POOL);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkCommandPool,                                         HANDLE_TYPE_COMMAND_POOL);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkBuffer,                                                      HANDLE_TYPE_BUFFER);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkBufferView,                                          HANDLE_TYPE_BUFFER_VIEW);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkImage,                                                       HANDLE_TYPE_IMAGE);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkImageView,                                           HANDLE_TYPE_IMAGE_VIEW);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkShaderModule,                                        HANDLE_TYPE_SHADER_MODULE);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkPipelineCache,                                       HANDLE_TYPE_PIPELINE_CACHE);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkPipelineLayout,                                      HANDLE_TYPE_PIPELINE_LAYOUT);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkPipeline,                                            HANDLE_TYPE_PIPELINE);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkRenderPass,                                          HANDLE_TYPE_RENDER_PASS);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDescriptorSetLayout,                         HANDLE_TYPE_DESCRIPTOR_SET_LAYOUT);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkPipelineLayout,                                      HANDLE_TYPE_PIPELINE_LAYOUT);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkSampler,                                                     HANDLE_TYPE_SAMPLER);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDescriptorSet,                                       HANDLE_TYPE_DESCRIPTOR_SET);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDescriptorSetLayout,                         HANDLE_TYPE_DESCRIPTOR_SET_LAYOUT);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDescriptorPool,                                      HANDLE_TYPE_DESCRIPTOR_POOL);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkFence,                                                       HANDLE_TYPE_FENCE);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkSemaphore,                                           HANDLE_TYPE_SEMAPHORE);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkEvent,                                                       HANDLE_TYPE_EVENT);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkQueryPool,                                           HANDLE_TYPE_QUERY_POOL);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkFramebuffer,                                         HANDLE_TYPE_FRAMEBUFFER);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkCommandPool,                                         HANDLE_TYPE_COMMAND_POOL);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkSamplerYcbcrConversion,                      HANDLE_TYPE_SAMPLER_YCBCR_CONVERSION);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkRenderPass,                                          HANDLE_TYPE_RENDER_PASS);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkPipelineCache,                                       HANDLE_TYPE_PIPELINE_CACHE);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkIndirectCommandsLayoutNV,            HANDLE_TYPE_INDIRECT_COMMANDS_LAYOUT_NV);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDescriptorUpdateTemplate,            HANDLE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDescriptorUpdateTemplateKHR,         HANDLE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkSamplerYcbcrConversion,                      HANDLE_TYPE_SAMPLER_YCBCR_CONVERSION);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkSamplerYcbcrConversionKHR,           HANDLE_TYPE_SAMPLER_YCBCR_CONVERSION);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkValidationCacheEXT,                          HANDLE_TYPE_VALIDATION_CACHE_EXT);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkAccelerationStructureKHR,            HANDLE_TYPE_ACCELERATION_STRUCTURE_KHR);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkAccelerationStructureNV,                     HANDLE_TYPE_ACCELERATION_STRUCTURE_NV);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkPerformanceConfigurationINTEL,       HANDLE_TYPE_PERFORMANCE_CONFIGURATION_INTEL);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkBufferCollectionFUCHSIA,                     HANDLE_TYPE_BUFFER_COLLECTION_FUCHSIA);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDeferredOperationKHR,                        HANDLE_TYPE_DEFERRED_OPERATION_KHR);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkPrivateDataSlot,                                     HANDLE_TYPE_PRIVATE_DATA_SLOT);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkSurfaceKHR,                                          HANDLE_TYPE_SURFACE_KHR);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkSwapchainKHR,                                        HANDLE_TYPE_SWAPCHAIN_KHR);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkPrivateDataSlotEXT,                          HANDLE_TYPE_PRIVATE_DATA_SLOT);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkCuModuleNVX,                                         HANDLE_TYPE_CU_MODULE_NVX);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkCuFunctionNVX,                                       HANDLE_TYPE_CU_FUNCTION_NVX);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDisplayKHR,                                          HANDLE_TYPE_DISPLAY_KHR);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDisplayModeKHR,                                      HANDLE_TYPE_DISPLAY_MODE_KHR);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDeferredOperationKHR,                        HANDLE_TYPE_DEFERRED_OPERATION_KHR);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkSurfaceKHR,                                          HANDLE_TYPE_SURFACE_KHR);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkSwapchainKHR,                                        HANDLE_TYPE_SWAPCHAIN_KHR);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDebugReportCallbackEXT,                      HANDLE_TYPE_DEBUG_REPORT_CALLBACK_EXT);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkCuModuleNVX,                                         HANDLE_TYPE_CU_MODULE_NVX);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkCuFunctionNVX,                                       HANDLE_TYPE_CU_FUNCTION_NVX);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDebugUtilsMessengerEXT,                      HANDLE_TYPE_DEBUG_UTILS_MESSENGER_EXT);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkValidationCacheEXT,                          HANDLE_TYPE_VALIDATION_CACHE_EXT);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkAccelerationStructureNV,                     HANDLE_TYPE_ACCELERATION_STRUCTURE_NV);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkPerformanceConfigurationINTEL,       HANDLE_TYPE_PERFORMANCE_CONFIGURATION_INTEL);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkIndirectCommandsLayoutNV,            HANDLE_TYPE_INDIRECT_COMMANDS_LAYOUT_NV);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkAccelerationStructureKHR,            HANDLE_TYPE_ACCELERATION_STRUCTURE_KHR);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkVideoSessionKHR,                                     HANDLE_TYPE_VIDEO_SESSION_KHR);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkVideoSessionParametersKHR,           HANDLE_TYPE_VIDEO_SESSION_PARAMETERS_KHR);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkBufferCollectionFUCHSIA,                     HANDLE_TYPE_BUFFER_COLLECTION_FUCHSIA);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkSamplerYcbcrConversionKHR,           HANDLE_TYPE_SAMPLER_YCBCR_CONVERSION);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkDescriptorUpdateTemplateKHR,         HANDLE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE      (VkPrivateDataSlotEXT,                          HANDLE_TYPE_PRIVATE_DATA_SLOT);
 
-enum VkResult
+enum VkAttachmentLoadOp
 {
-       VK_SUCCESS                                                                                              = 0,
-       VK_NOT_READY                                                                                    = 1,
-       VK_TIMEOUT                                                                                              = 2,
-       VK_EVENT_SET                                                                                    = 3,
-       VK_EVENT_RESET                                                                                  = 4,
-       VK_INCOMPLETE                                                                                   = 5,
-       VK_ERROR_OUT_OF_HOST_MEMORY                                                             = -1,
-       VK_ERROR_OUT_OF_DEVICE_MEMORY                                                   = -2,
-       VK_ERROR_INITIALIZATION_FAILED                                                  = -3,
-       VK_ERROR_DEVICE_LOST                                                                    = -4,
-       VK_ERROR_MEMORY_MAP_FAILED                                                              = -5,
-       VK_ERROR_LAYER_NOT_PRESENT                                                              = -6,
-       VK_ERROR_EXTENSION_NOT_PRESENT                                                  = -7,
-       VK_ERROR_FEATURE_NOT_PRESENT                                                    = -8,
-       VK_ERROR_INCOMPATIBLE_DRIVER                                                    = -9,
-       VK_ERROR_TOO_MANY_OBJECTS                                                               = -10,
-       VK_ERROR_FORMAT_NOT_SUPPORTED                                                   = -11,
-       VK_ERROR_FRAGMENTED_POOL                                                                = -12,
-       VK_ERROR_UNKNOWN                                                                                = -13,
-       VK_ERROR_OUT_OF_POOL_MEMORY                                                             = -1000069000,
-       VK_ERROR_INVALID_EXTERNAL_HANDLE                                                = -1000072003,
-       VK_ERROR_FRAGMENTATION                                                                  = -1000161000,
-       VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS                                 = -1000257000,
-       VK_PIPELINE_COMPILE_REQUIRED                                                    = 1000297000,
-       VK_ERROR_SURFACE_LOST_KHR                                                               = -1000000000,
-       VK_ERROR_NATIVE_WINDOW_IN_USE_KHR                                               = -1000000001,
-       VK_SUBOPTIMAL_KHR                                                                               = 1000001003,
-       VK_ERROR_OUT_OF_DATE_KHR                                                                = -1000001004,
-       VK_ERROR_INCOMPATIBLE_DISPLAY_KHR                                               = -1000003001,
-       VK_ERROR_VALIDATION_FAILED_EXT                                                  = -1000011001,
-       VK_ERROR_INVALID_SHADER_NV                                                              = -1000012000,
-       VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR                                  = -1000023000,
-       VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR                 = -1000023001,
-       VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR              = -1000023002,
-       VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR                 = -1000023003,
-       VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR                  = -1000023004,
-       VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR                    = -1000023005,
-       VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT   = -1000158000,
-       VK_ERROR_NOT_PERMITTED_KHR                                                              = -1000174001,
-       VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT                    = -1000255000,
-       VK_THREAD_IDLE_KHR                                                                              = 1000268000,
-       VK_THREAD_DONE_KHR                                                                              = 1000268001,
-       VK_OPERATION_DEFERRED_KHR                                                               = 1000268002,
-       VK_OPERATION_NOT_DEFERRED_KHR                                                   = 1000268003,
-       VK_ERROR_COMPRESSION_EXHAUSTED_EXT                                              = -1000338000,
-       VK_ERROR_OUT_OF_POOL_MEMORY_KHR                                                 = VK_ERROR_OUT_OF_POOL_MEMORY,
-       VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR                                    = VK_ERROR_INVALID_EXTERNAL_HANDLE,
-       VK_ERROR_FRAGMENTATION_EXT                                                              = VK_ERROR_FRAGMENTATION,
-       VK_ERROR_NOT_PERMITTED_EXT                                                              = VK_ERROR_NOT_PERMITTED_KHR,
-       VK_ERROR_INVALID_DEVICE_ADDRESS_EXT                                             = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
-       VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR                             = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
-       VK_PIPELINE_COMPILE_REQUIRED_EXT                                                = VK_PIPELINE_COMPILE_REQUIRED,
-       VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT                                  = VK_PIPELINE_COMPILE_REQUIRED,
-       VK_RESULT_MAX_ENUM                                                                              = 0x7FFFFFFF,
+       VK_ATTACHMENT_LOAD_OP_LOAD              = 0,
+       VK_ATTACHMENT_LOAD_OP_CLEAR             = 1,
+       VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
+       VK_ATTACHMENT_LOAD_OP_NONE_EXT  = 1000400000,
+       VK_ATTACHMENT_LOAD_OP_MAX_ENUM  = 0x7FFFFFFF
 };
 
-enum VkStructureType
+enum VkAttachmentStoreOp
 {
-       VK_STRUCTURE_TYPE_APPLICATION_INFO                                                                                                              = 0,
-       VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO                                                                                                  = 1,
-       VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO                                                                                              = 2,
-       VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO                                                                                                    = 3,
-       VK_STRUCTURE_TYPE_SUBMIT_INFO                                                                                                                   = 4,
-       VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO                                                                                                  = 5,
-       VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE                                                                                                   = 6,
-       VK_STRUCTURE_TYPE_BIND_SPARSE_INFO                                                                                                              = 7,
-       VK_STRUCTURE_TYPE_FENCE_CREATE_INFO                                                                                                             = 8,
-       VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO                                                                                                 = 9,
-       VK_STRUCTURE_TYPE_EVENT_CREATE_INFO                                                                                                             = 10,
-       VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO                                                                                                = 11,
-       VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO                                                                                                    = 12,
-       VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO                                                                                               = 13,
-       VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO                                                                                                             = 14,
-       VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO                                                                                                = 15,
-       VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO                                                                                             = 16,
-       VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO                                                                                    = 17,
-       VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO                                                                             = 18,
-       VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO                                                               = 19,
-       VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO                                                             = 20,
-       VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO                                                               = 21,
-       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO                                                                   = 22,
-       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO                                                              = 23,
-       VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO                                                                = 24,
-       VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO                                                              = 25,
-       VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO                                                                = 26,
-       VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO                                                                    = 27,
-       VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO                                                                                 = 28,
-       VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO                                                                                  = 29,
-       VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO                                                                                   = 30,
-       VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO                                                                                                   = 31,
-       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO                                                                             = 32,
-       VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO                                                                                   = 33,
-       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO                                                                                  = 34,
-       VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET                                                                                                  = 35,
-       VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET                                                                                                   = 36,
-       VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO                                                                                               = 37,
-       VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO                                                                                               = 38,
-       VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO                                                                                              = 39,
-       VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO                                                                                  = 40,
-       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO                                                                               = 41,
-       VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO                                                                                             = 42,
-       VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO                                                                                                = 43,
-       VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER                                                                                                 = 44,
-       VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER                                                                                                  = 45,
-       VK_STRUCTURE_TYPE_MEMORY_BARRIER                                                                                                                = 46,
-       VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO                                                                                   = 47,
-       VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO                                                                                             = 48,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES                                                                   = 1000094000,
-       VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO                                                                                               = 1000157000,
-       VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO                                                                                                = 1000157001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES                                                                = 1000083000,
-       VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS                                                                                 = 1000127000,
-       VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO                                                                                = 1000127001,
-       VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO                                                                                    = 1000060000,
-       VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO                                                                   = 1000060003,
-       VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO                                                                = 1000060004,
-       VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO                                                                                              = 1000060005,
-       VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO                                                                                 = 1000060006,
-       VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO                                                                  = 1000060013,
-       VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO                                                                   = 1000060014,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES                                                                              = 1000070000,
-       VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO                                                                               = 1000070001,
-       VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2                                                                             = 1000146000,
-       VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2                                                                              = 1000146001,
-       VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2                                                               = 1000146002,
-       VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2                                                                                                 = 1000146003,
-       VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2                                                                    = 1000146004,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2                                                                                    = 1000059000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2                                                                                  = 1000059001,
-       VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2                                                                                                   = 1000059002,
-       VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2                                                                                             = 1000059003,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2                                                                   = 1000059004,
-       VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2                                                                                             = 1000059005,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2                                                                   = 1000059006,
-       VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2                                                                              = 1000059007,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2                                                    = 1000059008,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES                                                             = 1000117000,
-       VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO                                               = 1000117001,
-       VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO                                                                                  = 1000117002,
-       VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO                                 = 1000117003,
-       VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO                                                                             = 1000053000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES                                                                    = 1000053001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES                                                                  = 1000053002,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES                                                    = 1000120000,
-       VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO                                                                                                 = 1000145000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES                                                             = 1000145001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES                                                   = 1000145002,
-       VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2                                                                                                   = 1000145003,
-       VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO                                                                  = 1000156000,
-       VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO                                                                                 = 1000156001,
-       VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO                                                                                  = 1000156002,
-       VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO                                                                  = 1000156003,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES                                             = 1000156004,
-       VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES                                              = 1000156005,
-       VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO                                                                = 1000085000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO                                                    = 1000071000,
-       VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES                                                                              = 1000071001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO                                                                  = 1000071002,
-       VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES                                                                                    = 1000071003,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES                                                                                 = 1000071004,
-       VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO                                                                    = 1000072000,
-       VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO                                                                             = 1000072001,
-       VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO                                                                                   = 1000072002,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO                                                                   = 1000112000,
-       VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES                                                                                             = 1000112001,
-       VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO                                                                                              = 1000113000,
-       VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO                                                                                  = 1000077000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO                                                               = 1000076000,
-       VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES                                                                                 = 1000076001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES                                                              = 1000168000,
-       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT                                                                                 = 1000168001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES                                               = 1000063000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES                                                                   = 49,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES                                                                 = 50,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES                                                                   = 51,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES                                                                 = 52,
-       VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO                                                                                 = 1000147000,
-       VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2                                                                                              = 1000109000,
-       VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2                                                                                                = 1000109001,
-       VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2                                                                                                 = 1000109002,
-       VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2                                                                                                  = 1000109003,
-       VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2                                                                                             = 1000109004,
-       VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO                                                                                                    = 1000109005,
-       VK_STRUCTURE_TYPE_SUBPASS_END_INFO                                                                                                              = 1000109006,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES                                                                 = 1000177000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES                                                                             = 1000196000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES                                                  = 1000180000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES                                                  = 1000082000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES                                                             = 1000197000,
-       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO                                               = 1000161000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES                                                  = 1000161001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES                                                = 1000161002,
-       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO                                = 1000161003,
-       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT                               = 1000161004,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES                                              = 1000199000,
-       VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE                                                             = 1000199001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES                                                  = 1000221000,
-       VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO                                                                               = 1000246000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES                                              = 1000130000,
-       VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO                                                                    = 1000130001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES                                                  = 1000211000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES                                                = 1000108000,
-       VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO                                                                   = 1000108001,
-       VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO                                                                             = 1000108002,
-       VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO                                                                             = 1000108003,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES                               = 1000253000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES                               = 1000175000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES                               = 1000241000,
-       VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT                                                                   = 1000241001,
-       VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT                                                                 = 1000241002,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES                                                             = 1000261000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES                                                   = 1000207000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES                                                 = 1000207001,
-       VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO                                                                                    = 1000207002,
-       VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO                                                                                = 1000207003,
-       VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO                                                                                                   = 1000207004,
-       VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO                                                                                                 = 1000207005,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES                                                = 1000257000,
-       VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO                                                                                    = 1000244001,
-       VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO                                                             = 1000257002,
-       VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO                                                   = 1000257003,
-       VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO                                                             = 1000257004,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES                                                                   = 53,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES                                                                 = 54,
-       VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO                                                                = 1000192000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES                                  = 1000215000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES                                                                               = 1000245000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES                   = 1000276000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES                                                                 = 1000295000,
-       VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO                                                                               = 1000295001,
-       VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO                                                                                 = 1000295002,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES                              = 1000297000,
-       VK_STRUCTURE_TYPE_MEMORY_BARRIER_2                                                                                                              = 1000314000,
-       VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2                                                                                               = 1000314001,
-       VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2                                                                                                = 1000314002,
-       VK_STRUCTURE_TYPE_DEPENDENCY_INFO                                                                                                               = 1000314003,
-       VK_STRUCTURE_TYPE_SUBMIT_INFO_2                                                                                                                 = 1000314004,
-       VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO                                                                                                 = 1000314005,
-       VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO                                                                                    = 1000314006,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES                                                    = 1000314007,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES                             = 1000325000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES                                                             = 1000335000,
-       VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2                                                                                                    = 1000337000,
-       VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2                                                                                                             = 1000337001,
-       VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2                                                                                   = 1000337002,
-       VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2                                                                                   = 1000337003,
-       VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2                                                                                                             = 1000337004,
-       VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2                                                                                                  = 1000337005,
-       VK_STRUCTURE_TYPE_BUFFER_COPY_2                                                                                                                 = 1000337006,
-       VK_STRUCTURE_TYPE_IMAGE_COPY_2                                                                                                                  = 1000337007,
-       VK_STRUCTURE_TYPE_IMAGE_BLIT_2                                                                                                                  = 1000337008,
-       VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2                                                                                                   = 1000337009,
-       VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2                                                                                                               = 1000337010,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES                                              = 1000225000,
-       VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO                              = 1000225001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES                                                = 1000225002,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES                                                 = 1000138000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES                                               = 1000138001,
-       VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK                                                             = 1000138002,
-       VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO                                              = 1000138003,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES                                 = 1000066000,
-       VK_STRUCTURE_TYPE_RENDERING_INFO                                                                                                                = 1000044000,
-       VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO                                                                                             = 1000044001,
-       VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO                                                                                = 1000044002,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES                                                    = 1000044003,
-       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO                                                             = 1000044004,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES                                   = 1000280000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES                                 = 1000280001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES                                             = 1000281001,
-       VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3                                                                                                   = 1000360000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES                                                                = 1000413000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES                                                              = 1000413001,
-       VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS                                                                             = 1000413002,
-       VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS                                                                              = 1000413003,
-       VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR                                                                                             = 1000001000,
-       VK_STRUCTURE_TYPE_PRESENT_INFO_KHR                                                                                                              = 1000001001,
-       VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR                                                                 = 1000060007,
-       VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR                                                                               = 1000060008,
-       VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR                                                                  = 1000060009,
-       VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR                                                                                   = 1000060010,
-       VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR                                                                                 = 1000060011,
-       VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR                                                                = 1000060012,
-       VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR                                                                                  = 1000002000,
-       VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR                                                                               = 1000002001,
-       VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR                                                                                              = 1000003000,
-       VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR                                                                                  = 1000004000,
-       VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR                                                                                   = 1000005000,
-       VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR                                                                               = 1000006000,
-       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_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_VIDEO_PROFILE_KHR                                                                                                             = 1000023000,
-       VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR                                                                                                = 1000023001,
-       VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR                                                                                    = 1000023002,
-       VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR                                                                               = 1000023003,
-       VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR                                                                                                 = 1000023004,
-       VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR                                                                                 = 1000023005,
-       VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR                                                              = 1000023006,
-       VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR                                                              = 1000023007,
-       VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR                                                                                   = 1000023008,
-       VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR                                                                                             = 1000023009,
-       VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR                                                                                 = 1000023010,
-       VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR                                                                                              = 1000023011,
-       VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR                                                                   = 1000023012,
-       VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR                                                                                                    = 1000023013,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR                                                                 = 1000023014,
-       VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR                                                                                   = 1000023015,
-       VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR                                             = 1000023016,
-       VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR                                                                                                 = 1000024000,
-       VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR                                                                                 = 1000024001,
-       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_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT                                               = 1000028000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT                                             = 1000028001,
-       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT                                   = 1000028002,
-       VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX                                                                                             = 1000029000,
-       VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX                                                                                   = 1000029001,
-       VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX                                                                                                    = 1000029002,
-       VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX                                                                                    = 1000030000,
-       VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX                                                                             = 1000030001,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT                                                                    = 1000038000,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT                                  = 1000038001,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT                                             = 1000038002,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT                                                                  = 1000038003,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT                                                                   = 1000038004,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT                                                                              = 1000038005,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT                                                 = 1000038006,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT                                                                                 = 1000038007,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT                                                               = 1000038008,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT                                                 = 1000038009,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_EXT                                                                 = 1000038010,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT                                                                    = 1000039000,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT                                  = 1000039001,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT                                             = 1000039002,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT                                                                  = 1000039003,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT                                                                   = 1000039004,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_EXT                                                              = 1000039005,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT                                                 = 1000039006,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT                                                                                 = 1000039007,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT                                                                 = 1000039008,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT                                                               = 1000039009,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT                                                 = 1000039010,
-       VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT                                                                    = 1000040000,
-       VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT                                                                    = 1000040001,
-       VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT                                                                                             = 1000040002,
-       VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT                                                                                 = 1000040003,
-       VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT                                  = 1000040004,
-       VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT                                             = 1000040005,
-       VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT                                                                   = 1000040006,
-       VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD                                                              = 1000041000,
-       VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR                                   = 1000044006,
-       VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT                                    = 1000044007,
-       VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD                                                                              = 1000044008,
-       VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX                                                                = 1000044009,
-       VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP                                                             = 1000049000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV                                              = 1000050000,
-       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_VALIDATION_FLAGS_EXT                                                                                                  = 1000061000,
-       VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN                                                                                             = 1000062000,
-       VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT                                                                               = 1000067000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT                                                              = 1000067001,
-       VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT                                                                   = 1000068000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT                                              = 1000068001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT                                    = 1000068002,
-       VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR                                                                   = 1000073000,
-       VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR                                                                   = 1000073001,
-       VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR                                                                    = 1000073002,
-       VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR                                                                              = 1000073003,
-       VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR                                                                                             = 1000074000,
-       VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR                                                                                              = 1000074001,
-       VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR                                                                                                = 1000074002,
-       VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR                                                    = 1000075000,
-       VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR                                                                = 1000078000,
-       VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR                                                                = 1000078001,
-       VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR                                                                                   = 1000078002,
-       VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR                                                                   = 1000078003,
-       VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR                                                                                  = 1000079000,
-       VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR                                                                                             = 1000079001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR                                                = 1000080000,
-       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT                             = 1000081000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT                                    = 1000081001,
-       VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT                                                                  = 1000081002,
-       VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR                                                                                                   = 1000084000,
-       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_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_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT                             = 1000101000,
-       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT                             = 1000101001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT                                                = 1000102000,
-       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT                               = 1000102001,
-       VK_STRUCTURE_TYPE_HDR_METADATA_EXT                                                                                                              = 1000105000,
-       VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR                                                               = 1000111000,
-       VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR                                                                    = 1000114000,
-       VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR                                                                    = 1000114001,
-       VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR                                                                               = 1000114002,
-       VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR                                                                                              = 1000115000,
-       VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR                                                                                                 = 1000115001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR                                                = 1000116000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR                                              = 1000116001,
-       VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR                                                                = 1000116002,
-       VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR                                                                             = 1000116003,
-       VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR                                                                               = 1000116004,
-       VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR                                                                                               = 1000116005,
-       VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR                                                                   = 1000116006,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR                                                                    = 1000119000,
-       VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR                                                                                    = 1000119001,
-       VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR                                                                                                  = 1000119002,
-       VK_STRUCTURE_TYPE_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_DEBUG_UTILS_OBJECT_NAME_INFO_EXT                                                                              = 1000128000,
-       VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT                                                                               = 1000128001,
-       VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT                                                                                                 = 1000128002,
-       VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT                                                               = 1000128003,
-       VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT                                                                 = 1000128004,
-       VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID                                                                 = 1000129000,
-       VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID                                                    = 1000129001,
-       VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID                                             = 1000129002,
-       VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID                                                   = 1000129003,
-       VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID                                               = 1000129004,
-       VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID                                                                                               = 1000129005,
-       VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID                                   = 1000129006,
-       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_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_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR                                               = 1000150007,
-       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR                                                = 1000150000,
-       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR                                                = 1000150002,
-       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR                                                = 1000150003,
-       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR                                    = 1000150004,
-       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR                                    = 1000150005,
-       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR                                                                   = 1000150006,
-       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR                                                               = 1000150009,
-       VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR                                                                  = 1000150010,
-       VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR                                                = 1000150011,
-       VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR                                                = 1000150012,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR                                   = 1000150013,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR                                 = 1000150014,
-       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR                                                                = 1000150017,
-       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR                                                   = 1000150020,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR                                             = 1000347000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR                                   = 1000347001,
-       VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR                                                                  = 1000150015,
-       VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR                                                              = 1000150016,
-       VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR                                                = 1000150018,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR                                                                = 1000348013,
-       VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV                                             = 1000152000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV                                                = 1000154000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV                                              = 1000154001,
-       VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT                                                               = 1000158000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT                                    = 1000158002,
-       VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT                                                = 1000158003,
-       VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT                                    = 1000158004,
-       VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT                                                              = 1000158005,
-       VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT                                                             = 1000158006,
-       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_PORTABILITY_SUBSET_FEATURES_KHR                                               = 1000163000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR                                             = 1000163001,
-       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV                             = 1000164000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV                                                = 1000164001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV                                              = 1000164002,
-       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV                    = 1000164005,
-       VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV                                                                   = 1000165000,
-       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV                                                                 = 1000165001,
-       VK_STRUCTURE_TYPE_GEOMETRY_NV                                                                                                                   = 1000165003,
-       VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV                                                                                                 = 1000165004,
-       VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV                                                                                                              = 1000165005,
-       VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV                                                    = 1000165006,
-       VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV                                                = 1000165007,
-       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV                                    = 1000165008,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV                                                             = 1000165009,
-       VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV                                                               = 1000165011,
-       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV                                                                                = 1000165012,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV                              = 1000166000,
-       VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV                    = 1000166001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT                                              = 1000170000,
-       VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT                                   = 1000170001,
-       VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT                                                                   = 1000178000,
-       VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT                                                                    = 1000178001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT                                   = 1000178002,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR                                                             = 1000181000,
-       VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD                                                             = 1000183000,
-       VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT                                                                                 = 1000184000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD                                                    = 1000185000,
-       VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT                                                                    = 1000187000,
-       VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT                                  = 1000187001,
-       VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT                                             = 1000187002,
-       VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT                                                                                 = 1000187003,
-       VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT                                                                    = 1000187004,
-       VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT                                                                   = 1000187005,
-       VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR                                                  = 1000174000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR                                    = 1000388000,
-       VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR                                                   = 1000388001,
-       VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD                                                  = 1000189000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT                               = 1000190000,
-       VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT                                   = 1000190001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT                                 = 1000190002,
-       VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP                                                                                               = 1000191000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV                                = 1000201000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV                                                               = 1000202000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV                                                             = 1000202001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV                                    = 1000204000,
-       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV                              = 1000205000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV                                                 = 1000205002,
-       VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV                                                                                                    = 1000206000,
-       VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV                                                                 = 1000206001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL                             = 1000209000,
-       VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL                                                = 1000210000,
-       VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL                                                                 = 1000210001,
-       VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL                                                                                 = 1000210002,
-       VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL                                                                  = 1000210003,
-       VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL                                                                               = 1000210004,
-       VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL                                                  = 1000210005,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT                                                   = 1000212000,
-       VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD                                                   = 1000213000,
-       VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD                                                  = 1000213001,
-       VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA                                                                 = 1000214000,
-       VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT                                                                                 = 1000217000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT                                             = 1000218000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT                                   = 1000218001,
-       VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT                                              = 1000218002,
-       VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR                                                             = 1000226000,
-       VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR                                  = 1000226001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR                                  = 1000226002,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR                                    = 1000226003,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR                                                             = 1000226004,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD                                                  = 1000227000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD                                                  = 1000229000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT                                = 1000234000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT                                                  = 1000237000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT                                                  = 1000238000,
-       VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT                                                                             = 1000238001,
-       VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR                                                                    = 1000239000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV               = 1000240000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT                                    = 1000244000,
-       VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT                                                                 = 1000244002,
-       VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT                                                                                               = 1000247000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR                                                             = 1000248000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV                                                = 1000249000,
-       VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV                                                                              = 1000249001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV                                              = 1000249002,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV                                   = 1000250000,
-       VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV                                              = 1000250001,
-       VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV                                                              = 1000250002,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT                                = 1000251000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT                                               = 1000252000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT                                                 = 1000254000,
-       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT                 = 1000254001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT                                               = 1000254002,
-       VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT                                                                = 1000255000,
-       VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT                                                = 1000255002,
-       VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT                                                  = 1000255001,
-       VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT                                                                              = 1000256000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT                                               = 1000259000,
-       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT                                             = 1000259001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT                                             = 1000259002,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT                                              = 1000260000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT                                                 = 1000265000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT                                   = 1000267000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR                   = 1000269000,
-       VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR                                                                                                             = 1000269001,
-       VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR                                                                    = 1000269002,
-       VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR                                                                                  = 1000269003,
-       VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR                                                                             = 1000269004,
-       VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR                                               = 1000269005,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT                                    = 1000273000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV                               = 1000277000,
-       VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV                                                                  = 1000277001,
-       VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV                                                = 1000277002,
-       VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV                                                                             = 1000277003,
-       VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV                                                               = 1000277004,
-       VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV                                                                                    = 1000277005,
-       VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV                                                = 1000277006,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV                                 = 1000277007,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV                                = 1000278000,
-       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV                                   = 1000278001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT                                   = 1000281000,
-       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM                    = 1000282000,
-       VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM                                                                 = 1000282001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT                                             = 1000284000,
-       VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT                                                   = 1000284001,
-       VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT                                                                = 1000284002,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT                                                             = 1000286000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT                                                   = 1000286001,
-       VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT                                                   = 1000287000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT                                    = 1000287001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT                                              = 1000287002,
-       VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR                                                                              = 1000290000,
-       VK_STRUCTURE_TYPE_PRESENT_ID_KHR                                                                                                                = 1000294000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR                                                               = 1000294001,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR                                                                                                 = 1000299000,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR                                                                    = 1000299001,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR                                                              = 1000299002,
-       VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR                                                                                 = 1000299003,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV                                                = 1000300000,
-       VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV                                                              = 1000300001,
-       VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT                                                                   = 1000311000,
-       VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT                                                                                 = 1000311001,
-       VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT                                                                                  = 1000311002,
-       VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT                                                                   = 1000311003,
-       VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT                                                                                  = 1000311004,
-       VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT                                                                                  = 1000311005,
-       VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT                                                                                 = 1000311006,
-       VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT                                                                                 = 1000311007,
-       VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT                                                                              = 1000311008,
-       VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT                                                                              = 1000311009,
-       VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT                                                                    = 1000311010,
-       VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT                                                                    = 1000311011,
-       VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV                                                               = 1000314008,
-       VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV                                                                                                  = 1000314009,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT                                = 1000320000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT                              = 1000320001,
-       VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT                                                             = 1000320002,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD             = 1000321000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR                              = 1000203000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR                    = 1000322000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR             = 1000323000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV                             = 1000326000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV                               = 1000326001,
-       VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV                              = 1000326002,
-       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV                              = 1000327000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV                                   = 1000327001,
-       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV                                                                 = 1000327002,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT                                = 1000330000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT                                   = 1000332000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT                                 = 1000332001,
-       VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM                                                                              = 1000333000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR                 = 1000336000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT                                = 1000338000,
-       VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT                                                                                 = 1000338001,
-       VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT                                                                                              = 1000338002,
-       VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT                                                                                               = 1000338003,
-       VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT                                                                              = 1000338004,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT                                                             = 1000340000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM    = 1000342000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT                                                 = 1000344000,
-       VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT                                                                              = 1000346000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE                                = 1000351000,
-       VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE                                                             = 1000351002,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT                               = 1000352000,
-       VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT                                                                = 1000352001,
-       VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT                                                              = 1000352002,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT                                                                    = 1000353000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT                                               = 1000355000,
-       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT                                  = 1000355001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT                  = 1000356000,
-       VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA                                                              = 1000364000,
-       VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA                                                               = 1000364001,
-       VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA                                                                 = 1000364002,
-       VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA                                                   = 1000365000,
-       VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA                                                              = 1000365001,
-       VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA                                                                 = 1000366000,
-       VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA                                                               = 1000366001,
-       VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA                                                   = 1000366002,
-       VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA                                                                  = 1000366003,
-       VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA                                                                               = 1000366004,
-       VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA                                                  = 1000366005,
-       VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA                                                                                = 1000366006,
-       VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA                                                                 = 1000366007,
-       VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA                                                                                    = 1000366008,
-       VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA                                                    = 1000366009,
-       VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI                                                   = 1000369000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI                                               = 1000369001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI                                             = 1000369002,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI                                               = 1000370000,
-       VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV                                                                             = 1000371000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV                                              = 1000371001,
-       VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT                                                                    = 1000372000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT                                              = 1000372001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT    = 1000376000,
-       VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT                                                                 = 1000376001,
-       VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT                                                = 1000376002,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT                                 = 1000377000,
-       VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX                                                                                = 1000378000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT                                               = 1000381000,
-       VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT                                                                  = 1000381001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT                               = 1000382000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR                                = 1000386000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT                                               = 1000391000,
-       VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT                                                                    = 1000391001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT                                                               = 1000392000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT                                                             = 1000392001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT                                              = 1000393000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT                                             = 1000411000,
-       VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT                                = 1000411001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT                             = 1000412000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE                    = 1000420000,
-       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE                                                                = 1000420001,
-       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE                                                 = 1000420002,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT                                    = 1000422000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM                             = 1000425000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM                   = 1000425001,
-       VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM                                             = 1000425002,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV                                   = 1000430000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT              = 1000437000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM                                                = 1000440000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM                                              = 1000440001,
-       VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM                                                             = 1000440002,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT                                   = 1000458000,
-       VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT                                                                              = 1000458001,
-       VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT                                                 = 1000458002,
-       VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT                                                  = 1000458003,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT                                 = 1000462000,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT                               = 1000462001,
-       VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT                               = 1000462002,
-       VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT                                                                                  = 1000462003,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM                                                 = 1000484000,
-       VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM                                                                                                  = 1000484001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES                                                             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES                                                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
-       VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT                                                                                  = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
-       VK_STRUCTURE_TYPE_RENDERING_INFO_KHR                                                                                                    = VK_STRUCTURE_TYPE_RENDERING_INFO,
-       VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR                                                                                 = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
-       VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR                                                                    = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR                                                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
-       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR                                                 = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
-       VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV                                                                               = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
-       VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR                                                                 = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR                                                                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR                                                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR                                                                                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR                                                                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
-       VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR                                                                                               = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
-       VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR                                                                                 = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR                                                               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
-       VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR                                                                                 = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR                                                               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
-       VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR                                                                  = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR                                                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
-       VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR                                                                                = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
-       VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR                                                               = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
-       VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR                                                    = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
-       VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR                                                                                  = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
-       VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR                                                                             = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
-       VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR                                                              = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
-       VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR                                                               = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT                             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR                                                                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
-       VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR                                                                   = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR                                                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
-       VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR                                                                  = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR                                                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
-       VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR                                                                                = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR                                                                             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
-       VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR                                                                = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
-       VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR                                                                 = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
-       VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR                                                                               = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR                                                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
-       VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR                                                                             = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
-       VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR                                                                              = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR                                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR                                                             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR                                                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
-       VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR                                                    = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
-       VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT                                                                                             = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR                                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
-       VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR                                                               = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
-       VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR                                                                 = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
-       VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR                                                                 = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
-       VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR                                                                                  = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
-       VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR                                                                                    = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
-       VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR                                                                                             = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
-       VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR                                                                                              = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
-       VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR                                                                                 = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
-       VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR                                                                                                = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
-       VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR                                                                                                  = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR                                                               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
-       VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR                                                                                 = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
-       VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR                                                                                  = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR                                                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
-       VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR                                   = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
-       VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR                                                                              = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
-       VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR                             = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR                                                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR                                                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
-       VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR                                                                             = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
-       VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR                                                                    = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT                                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
-       VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT                                                                = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT                                             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT                                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
-       VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT                                                 = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
-       VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT                                  = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
-       VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR                                                                 = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
-       VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR                                                                  = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
-       VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR                                                   = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
-       VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR                                                                                             = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
-       VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR                                                                = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
-       VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR                                                                             = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
-       VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR                                                              = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
-       VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR                                                                             = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
-       VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR                                                                              = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
-       VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR                                                              = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR                                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
-       VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR                                  = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
-       VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR                                                                                   = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
-       VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR                                                                                    = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
-       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT                                   = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT                                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT                                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
-       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT                    = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
-       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT                   = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR                                                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
-       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR                                                                             = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
-       VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT                                                  = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR                                                             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR                                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
-       VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT                                                    = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR                                                                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR                                                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR                                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
-       VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR                                                 = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV                               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR                                               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR                                             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
-       VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR                                                                                = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
-       VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR                                                                    = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
-       VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR                                                                                               = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
-       VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR                                                                                             = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
-       VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL                                                                                  = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR                                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT                                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT                                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
-       VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT                  = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT                                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
-       VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR                                                               = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
-       VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR                                                             = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT                                                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
-       VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT                                                                                = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT                                                                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,
-       VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT                                                                   = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR                                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
-       VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR                                                                                = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
-       VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR                                                 = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
-       VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR                                               = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
-       VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR                                                 = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT                                                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR                               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR                             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT                                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT                                                             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
-       VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT                                                                   = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,
-       VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT                                                                             = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
-       VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR                                                                                                  = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2,
-       VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR                                                                                   = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,
-       VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR                                                                                    = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
-       VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR                                                                                                   = VK_STRUCTURE_TYPE_DEPENDENCY_INFO,
-       VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR                                                                                                             = VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
-       VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR                                                                                             = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,
-       VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR                                                                                = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR                                                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT                                                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
-       VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR                                                                                                = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2,
-       VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR                                                                                                 = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2,
-       VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR                                                                               = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,
-       VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR                                                                               = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,
-       VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR                                                                                                 = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,
-       VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR                                                                                              = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,
-       VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR                                                                                                             = VK_STRUCTURE_TYPE_BUFFER_COPY_2,
-       VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR                                                                                                              = VK_STRUCTURE_TYPE_IMAGE_COPY_2,
-       VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR                                                                                                              = VK_STRUCTURE_TYPE_IMAGE_BLIT_2,
-       VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR                                                                                               = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,
-       VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR                                                                                                   = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
-       VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR                                                                                               = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3,
-       VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT                                                                                                             = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT                                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR,
-       VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT                                                   = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR                                                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR                                                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
-       VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR                                                                 = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
-       VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR                                                                  = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
-       VK_STRUCTURE_TYPE_MAX_ENUM                                                                                                                              = 0x7FFFFFFF,
-};
-
-enum VkPipelineCacheHeaderVersion
-{
-       VK_PIPELINE_CACHE_HEADER_VERSION_ONE            = 1,
-       VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM       = 0x7FFFFFFF,
-};
-
-enum VkImageLayout
-{
-       VK_IMAGE_LAYOUT_UNDEFINED                                                                               = 0,
-       VK_IMAGE_LAYOUT_GENERAL                                                                                 = 1,
-       VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL                                                = 2,
-       VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL                                = 3,
-       VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL                                 = 4,
-       VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL                                                = 5,
-       VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL                                                    = 6,
-       VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL                                                    = 7,
-       VK_IMAGE_LAYOUT_PREINITIALIZED                                                                  = 8,
-       VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL              = 1000117000,
-       VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL              = 1000117001,
-       VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL                                                = 1000241000,
-       VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL                                                 = 1000241001,
-       VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL                                              = 1000241002,
-       VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL                                               = 1000241003,
-       VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL                                                               = 1000314000,
-       VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL                                                              = 1000314001,
-       VK_IMAGE_LAYOUT_PRESENT_SRC_KHR                                                                 = 1000001002,
-       VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR                                                    = 1000024000,
-       VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR                                                    = 1000024001,
-       VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR                                                    = 1000024002,
-       VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR                                                              = 1000111000,
-       VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT                                = 1000218000,
-       VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR    = 1000164003,
-       VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR                                                    = 1000299000,
-       VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR                                                    = 1000299001,
-       VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR                                                    = 1000299002,
-       VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR  = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
-       VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR  = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
-       VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV                                                 = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
-       VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR                                    = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
-       VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR                                             = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
-       VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR                                  = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
-       VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR                                   = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
-       VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR                                                   = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
-       VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR                                                  = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
-       VK_IMAGE_LAYOUT_MAX_ENUM                                                                                = 0x7FFFFFFF,
-};
-
-enum VkObjectType
-{
-       VK_OBJECT_TYPE_UNKNOWN                                                  = 0,
-       VK_OBJECT_TYPE_INSTANCE                                                 = 1,
-       VK_OBJECT_TYPE_PHYSICAL_DEVICE                                  = 2,
-       VK_OBJECT_TYPE_DEVICE                                                   = 3,
-       VK_OBJECT_TYPE_QUEUE                                                    = 4,
-       VK_OBJECT_TYPE_SEMAPHORE                                                = 5,
-       VK_OBJECT_TYPE_COMMAND_BUFFER                                   = 6,
-       VK_OBJECT_TYPE_FENCE                                                    = 7,
-       VK_OBJECT_TYPE_DEVICE_MEMORY                                    = 8,
-       VK_OBJECT_TYPE_BUFFER                                                   = 9,
-       VK_OBJECT_TYPE_IMAGE                                                    = 10,
-       VK_OBJECT_TYPE_EVENT                                                    = 11,
-       VK_OBJECT_TYPE_QUERY_POOL                                               = 12,
-       VK_OBJECT_TYPE_BUFFER_VIEW                                              = 13,
-       VK_OBJECT_TYPE_IMAGE_VIEW                                               = 14,
-       VK_OBJECT_TYPE_SHADER_MODULE                                    = 15,
-       VK_OBJECT_TYPE_PIPELINE_CACHE                                   = 16,
-       VK_OBJECT_TYPE_PIPELINE_LAYOUT                                  = 17,
-       VK_OBJECT_TYPE_RENDER_PASS                                              = 18,
-       VK_OBJECT_TYPE_PIPELINE                                                 = 19,
-       VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT                    = 20,
-       VK_OBJECT_TYPE_SAMPLER                                                  = 21,
-       VK_OBJECT_TYPE_DESCRIPTOR_POOL                                  = 22,
-       VK_OBJECT_TYPE_DESCRIPTOR_SET                                   = 23,
-       VK_OBJECT_TYPE_FRAMEBUFFER                                              = 24,
-       VK_OBJECT_TYPE_COMMAND_POOL                                             = 25,
-       VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION                 = 1000156000,
-       VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE               = 1000085000,
-       VK_OBJECT_TYPE_PRIVATE_DATA_SLOT                                = 1000295000,
-       VK_OBJECT_TYPE_SURFACE_KHR                                              = 1000000000,
-       VK_OBJECT_TYPE_SWAPCHAIN_KHR                                    = 1000001000,
-       VK_OBJECT_TYPE_DISPLAY_KHR                                              = 1000002000,
-       VK_OBJECT_TYPE_DISPLAY_MODE_KHR                                 = 1000002001,
-       VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT                = 1000011000,
-       VK_OBJECT_TYPE_VIDEO_SESSION_KHR                                = 1000023000,
-       VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR             = 1000023001,
-       VK_OBJECT_TYPE_CU_MODULE_NVX                                    = 1000029000,
-       VK_OBJECT_TYPE_CU_FUNCTION_NVX                                  = 1000029001,
-       VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT                = 1000128000,
-       VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR               = 1000150000,
-       VK_OBJECT_TYPE_VALIDATION_CACHE_EXT                             = 1000160000,
-       VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV                = 1000165000,
-       VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL  = 1000210000,
-       VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR                   = 1000268000,
-       VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV              = 1000277000,
-       VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA                = 1000366000,
-       VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR   = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
-       VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR             = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
-       VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT                    = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
-       VK_OBJECT_TYPE_MAX_ENUM                                                 = 0x7FFFFFFF,
-};
-
-enum VkVendorId
-{
-       VK_VENDOR_ID_VIV                = 0x10001,
-       VK_VENDOR_ID_VSI                = 0x10002,
-       VK_VENDOR_ID_KAZAN              = 0x10003,
-       VK_VENDOR_ID_CODEPLAY   = 0x10004,
-       VK_VENDOR_ID_MESA               = 0x10005,
-       VK_VENDOR_ID_POCL               = 0x10006,
-       VK_VENDOR_ID_MAX_ENUM   = 0x7FFFFFFF,
-};
-
-enum VkSystemAllocationScope
-{
-       VK_SYSTEM_ALLOCATION_SCOPE_COMMAND      = 0,
-       VK_SYSTEM_ALLOCATION_SCOPE_OBJECT       = 1,
-       VK_SYSTEM_ALLOCATION_SCOPE_CACHE        = 2,
-       VK_SYSTEM_ALLOCATION_SCOPE_DEVICE       = 3,
-       VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE     = 4,
-       VK_SYSTEM_ALLOCATION_SCOPE_LAST,
-       VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM     = 0x7FFFFFFF,
-};
-
-enum VkInternalAllocationType
-{
-       VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE  = 0,
-       VK_INTERNAL_ALLOCATION_TYPE_LAST,
-       VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM    = 0x7FFFFFFF,
-};
-
-enum VkFormat
-{
-       VK_FORMAT_UNDEFINED                                                                                     = 0,
-       VK_FORMAT_R4G4_UNORM_PACK8                                                                      = 1,
-       VK_FORMAT_R4G4B4A4_UNORM_PACK16                                                         = 2,
-       VK_FORMAT_B4G4R4A4_UNORM_PACK16                                                         = 3,
-       VK_FORMAT_R5G6B5_UNORM_PACK16                                                           = 4,
-       VK_FORMAT_B5G6R5_UNORM_PACK16                                                           = 5,
-       VK_FORMAT_R5G5B5A1_UNORM_PACK16                                                         = 6,
-       VK_FORMAT_B5G5R5A1_UNORM_PACK16                                                         = 7,
-       VK_FORMAT_A1R5G5B5_UNORM_PACK16                                                         = 8,
-       VK_FORMAT_R8_UNORM                                                                                      = 9,
-       VK_FORMAT_R8_SNORM                                                                                      = 10,
-       VK_FORMAT_R8_USCALED                                                                            = 11,
-       VK_FORMAT_R8_SSCALED                                                                            = 12,
-       VK_FORMAT_R8_UINT                                                                                       = 13,
-       VK_FORMAT_R8_SINT                                                                                       = 14,
-       VK_FORMAT_R8_SRGB                                                                                       = 15,
-       VK_FORMAT_R8G8_UNORM                                                                            = 16,
-       VK_FORMAT_R8G8_SNORM                                                                            = 17,
-       VK_FORMAT_R8G8_USCALED                                                                          = 18,
-       VK_FORMAT_R8G8_SSCALED                                                                          = 19,
-       VK_FORMAT_R8G8_UINT                                                                                     = 20,
-       VK_FORMAT_R8G8_SINT                                                                                     = 21,
-       VK_FORMAT_R8G8_SRGB                                                                                     = 22,
-       VK_FORMAT_R8G8B8_UNORM                                                                          = 23,
-       VK_FORMAT_R8G8B8_SNORM                                                                          = 24,
-       VK_FORMAT_R8G8B8_USCALED                                                                        = 25,
-       VK_FORMAT_R8G8B8_SSCALED                                                                        = 26,
-       VK_FORMAT_R8G8B8_UINT                                                                           = 27,
-       VK_FORMAT_R8G8B8_SINT                                                                           = 28,
-       VK_FORMAT_R8G8B8_SRGB                                                                           = 29,
-       VK_FORMAT_B8G8R8_UNORM                                                                          = 30,
-       VK_FORMAT_B8G8R8_SNORM                                                                          = 31,
-       VK_FORMAT_B8G8R8_USCALED                                                                        = 32,
-       VK_FORMAT_B8G8R8_SSCALED                                                                        = 33,
-       VK_FORMAT_B8G8R8_UINT                                                                           = 34,
-       VK_FORMAT_B8G8R8_SINT                                                                           = 35,
-       VK_FORMAT_B8G8R8_SRGB                                                                           = 36,
-       VK_FORMAT_R8G8B8A8_UNORM                                                                        = 37,
-       VK_FORMAT_R8G8B8A8_SNORM                                                                        = 38,
-       VK_FORMAT_R8G8B8A8_USCALED                                                                      = 39,
-       VK_FORMAT_R8G8B8A8_SSCALED                                                                      = 40,
-       VK_FORMAT_R8G8B8A8_UINT                                                                         = 41,
-       VK_FORMAT_R8G8B8A8_SINT                                                                         = 42,
-       VK_FORMAT_R8G8B8A8_SRGB                                                                         = 43,
-       VK_FORMAT_B8G8R8A8_UNORM                                                                        = 44,
-       VK_FORMAT_B8G8R8A8_SNORM                                                                        = 45,
-       VK_FORMAT_B8G8R8A8_USCALED                                                                      = 46,
-       VK_FORMAT_B8G8R8A8_SSCALED                                                                      = 47,
-       VK_FORMAT_B8G8R8A8_UINT                                                                         = 48,
-       VK_FORMAT_B8G8R8A8_SINT                                                                         = 49,
-       VK_FORMAT_B8G8R8A8_SRGB                                                                         = 50,
-       VK_FORMAT_A8B8G8R8_UNORM_PACK32                                                         = 51,
-       VK_FORMAT_A8B8G8R8_SNORM_PACK32                                                         = 52,
-       VK_FORMAT_A8B8G8R8_USCALED_PACK32                                                       = 53,
-       VK_FORMAT_A8B8G8R8_SSCALED_PACK32                                                       = 54,
-       VK_FORMAT_A8B8G8R8_UINT_PACK32                                                          = 55,
-       VK_FORMAT_A8B8G8R8_SINT_PACK32                                                          = 56,
-       VK_FORMAT_A8B8G8R8_SRGB_PACK32                                                          = 57,
-       VK_FORMAT_A2R10G10B10_UNORM_PACK32                                                      = 58,
-       VK_FORMAT_A2R10G10B10_SNORM_PACK32                                                      = 59,
-       VK_FORMAT_A2R10G10B10_USCALED_PACK32                                            = 60,
-       VK_FORMAT_A2R10G10B10_SSCALED_PACK32                                            = 61,
-       VK_FORMAT_A2R10G10B10_UINT_PACK32                                                       = 62,
-       VK_FORMAT_A2R10G10B10_SINT_PACK32                                                       = 63,
-       VK_FORMAT_A2B10G10R10_UNORM_PACK32                                                      = 64,
-       VK_FORMAT_A2B10G10R10_SNORM_PACK32                                                      = 65,
-       VK_FORMAT_A2B10G10R10_USCALED_PACK32                                            = 66,
-       VK_FORMAT_A2B10G10R10_SSCALED_PACK32                                            = 67,
-       VK_FORMAT_A2B10G10R10_UINT_PACK32                                                       = 68,
-       VK_FORMAT_A2B10G10R10_SINT_PACK32                                                       = 69,
-       VK_FORMAT_R16_UNORM                                                                                     = 70,
-       VK_FORMAT_R16_SNORM                                                                                     = 71,
-       VK_FORMAT_R16_USCALED                                                                           = 72,
-       VK_FORMAT_R16_SSCALED                                                                           = 73,
-       VK_FORMAT_R16_UINT                                                                                      = 74,
-       VK_FORMAT_R16_SINT                                                                                      = 75,
-       VK_FORMAT_R16_SFLOAT                                                                            = 76,
-       VK_FORMAT_R16G16_UNORM                                                                          = 77,
-       VK_FORMAT_R16G16_SNORM                                                                          = 78,
-       VK_FORMAT_R16G16_USCALED                                                                        = 79,
-       VK_FORMAT_R16G16_SSCALED                                                                        = 80,
-       VK_FORMAT_R16G16_UINT                                                                           = 81,
-       VK_FORMAT_R16G16_SINT                                                                           = 82,
-       VK_FORMAT_R16G16_SFLOAT                                                                         = 83,
-       VK_FORMAT_R16G16B16_UNORM                                                                       = 84,
-       VK_FORMAT_R16G16B16_SNORM                                                                       = 85,
-       VK_FORMAT_R16G16B16_USCALED                                                                     = 86,
-       VK_FORMAT_R16G16B16_SSCALED                                                                     = 87,
-       VK_FORMAT_R16G16B16_UINT                                                                        = 88,
-       VK_FORMAT_R16G16B16_SINT                                                                        = 89,
-       VK_FORMAT_R16G16B16_SFLOAT                                                                      = 90,
-       VK_FORMAT_R16G16B16A16_UNORM                                                            = 91,
-       VK_FORMAT_R16G16B16A16_SNORM                                                            = 92,
-       VK_FORMAT_R16G16B16A16_USCALED                                                          = 93,
-       VK_FORMAT_R16G16B16A16_SSCALED                                                          = 94,
-       VK_FORMAT_R16G16B16A16_UINT                                                                     = 95,
-       VK_FORMAT_R16G16B16A16_SINT                                                                     = 96,
-       VK_FORMAT_R16G16B16A16_SFLOAT                                                           = 97,
-       VK_FORMAT_R32_UINT                                                                                      = 98,
-       VK_FORMAT_R32_SINT                                                                                      = 99,
-       VK_FORMAT_R32_SFLOAT                                                                            = 100,
-       VK_FORMAT_R32G32_UINT                                                                           = 101,
-       VK_FORMAT_R32G32_SINT                                                                           = 102,
-       VK_FORMAT_R32G32_SFLOAT                                                                         = 103,
-       VK_FORMAT_R32G32B32_UINT                                                                        = 104,
-       VK_FORMAT_R32G32B32_SINT                                                                        = 105,
-       VK_FORMAT_R32G32B32_SFLOAT                                                                      = 106,
-       VK_FORMAT_R32G32B32A32_UINT                                                                     = 107,
-       VK_FORMAT_R32G32B32A32_SINT                                                                     = 108,
-       VK_FORMAT_R32G32B32A32_SFLOAT                                                           = 109,
-       VK_FORMAT_R64_UINT                                                                                      = 110,
-       VK_FORMAT_R64_SINT                                                                                      = 111,
-       VK_FORMAT_R64_SFLOAT                                                                            = 112,
-       VK_FORMAT_R64G64_UINT                                                                           = 113,
-       VK_FORMAT_R64G64_SINT                                                                           = 114,
-       VK_FORMAT_R64G64_SFLOAT                                                                         = 115,
-       VK_FORMAT_R64G64B64_UINT                                                                        = 116,
-       VK_FORMAT_R64G64B64_SINT                                                                        = 117,
-       VK_FORMAT_R64G64B64_SFLOAT                                                                      = 118,
-       VK_FORMAT_R64G64B64A64_UINT                                                                     = 119,
-       VK_FORMAT_R64G64B64A64_SINT                                                                     = 120,
-       VK_FORMAT_R64G64B64A64_SFLOAT                                                           = 121,
-       VK_FORMAT_B10G11R11_UFLOAT_PACK32                                                       = 122,
-       VK_FORMAT_E5B9G9R9_UFLOAT_PACK32                                                        = 123,
-       VK_FORMAT_D16_UNORM                                                                                     = 124,
-       VK_FORMAT_X8_D24_UNORM_PACK32                                                           = 125,
-       VK_FORMAT_D32_SFLOAT                                                                            = 126,
-       VK_FORMAT_S8_UINT                                                                                       = 127,
-       VK_FORMAT_D16_UNORM_S8_UINT                                                                     = 128,
-       VK_FORMAT_D24_UNORM_S8_UINT                                                                     = 129,
-       VK_FORMAT_D32_SFLOAT_S8_UINT                                                            = 130,
-       VK_FORMAT_BC1_RGB_UNORM_BLOCK                                                           = 131,
-       VK_FORMAT_BC1_RGB_SRGB_BLOCK                                                            = 132,
-       VK_FORMAT_BC1_RGBA_UNORM_BLOCK                                                          = 133,
-       VK_FORMAT_BC1_RGBA_SRGB_BLOCK                                                           = 134,
-       VK_FORMAT_BC2_UNORM_BLOCK                                                                       = 135,
-       VK_FORMAT_BC2_SRGB_BLOCK                                                                        = 136,
-       VK_FORMAT_BC3_UNORM_BLOCK                                                                       = 137,
-       VK_FORMAT_BC3_SRGB_BLOCK                                                                        = 138,
-       VK_FORMAT_BC4_UNORM_BLOCK                                                                       = 139,
-       VK_FORMAT_BC4_SNORM_BLOCK                                                                       = 140,
-       VK_FORMAT_BC5_UNORM_BLOCK                                                                       = 141,
-       VK_FORMAT_BC5_SNORM_BLOCK                                                                       = 142,
-       VK_FORMAT_BC6H_UFLOAT_BLOCK                                                                     = 143,
-       VK_FORMAT_BC6H_SFLOAT_BLOCK                                                                     = 144,
-       VK_FORMAT_BC7_UNORM_BLOCK                                                                       = 145,
-       VK_FORMAT_BC7_SRGB_BLOCK                                                                        = 146,
-       VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK                                                       = 147,
-       VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK                                                        = 148,
-       VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK                                                     = 149,
-       VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK                                                      = 150,
-       VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK                                                     = 151,
-       VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK                                                      = 152,
-       VK_FORMAT_EAC_R11_UNORM_BLOCK                                                           = 153,
-       VK_FORMAT_EAC_R11_SNORM_BLOCK                                                           = 154,
-       VK_FORMAT_EAC_R11G11_UNORM_BLOCK                                                        = 155,
-       VK_FORMAT_EAC_R11G11_SNORM_BLOCK                                                        = 156,
-       VK_FORMAT_ASTC_4x4_UNORM_BLOCK                                                          = 157,
-       VK_FORMAT_ASTC_4x4_SRGB_BLOCK                                                           = 158,
-       VK_FORMAT_ASTC_5x4_UNORM_BLOCK                                                          = 159,
-       VK_FORMAT_ASTC_5x4_SRGB_BLOCK                                                           = 160,
-       VK_FORMAT_ASTC_5x5_UNORM_BLOCK                                                          = 161,
-       VK_FORMAT_ASTC_5x5_SRGB_BLOCK                                                           = 162,
-       VK_FORMAT_ASTC_6x5_UNORM_BLOCK                                                          = 163,
-       VK_FORMAT_ASTC_6x5_SRGB_BLOCK                                                           = 164,
-       VK_FORMAT_ASTC_6x6_UNORM_BLOCK                                                          = 165,
-       VK_FORMAT_ASTC_6x6_SRGB_BLOCK                                                           = 166,
-       VK_FORMAT_ASTC_8x5_UNORM_BLOCK                                                          = 167,
-       VK_FORMAT_ASTC_8x5_SRGB_BLOCK                                                           = 168,
-       VK_FORMAT_ASTC_8x6_UNORM_BLOCK                                                          = 169,
-       VK_FORMAT_ASTC_8x6_SRGB_BLOCK                                                           = 170,
-       VK_FORMAT_ASTC_8x8_UNORM_BLOCK                                                          = 171,
-       VK_FORMAT_ASTC_8x8_SRGB_BLOCK                                                           = 172,
-       VK_FORMAT_ASTC_10x5_UNORM_BLOCK                                                         = 173,
-       VK_FORMAT_ASTC_10x5_SRGB_BLOCK                                                          = 174,
-       VK_FORMAT_ASTC_10x6_UNORM_BLOCK                                                         = 175,
-       VK_FORMAT_ASTC_10x6_SRGB_BLOCK                                                          = 176,
-       VK_FORMAT_ASTC_10x8_UNORM_BLOCK                                                         = 177,
-       VK_FORMAT_ASTC_10x8_SRGB_BLOCK                                                          = 178,
-       VK_FORMAT_ASTC_10x10_UNORM_BLOCK                                                        = 179,
-       VK_FORMAT_ASTC_10x10_SRGB_BLOCK                                                         = 180,
-       VK_FORMAT_ASTC_12x10_UNORM_BLOCK                                                        = 181,
-       VK_FORMAT_ASTC_12x10_SRGB_BLOCK                                                         = 182,
-       VK_FORMAT_ASTC_12x12_UNORM_BLOCK                                                        = 183,
-       VK_FORMAT_ASTC_12x12_SRGB_BLOCK                                                         = 184,
-       VK_FORMAT_G8B8G8R8_422_UNORM                                                            = 1000156000,
-       VK_FORMAT_B8G8R8G8_422_UNORM                                                            = 1000156001,
-       VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM                                                     = 1000156002,
-       VK_FORMAT_G8_B8R8_2PLANE_420_UNORM                                                      = 1000156003,
-       VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM                                                     = 1000156004,
-       VK_FORMAT_G8_B8R8_2PLANE_422_UNORM                                                      = 1000156005,
-       VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM                                                     = 1000156006,
-       VK_FORMAT_R10X6_UNORM_PACK16                                                            = 1000156007,
-       VK_FORMAT_R10X6G10X6_UNORM_2PACK16                                                      = 1000156008,
-       VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16                            = 1000156009,
-       VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16                        = 1000156010,
-       VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16                        = 1000156011,
-       VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16            = 1000156012,
-       VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16                     = 1000156013,
-       VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16            = 1000156014,
-       VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16                     = 1000156015,
-       VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16            = 1000156016,
-       VK_FORMAT_R12X4_UNORM_PACK16                                                            = 1000156017,
-       VK_FORMAT_R12X4G12X4_UNORM_2PACK16                                                      = 1000156018,
-       VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16                            = 1000156019,
-       VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16                        = 1000156020,
-       VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16                        = 1000156021,
-       VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16            = 1000156022,
-       VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16                     = 1000156023,
-       VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16            = 1000156024,
-       VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16                     = 1000156025,
-       VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16            = 1000156026,
-       VK_FORMAT_G16B16G16R16_422_UNORM                                                        = 1000156027,
-       VK_FORMAT_B16G16R16G16_422_UNORM                                                        = 1000156028,
-       VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM                                          = 1000156029,
-       VK_FORMAT_G16_B16R16_2PLANE_420_UNORM                                           = 1000156030,
-       VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM                                          = 1000156031,
-       VK_FORMAT_G16_B16R16_2PLANE_422_UNORM                                           = 1000156032,
-       VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM                                          = 1000156033,
-       VK_FORMAT_G8_B8R8_2PLANE_444_UNORM                                                      = 1000330000,
-       VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16                     = 1000330001,
-       VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16                     = 1000330002,
-       VK_FORMAT_G16_B16R16_2PLANE_444_UNORM                                           = 1000330003,
-       VK_FORMAT_A4R4G4B4_UNORM_PACK16                                                         = 1000340000,
-       VK_FORMAT_A4B4G4R4_UNORM_PACK16                                                         = 1000340001,
-       VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK                                                         = 1000066000,
-       VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK                                                         = 1000066001,
-       VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK                                                         = 1000066002,
-       VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK                                                         = 1000066003,
-       VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK                                                         = 1000066004,
-       VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK                                                         = 1000066005,
-       VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK                                                         = 1000066006,
-       VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK                                                         = 1000066007,
-       VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK                                                        = 1000066008,
-       VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK                                                        = 1000066009,
-       VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK                                                        = 1000066010,
-       VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK                                                       = 1000066011,
-       VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK                                                       = 1000066012,
-       VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK                                                       = 1000066013,
-       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_ASTC_4x4_SFLOAT_BLOCK_EXT                                                     = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK,
-       VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT                                                     = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK,
-       VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT                                                     = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK,
-       VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT                                                     = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK,
-       VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT                                                     = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK,
-       VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT                                                     = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK,
-       VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT                                                     = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK,
-       VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT                                                     = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK,
-       VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT                                            = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK,
-       VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT                                            = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK,
-       VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT                                            = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK,
-       VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT                                           = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK,
-       VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT                                           = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK,
-       VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT                                           = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK,
-       VK_FORMAT_G8B8G8R8_422_UNORM_KHR                                                        = VK_FORMAT_G8B8G8R8_422_UNORM,
-       VK_FORMAT_B8G8R8G8_422_UNORM_KHR                                                        = VK_FORMAT_B8G8R8G8_422_UNORM,
-       VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR                                         = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
-       VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR                                          = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
-       VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR                                         = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
-       VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR                                          = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
-       VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR                                         = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
-       VK_FORMAT_R10X6_UNORM_PACK16_KHR                                                        = VK_FORMAT_R10X6_UNORM_PACK16,
-       VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR                                          = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
-       VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR                        = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
-       VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR            = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
-       VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR            = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
-       VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR        = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
-       VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR         = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
-       VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR        = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
-       VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR         = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
-       VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR        = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
-       VK_FORMAT_R12X4_UNORM_PACK16_KHR                                                        = VK_FORMAT_R12X4_UNORM_PACK16,
-       VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR                                          = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
-       VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR                        = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
-       VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR            = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
-       VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR            = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
-       VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR        = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
-       VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR         = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
-       VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR        = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
-       VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR         = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
-       VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR        = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
-       VK_FORMAT_G16B16G16R16_422_UNORM_KHR                                            = VK_FORMAT_G16B16G16R16_422_UNORM,
-       VK_FORMAT_B16G16R16G16_422_UNORM_KHR                                            = VK_FORMAT_B16G16R16G16_422_UNORM,
-       VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR                                      = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
-       VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR                                       = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
-       VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR                                      = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
-       VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR                                       = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
-       VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR                                      = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
-       VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT                                          = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM,
-       VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT         = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
-       VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT         = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,
-       VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT                                       = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM,
-       VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT                                                     = VK_FORMAT_A4R4G4B4_UNORM_PACK16,
-       VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT                                                     = VK_FORMAT_A4B4G4R4_UNORM_PACK16,
-       VK_FORMAT_MAX_ENUM                                                                                      = 0x7FFFFFFF,
-};
-
-enum VkImageTiling
-{
-       VK_IMAGE_TILING_OPTIMAL                                 = 0,
-       VK_IMAGE_TILING_LINEAR                                  = 1,
-       VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
-       VK_IMAGE_TILING_MAX_ENUM                                = 0x7FFFFFFF,
-};
-
-enum VkImageType
-{
-       VK_IMAGE_TYPE_1D                = 0,
-       VK_IMAGE_TYPE_2D                = 1,
-       VK_IMAGE_TYPE_3D                = 2,
-       VK_IMAGE_TYPE_LAST,
-       VK_IMAGE_TYPE_MAX_ENUM  = 0x7FFFFFFF,
-};
-
-enum VkPhysicalDeviceType
-{
-       VK_PHYSICAL_DEVICE_TYPE_OTHER                   = 0,
-       VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU  = 1,
-       VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU    = 2,
-       VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU             = 3,
-       VK_PHYSICAL_DEVICE_TYPE_CPU                             = 4,
-       VK_PHYSICAL_DEVICE_TYPE_LAST,
-       VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM                = 0x7FFFFFFF,
-};
-
-enum VkQueryType
-{
-       VK_QUERY_TYPE_OCCLUSION                                                                                                                 = 0,
-       VK_QUERY_TYPE_PIPELINE_STATISTICS                                                                                               = 1,
-       VK_QUERY_TYPE_TIMESTAMP                                                                                                                 = 2,
-       VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR                                                                                    = 1000023000,
-       VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT                                                                             = 1000028004,
-       VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR                                                                                             = 1000116000,
-       VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR                                                 = 1000150000,
-       VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR                                             = 1000150001,
-       VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV                                                  = 1000165000,
-       VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL                                                                                   = 1000210000,
-       VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR                                                   = 1000299000,
-       VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT                                                                                  = 1000382000,
-       VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR    = 1000386000,
-       VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR                                                                   = 1000386001,
-       VK_QUERY_TYPE_MAX_ENUM                                                                                                                  = 0x7FFFFFFF,
-};
-
-enum VkSharingMode
-{
-       VK_SHARING_MODE_EXCLUSIVE       = 0,
-       VK_SHARING_MODE_CONCURRENT      = 1,
-       VK_SHARING_MODE_LAST,
-       VK_SHARING_MODE_MAX_ENUM        = 0x7FFFFFFF,
-};
-
-enum VkComponentSwizzle
-{
-       VK_COMPONENT_SWIZZLE_IDENTITY   = 0,
-       VK_COMPONENT_SWIZZLE_ZERO               = 1,
-       VK_COMPONENT_SWIZZLE_ONE                = 2,
-       VK_COMPONENT_SWIZZLE_R                  = 3,
-       VK_COMPONENT_SWIZZLE_G                  = 4,
-       VK_COMPONENT_SWIZZLE_B                  = 5,
-       VK_COMPONENT_SWIZZLE_A                  = 6,
-       VK_COMPONENT_SWIZZLE_LAST,
-       VK_COMPONENT_SWIZZLE_MAX_ENUM   = 0x7FFFFFFF,
-};
-
-enum VkImageViewType
-{
-       VK_IMAGE_VIEW_TYPE_1D                   = 0,
-       VK_IMAGE_VIEW_TYPE_2D                   = 1,
-       VK_IMAGE_VIEW_TYPE_3D                   = 2,
-       VK_IMAGE_VIEW_TYPE_CUBE                 = 3,
-       VK_IMAGE_VIEW_TYPE_1D_ARRAY             = 4,
-       VK_IMAGE_VIEW_TYPE_2D_ARRAY             = 5,
-       VK_IMAGE_VIEW_TYPE_CUBE_ARRAY   = 6,
-       VK_IMAGE_VIEW_TYPE_LAST,
-       VK_IMAGE_VIEW_TYPE_MAX_ENUM             = 0x7FFFFFFF,
+       VK_ATTACHMENT_STORE_OP_STORE            = 0,
+       VK_ATTACHMENT_STORE_OP_DONT_CARE        = 1,
+       VK_ATTACHMENT_STORE_OP_NONE                     = 1000301000,
+       VK_ATTACHMENT_STORE_OP_NONE_KHR         = VK_ATTACHMENT_STORE_OP_NONE,
+       VK_ATTACHMENT_STORE_OP_NONE_QCOM        = VK_ATTACHMENT_STORE_OP_NONE,
+       VK_ATTACHMENT_STORE_OP_NONE_EXT         = VK_ATTACHMENT_STORE_OP_NONE,
+       VK_ATTACHMENT_STORE_OP_MAX_ENUM         = 0x7FFFFFFF
 };
 
 enum VkBlendFactor
@@ -1527,7 +124,7 @@ enum VkBlendFactor
        VK_BLEND_FACTOR_SRC1_ALPHA                                      = 17,
        VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA            = 18,
        VK_BLEND_FACTOR_LAST,
-       VK_BLEND_FACTOR_MAX_ENUM                                        = 0x7FFFFFFF,
+       VK_BLEND_FACTOR_MAX_ENUM                                        = 0x7FFFFFFF
 };
 
 enum VkBlendOp
@@ -1583,198 +180,206 @@ enum VkBlendOp
        VK_BLEND_OP_RED_EXT                                     = 1000148043,
        VK_BLEND_OP_GREEN_EXT                           = 1000148044,
        VK_BLEND_OP_BLUE_EXT                            = 1000148045,
-       VK_BLEND_OP_MAX_ENUM                            = 0x7FFFFFFF,
+       VK_BLEND_OP_MAX_ENUM                            = 0x7FFFFFFF
 };
 
-enum VkCompareOp
+enum VkBorderColor
 {
-       VK_COMPARE_OP_NEVER                             = 0,
-       VK_COMPARE_OP_LESS                              = 1,
-       VK_COMPARE_OP_EQUAL                             = 2,
-       VK_COMPARE_OP_LESS_OR_EQUAL             = 3,
-       VK_COMPARE_OP_GREATER                   = 4,
-       VK_COMPARE_OP_NOT_EQUAL                 = 5,
-       VK_COMPARE_OP_GREATER_OR_EQUAL  = 6,
-       VK_COMPARE_OP_ALWAYS                    = 7,
-       VK_COMPARE_OP_LAST,
-       VK_COMPARE_OP_MAX_ENUM                  = 0x7FFFFFFF,
+       VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
+       VK_BORDER_COLOR_INT_TRANSPARENT_BLACK   = 1,
+       VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK              = 2,
+       VK_BORDER_COLOR_INT_OPAQUE_BLACK                = 3,
+       VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE              = 4,
+       VK_BORDER_COLOR_INT_OPAQUE_WHITE                = 5,
+       VK_BORDER_COLOR_FLOAT_CUSTOM_EXT                = 1000287003,
+       VK_BORDER_COLOR_INT_CUSTOM_EXT                  = 1000287004,
+       VK_BORDER_COLOR_MAX_ENUM                                = 0x7FFFFFFF
 };
 
-enum VkDynamicState
+enum VkFramebufferCreateFlagBits
 {
-       VK_DYNAMIC_STATE_VIEWPORT                                                               = 0,
-       VK_DYNAMIC_STATE_SCISSOR                                                                = 1,
-       VK_DYNAMIC_STATE_LINE_WIDTH                                                             = 2,
-       VK_DYNAMIC_STATE_DEPTH_BIAS                                                             = 3,
-       VK_DYNAMIC_STATE_BLEND_CONSTANTS                                                = 4,
-       VK_DYNAMIC_STATE_DEPTH_BOUNDS                                                   = 5,
-       VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK                                   = 6,
-       VK_DYNAMIC_STATE_STENCIL_WRITE_MASK                                             = 7,
-       VK_DYNAMIC_STATE_STENCIL_REFERENCE                                              = 8,
-       VK_DYNAMIC_STATE_CULL_MODE                                                              = 1000267000,
-       VK_DYNAMIC_STATE_FRONT_FACE                                                             = 1000267001,
-       VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY                                             = 1000267002,
-       VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT                                    = 1000267003,
-       VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT                                             = 1000267004,
-       VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE                    = 1000267005,
-       VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE                                              = 1000267006,
-       VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE                                             = 1000267007,
-       VK_DYNAMIC_STATE_DEPTH_COMPARE_OP                                               = 1000267008,
-       VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE                               = 1000267009,
-       VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE                                    = 1000267010,
-       VK_DYNAMIC_STATE_STENCIL_OP                                                             = 1000267011,
-       VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE                              = 1000377001,
-       VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE                                              = 1000377002,
-       VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE                               = 1000377004,
-       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_RAY_TRACING_PIPELINE_STACK_SIZE_KHR    = 1000347000,
-       VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV               = 1000164004,
-       VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV                = 1000164006,
-       VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV                                   = 1000205001,
-       VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR                              = 1000226000,
-       VK_DYNAMIC_STATE_LINE_STIPPLE_EXT                                               = 1000259000,
-       VK_DYNAMIC_STATE_VERTEX_INPUT_EXT                                               = 1000352000,
-       VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT                               = 1000377000,
-       VK_DYNAMIC_STATE_LOGIC_OP_EXT                                                   = 1000377003,
-       VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT                                 = 1000381000,
-       VK_DYNAMIC_STATE_CULL_MODE_EXT                                                  = VK_DYNAMIC_STATE_CULL_MODE,
-       VK_DYNAMIC_STATE_FRONT_FACE_EXT                                                 = VK_DYNAMIC_STATE_FRONT_FACE,
-       VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT                                 = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
-       VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT                                = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
-       VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT                                 = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
-       VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT                = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,
-       VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT                                  = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
-       VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT                                 = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
-       VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT                                   = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
-       VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT                   = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
-       VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT                                = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
-       VK_DYNAMIC_STATE_STENCIL_OP_EXT                                                 = VK_DYNAMIC_STATE_STENCIL_OP,
-       VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT                  = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,
-       VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT                                  = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE,
-       VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT                   = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,
-       VK_DYNAMIC_STATE_MAX_ENUM                                                               = 0x7FFFFFFF,
+       VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT                     = 0x00000001,
+       VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR         = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
+       VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM        = 0x7FFFFFFF
+};
+
+enum VkRenderPassCreateFlagBits
+{
+       VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM        = 0x00000002,
+       VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM        = 0x7FFFFFFF
+};
+
+enum VkSamplerCreateFlagBits
+{
+       VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT                                            = 0x00000001,
+       VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT      = 0x00000002,
+       VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT                         = 0x00000004,
+       VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM                                     = 0x00000010,
+       VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM                                            = 0x7FFFFFFF
+};
+
+enum VkPipelineCacheHeaderVersion
+{
+       VK_PIPELINE_CACHE_HEADER_VERSION_ONE            = 1,
+       VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM       = 0x7FFFFFFF
+};
+
+enum VkPipelineCacheCreateFlagBits
+{
+       VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT            = 0x00000001,
+       VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT        = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
+       VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM                                     = 0x7FFFFFFF
+};
+
+enum VkPipelineShaderStageCreateFlagBits
+{
+       VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT         = 0x00000001,
+       VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT                      = 0x00000002,
+       VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT     = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,
+       VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT          = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
+       VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM                                      = 0x7FFFFFFF
+};
+
+enum VkDescriptorSetLayoutCreateFlagBits
+{
+       VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR                 = 0x00000001,
+       VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT              = 0x00000002,
+       VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE                = 0x00000004,
+       VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT  = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
+       VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM                              = 0x7FFFFFFF
+};
+
+enum VkInstanceCreateFlagBits
+{
+       VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR        = 0x00000001,
+       VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM                           = 0x7FFFFFFF
+};
+
+enum VkDeviceQueueCreateFlagBits
+{
+       VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT            = 0x00000001,
+       VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM       = 0x7FFFFFFF
+};
+
+enum VkBufferCreateFlagBits
+{
+       VK_BUFFER_CREATE_SPARSE_BINDING_BIT                                             = 0x00000001,
+       VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT                                   = 0x00000002,
+       VK_BUFFER_CREATE_SPARSE_ALIASED_BIT                                             = 0x00000004,
+       VK_BUFFER_CREATE_PROTECTED_BIT                                                  = 0x00000008,
+       VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT              = 0x00000010,
+       VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT  = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
+       VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR  = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
+       VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM                                             = 0x7FFFFFFF
 };
 
-enum VkFrontFace
+enum VkBufferUsageFlagBits
 {
-       VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
-       VK_FRONT_FACE_CLOCKWISE                 = 1,
-       VK_FRONT_FACE_LAST,
-       VK_FRONT_FACE_MAX_ENUM                  = 0x7FFFFFFF,
+       VK_BUFFER_USAGE_TRANSFER_SRC_BIT                                                                                = 0x00000001,
+       VK_BUFFER_USAGE_TRANSFER_DST_BIT                                                                                = 0x00000002,
+       VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT                                                                = 0x00000004,
+       VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT                                                                = 0x00000008,
+       VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT                                                                              = 0x00000010,
+       VK_BUFFER_USAGE_STORAGE_BUFFER_BIT                                                                              = 0x00000020,
+       VK_BUFFER_USAGE_INDEX_BUFFER_BIT                                                                                = 0x00000040,
+       VK_BUFFER_USAGE_VERTEX_BUFFER_BIT                                                                               = 0x00000080,
+       VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT                                                                             = 0x00000100,
+       VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT                                                   = 0x00000200,
+       VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR                                                    = 0x00000400,
+       VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT                                               = 0x00000800,
+       VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT                               = 0x00001000,
+       VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR                                                                = 0x00002000,
+       VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR                                                                = 0x00004000,
+       VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR                                                                = 0x00008000,
+       VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR                                                                = 0x00010000,
+       VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT                                                               = 0x00020000,
+       VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR    = 0x00080000,
+       VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR                                  = 0x00100000,
+       VK_BUFFER_USAGE_RAY_TRACING_BIT_NV                                                                              = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
+       VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT                                                   = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
+       VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR                                                   = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
+       VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM                                                                              = 0x7FFFFFFF
 };
 
-enum VkVertexInputRate
+enum VkColorComponentFlagBits
 {
-       VK_VERTEX_INPUT_RATE_VERTEX             = 0,
-       VK_VERTEX_INPUT_RATE_INSTANCE   = 1,
-       VK_VERTEX_INPUT_RATE_LAST,
-       VK_VERTEX_INPUT_RATE_MAX_ENUM   = 0x7FFFFFFF,
+       VK_COLOR_COMPONENT_R_BIT                                = 0x00000001,
+       VK_COLOR_COMPONENT_G_BIT                                = 0x00000002,
+       VK_COLOR_COMPONENT_B_BIT                                = 0x00000004,
+       VK_COLOR_COMPONENT_A_BIT                                = 0x00000008,
+       VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM   = 0x7FFFFFFF
 };
 
-enum VkPrimitiveTopology
+enum VkComponentSwizzle
 {
-       VK_PRIMITIVE_TOPOLOGY_POINT_LIST                                        = 0,
-       VK_PRIMITIVE_TOPOLOGY_LINE_LIST                                         = 1,
-       VK_PRIMITIVE_TOPOLOGY_LINE_STRIP                                        = 2,
-       VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST                                     = 3,
-       VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP                            = 4,
-       VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN                                      = 5,
-       VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY          = 6,
-       VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY         = 7,
-       VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY      = 8,
-       VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY     = 9,
-       VK_PRIMITIVE_TOPOLOGY_PATCH_LIST                                        = 10,
-       VK_PRIMITIVE_TOPOLOGY_LAST,
-       VK_PRIMITIVE_TOPOLOGY_MAX_ENUM                                          = 0x7FFFFFFF,
+       VK_COMPONENT_SWIZZLE_IDENTITY   = 0,
+       VK_COMPONENT_SWIZZLE_ZERO               = 1,
+       VK_COMPONENT_SWIZZLE_ONE                = 2,
+       VK_COMPONENT_SWIZZLE_R                  = 3,
+       VK_COMPONENT_SWIZZLE_G                  = 4,
+       VK_COMPONENT_SWIZZLE_B                  = 5,
+       VK_COMPONENT_SWIZZLE_A                  = 6,
+       VK_COMPONENT_SWIZZLE_LAST,
+       VK_COMPONENT_SWIZZLE_MAX_ENUM   = 0x7FFFFFFF
 };
 
-enum VkPolygonMode
+enum VkCommandPoolCreateFlagBits
 {
-       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_MAX_ENUM                        = 0x7FFFFFFF,
+       VK_COMMAND_POOL_CREATE_TRANSIENT_BIT                    = 0x00000001,
+       VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
+       VK_COMMAND_POOL_CREATE_PROTECTED_BIT                    = 0x00000004,
+       VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM               = 0x7FFFFFFF
 };
 
-enum VkStencilOp
+enum VkCommandPoolResetFlagBits
 {
-       VK_STENCIL_OP_KEEP                                      = 0,
-       VK_STENCIL_OP_ZERO                                      = 1,
-       VK_STENCIL_OP_REPLACE                           = 2,
-       VK_STENCIL_OP_INCREMENT_AND_CLAMP       = 3,
-       VK_STENCIL_OP_DECREMENT_AND_CLAMP       = 4,
-       VK_STENCIL_OP_INVERT                            = 5,
-       VK_STENCIL_OP_INCREMENT_AND_WRAP        = 6,
-       VK_STENCIL_OP_DECREMENT_AND_WRAP        = 7,
-       VK_STENCIL_OP_LAST,
-       VK_STENCIL_OP_MAX_ENUM                          = 0x7FFFFFFF,
+       VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT     = 0x00000001,
+       VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM        = 0x7FFFFFFF
 };
 
-enum VkLogicOp
+enum VkCommandBufferResetFlagBits
 {
-       VK_LOGIC_OP_CLEAR                       = 0,
-       VK_LOGIC_OP_AND                         = 1,
-       VK_LOGIC_OP_AND_REVERSE         = 2,
-       VK_LOGIC_OP_COPY                        = 3,
-       VK_LOGIC_OP_AND_INVERTED        = 4,
-       VK_LOGIC_OP_NO_OP                       = 5,
-       VK_LOGIC_OP_XOR                         = 6,
-       VK_LOGIC_OP_OR                          = 7,
-       VK_LOGIC_OP_NOR                         = 8,
-       VK_LOGIC_OP_EQUIVALENT          = 9,
-       VK_LOGIC_OP_INVERT                      = 10,
-       VK_LOGIC_OP_OR_REVERSE          = 11,
-       VK_LOGIC_OP_COPY_INVERTED       = 12,
-       VK_LOGIC_OP_OR_INVERTED         = 13,
-       VK_LOGIC_OP_NAND                        = 14,
-       VK_LOGIC_OP_SET                         = 15,
-       VK_LOGIC_OP_LAST,
-       VK_LOGIC_OP_MAX_ENUM            = 0x7FFFFFFF,
+       VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT   = 0x00000001,
+       VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM              = 0x7FFFFFFF
 };
 
-enum VkBorderColor
+enum VkCommandBufferLevel
 {
-       VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
-       VK_BORDER_COLOR_INT_TRANSPARENT_BLACK   = 1,
-       VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK              = 2,
-       VK_BORDER_COLOR_INT_OPAQUE_BLACK                = 3,
-       VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE              = 4,
-       VK_BORDER_COLOR_INT_OPAQUE_WHITE                = 5,
-       VK_BORDER_COLOR_FLOAT_CUSTOM_EXT                = 1000287003,
-       VK_BORDER_COLOR_INT_CUSTOM_EXT                  = 1000287004,
-       VK_BORDER_COLOR_MAX_ENUM                                = 0x7FFFFFFF,
+       VK_COMMAND_BUFFER_LEVEL_PRIMARY         = 0,
+       VK_COMMAND_BUFFER_LEVEL_SECONDARY       = 1,
+       VK_COMMAND_BUFFER_LEVEL_LAST,
+       VK_COMMAND_BUFFER_LEVEL_MAX_ENUM        = 0x7FFFFFFF
 };
 
-enum VkFilter
+enum VkCommandBufferUsageFlagBits
 {
-       VK_FILTER_NEAREST       = 0,
-       VK_FILTER_LINEAR        = 1,
-       VK_FILTER_CUBIC_EXT     = 1000015000,
-       VK_FILTER_CUBIC_IMG     = VK_FILTER_CUBIC_EXT,
-       VK_FILTER_MAX_ENUM      = 0x7FFFFFFF,
+       VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT                     = 0x00000001,
+       VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT        = 0x00000002,
+       VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT            = 0x00000004,
+       VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM                      = 0x7FFFFFFF
 };
 
-enum VkSamplerAddressMode
+enum VkCompareOp
 {
-       VK_SAMPLER_ADDRESS_MODE_REPEAT                                          = 0,
-       VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT                         = 1,
-       VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE                           = 2,
-       VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER                         = 3,
-       VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE            = 4,
-       VK_SAMPLER_ADDRESS_MODE_LAST,
-       VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR        = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
-       VK_SAMPLER_ADDRESS_MODE_MAX_ENUM                                        = 0x7FFFFFFF,
+       VK_COMPARE_OP_NEVER                             = 0,
+       VK_COMPARE_OP_LESS                              = 1,
+       VK_COMPARE_OP_EQUAL                             = 2,
+       VK_COMPARE_OP_LESS_OR_EQUAL             = 3,
+       VK_COMPARE_OP_GREATER                   = 4,
+       VK_COMPARE_OP_NOT_EQUAL                 = 5,
+       VK_COMPARE_OP_GREATER_OR_EQUAL  = 6,
+       VK_COMPARE_OP_ALWAYS                    = 7,
+       VK_COMPARE_OP_LAST,
+       VK_COMPARE_OP_MAX_ENUM                  = 0x7FFFFFFF
 };
 
-enum VkSamplerMipmapMode
+enum VkCullModeFlagBits
 {
-       VK_SAMPLER_MIPMAP_MODE_NEAREST  = 0,
-       VK_SAMPLER_MIPMAP_MODE_LINEAR   = 1,
-       VK_SAMPLER_MIPMAP_MODE_LAST,
-       VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF,
+       VK_CULL_MODE_NONE                               = 0,
+       VK_CULL_MODE_FRONT_BIT                  = 0x00000001,
+       VK_CULL_MODE_BACK_BIT                   = 0x00000002,
+       VK_CULL_MODE_FRONT_AND_BACK             = 0x00000003,
+       VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 };
 
 enum VkDescriptorType
@@ -1797,703 +402,2015 @@ enum VkDescriptorType
        VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM             = 1000440000,
        VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM               = 1000440001,
        VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT             = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
-       VK_DESCRIPTOR_TYPE_MAX_ENUM                                             = 0x7FFFFFFF,
-};
-
-enum VkAttachmentLoadOp
-{
-       VK_ATTACHMENT_LOAD_OP_LOAD              = 0,
-       VK_ATTACHMENT_LOAD_OP_CLEAR             = 1,
-       VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
-       VK_ATTACHMENT_LOAD_OP_NONE_EXT  = 1000400000,
-       VK_ATTACHMENT_LOAD_OP_MAX_ENUM  = 0x7FFFFFFF,
-};
-
-enum VkAttachmentStoreOp
-{
-       VK_ATTACHMENT_STORE_OP_STORE            = 0,
-       VK_ATTACHMENT_STORE_OP_DONT_CARE        = 1,
-       VK_ATTACHMENT_STORE_OP_NONE                     = 1000301000,
-       VK_ATTACHMENT_STORE_OP_NONE_KHR         = VK_ATTACHMENT_STORE_OP_NONE,
-       VK_ATTACHMENT_STORE_OP_NONE_QCOM        = VK_ATTACHMENT_STORE_OP_NONE,
-       VK_ATTACHMENT_STORE_OP_NONE_EXT         = VK_ATTACHMENT_STORE_OP_NONE,
-       VK_ATTACHMENT_STORE_OP_MAX_ENUM         = 0x7FFFFFFF,
-};
-
-enum VkPipelineBindPoint
-{
-       VK_PIPELINE_BIND_POINT_GRAPHICS                                 = 0,
-       VK_PIPELINE_BIND_POINT_COMPUTE                                  = 1,
-       VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR                  = 1000165000,
-       VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI   = 1000369003,
-       VK_PIPELINE_BIND_POINT_RAY_TRACING_NV                   = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
-       VK_PIPELINE_BIND_POINT_MAX_ENUM                                 = 0x7FFFFFFF,
-};
-
-enum VkCommandBufferLevel
-{
-       VK_COMMAND_BUFFER_LEVEL_PRIMARY         = 0,
-       VK_COMMAND_BUFFER_LEVEL_SECONDARY       = 1,
-       VK_COMMAND_BUFFER_LEVEL_LAST,
-       VK_COMMAND_BUFFER_LEVEL_MAX_ENUM        = 0x7FFFFFFF,
-};
-
-enum VkIndexType
-{
-       VK_INDEX_TYPE_UINT16    = 0,
-       VK_INDEX_TYPE_UINT32    = 1,
-       VK_INDEX_TYPE_NONE_KHR  = 1000165000,
-       VK_INDEX_TYPE_UINT8_EXT = 1000265000,
-       VK_INDEX_TYPE_NONE_NV   = VK_INDEX_TYPE_NONE_KHR,
-       VK_INDEX_TYPE_MAX_ENUM  = 0x7FFFFFFF,
-};
-
-enum VkSubpassContents
-{
-       VK_SUBPASS_CONTENTS_INLINE                                              = 0,
-       VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS   = 1,
-       VK_SUBPASS_CONTENTS_LAST,
-       VK_SUBPASS_CONTENTS_MAX_ENUM                                    = 0x7FFFFFFF,
-};
-
-enum VkPointClippingBehavior
-{
-       VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES                              = 0,
-       VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY                = 1,
-       VK_POINT_CLIPPING_BEHAVIOR_LAST,
-       VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR                  = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
-       VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR    = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
-       VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM                                             = 0x7FFFFFFF,
-};
-
-enum VkTessellationDomainOrigin
-{
-       VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT                = 0,
-       VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT                = 1,
-       VK_TESSELLATION_DOMAIN_ORIGIN_LAST,
-       VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR    = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
-       VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR    = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
-       VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM                  = 0x7FFFFFFF,
-};
-
-enum VkSamplerYcbcrModelConversion
-{
-       VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY                  = 0,
-       VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY                = 1,
-       VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709                             = 2,
-       VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601                             = 3,
-       VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020                    = 4,
-       VK_SAMPLER_YCBCR_MODEL_CONVERSION_LAST,
-       VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR              = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
-       VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR    = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
-       VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR                 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
-       VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR                 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
-       VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR                = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
-       VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM                              = 0x7FFFFFFF,
+       VK_DESCRIPTOR_TYPE_MAX_ENUM                                             = 0x7FFFFFFF
 };
 
-enum VkSamplerYcbcrRange
+enum VkDynamicState
 {
-       VK_SAMPLER_YCBCR_RANGE_ITU_FULL                 = 0,
-       VK_SAMPLER_YCBCR_RANGE_ITU_NARROW               = 1,
-       VK_SAMPLER_YCBCR_RANGE_LAST,
-       VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR             = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
-       VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR   = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
-       VK_SAMPLER_YCBCR_RANGE_MAX_ENUM                 = 0x7FFFFFFF,
+       VK_DYNAMIC_STATE_VIEWPORT                                                               = 0,
+       VK_DYNAMIC_STATE_SCISSOR                                                                = 1,
+       VK_DYNAMIC_STATE_LINE_WIDTH                                                             = 2,
+       VK_DYNAMIC_STATE_DEPTH_BIAS                                                             = 3,
+       VK_DYNAMIC_STATE_BLEND_CONSTANTS                                                = 4,
+       VK_DYNAMIC_STATE_DEPTH_BOUNDS                                                   = 5,
+       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_VIEWPORT_SHADING_RATE_PALETTE_NV               = 1000164004,
+       VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV                = 1000164006,
+       VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV                                   = 1000205001,
+       VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR                              = 1000226000,
+       VK_DYNAMIC_STATE_LINE_STIPPLE_EXT                                               = 1000259000,
+       VK_DYNAMIC_STATE_CULL_MODE                                                              = 1000267000,
+       VK_DYNAMIC_STATE_FRONT_FACE                                                             = 1000267001,
+       VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY                                             = 1000267002,
+       VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT                                    = 1000267003,
+       VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT                                             = 1000267004,
+       VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE                    = 1000267005,
+       VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE                                              = 1000267006,
+       VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE                                             = 1000267007,
+       VK_DYNAMIC_STATE_DEPTH_COMPARE_OP                                               = 1000267008,
+       VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE                               = 1000267009,
+       VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE                                    = 1000267010,
+       VK_DYNAMIC_STATE_STENCIL_OP                                                             = 1000267011,
+       VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR    = 1000347000,
+       VK_DYNAMIC_STATE_VERTEX_INPUT_EXT                                               = 1000352000,
+       VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT                               = 1000377000,
+       VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE                              = 1000377001,
+       VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE                                              = 1000377002,
+       VK_DYNAMIC_STATE_LOGIC_OP_EXT                                                   = 1000377003,
+       VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE                               = 1000377004,
+       VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT                                 = 1000381000,
+       VK_DYNAMIC_STATE_CULL_MODE_EXT                                                  = VK_DYNAMIC_STATE_CULL_MODE,
+       VK_DYNAMIC_STATE_FRONT_FACE_EXT                                                 = VK_DYNAMIC_STATE_FRONT_FACE,
+       VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT                                 = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
+       VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT                                = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
+       VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT                                 = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
+       VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT                = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,
+       VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT                                  = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
+       VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT                                 = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
+       VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT                                   = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
+       VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT                   = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
+       VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT                                = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
+       VK_DYNAMIC_STATE_STENCIL_OP_EXT                                                 = VK_DYNAMIC_STATE_STENCIL_OP,
+       VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT                  = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,
+       VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT                                  = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE,
+       VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT                   = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,
+       VK_DYNAMIC_STATE_MAX_ENUM                                                               = 0x7FFFFFFF
 };
 
-enum VkChromaLocation
+enum VkFenceCreateFlagBits
 {
-       VK_CHROMA_LOCATION_COSITED_EVEN         = 0,
-       VK_CHROMA_LOCATION_MIDPOINT                     = 1,
-       VK_CHROMA_LOCATION_LAST,
-       VK_CHROMA_LOCATION_COSITED_EVEN_KHR     = VK_CHROMA_LOCATION_COSITED_EVEN,
-       VK_CHROMA_LOCATION_MIDPOINT_KHR         = VK_CHROMA_LOCATION_MIDPOINT,
-       VK_CHROMA_LOCATION_MAX_ENUM                     = 0x7FFFFFFF,
+       VK_FENCE_CREATE_SIGNALED_BIT            = 0x00000001,
+       VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM      = 0x7FFFFFFF
 };
 
-enum VkDescriptorUpdateTemplateType
+enum VkPolygonMode
 {
-       VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET               = 0,
-       VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
-       VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_LAST,
-       VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR   = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
-       VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM                             = 0x7FFFFFFF,
+       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_MAX_ENUM                        = 0x7FFFFFFF
 };
 
-enum VkDriverId
+enum VkFormat
 {
-       VK_DRIVER_ID_AMD_PROPRIETARY                            = 1,
-       VK_DRIVER_ID_AMD_OPEN_SOURCE                            = 2,
-       VK_DRIVER_ID_MESA_RADV                                          = 3,
-       VK_DRIVER_ID_NVIDIA_PROPRIETARY                         = 4,
-       VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS          = 5,
-       VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA                     = 6,
-       VK_DRIVER_ID_IMAGINATION_PROPRIETARY            = 7,
-       VK_DRIVER_ID_QUALCOMM_PROPRIETARY                       = 8,
-       VK_DRIVER_ID_ARM_PROPRIETARY                            = 9,
-       VK_DRIVER_ID_GOOGLE_SWIFTSHADER                         = 10,
-       VK_DRIVER_ID_GGP_PROPRIETARY                            = 11,
-       VK_DRIVER_ID_BROADCOM_PROPRIETARY                       = 12,
-       VK_DRIVER_ID_MESA_LLVMPIPE                                      = 13,
-       VK_DRIVER_ID_MOLTENVK                                           = 14,
-       VK_DRIVER_ID_COREAVI_PROPRIETARY                        = 15,
-       VK_DRIVER_ID_JUICE_PROPRIETARY                          = 16,
-       VK_DRIVER_ID_VERISILICON_PROPRIETARY            = 17,
-       VK_DRIVER_ID_MESA_TURNIP                                        = 18,
-       VK_DRIVER_ID_MESA_V3DV                                          = 19,
-       VK_DRIVER_ID_MESA_PANVK                                         = 20,
-       VK_DRIVER_ID_SAMSUNG_PROPRIETARY                        = 21,
-       VK_DRIVER_ID_MESA_VENUS                                         = 22,
-       VK_DRIVER_ID_MESA_DOZEN                                         = 23,
-       VK_DRIVER_ID_AMD_PROPRIETARY_KHR                        = VK_DRIVER_ID_AMD_PROPRIETARY,
-       VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR                        = VK_DRIVER_ID_AMD_OPEN_SOURCE,
-       VK_DRIVER_ID_MESA_RADV_KHR                                      = VK_DRIVER_ID_MESA_RADV,
-       VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR                     = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
-       VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR      = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
-       VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR         = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
-       VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR        = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
-       VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR           = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
-       VK_DRIVER_ID_ARM_PROPRIETARY_KHR                        = VK_DRIVER_ID_ARM_PROPRIETARY,
-       VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR                     = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
-       VK_DRIVER_ID_GGP_PROPRIETARY_KHR                        = VK_DRIVER_ID_GGP_PROPRIETARY,
-       VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR           = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
-       VK_DRIVER_ID_MAX_ENUM                                           = 0x7FFFFFFF,
+       VK_FORMAT_UNDEFINED                                                                                     = 0,
+       VK_FORMAT_R4G4_UNORM_PACK8                                                                      = 1,
+       VK_FORMAT_R4G4B4A4_UNORM_PACK16                                                         = 2,
+       VK_FORMAT_B4G4R4A4_UNORM_PACK16                                                         = 3,
+       VK_FORMAT_R5G6B5_UNORM_PACK16                                                           = 4,
+       VK_FORMAT_B5G6R5_UNORM_PACK16                                                           = 5,
+       VK_FORMAT_R5G5B5A1_UNORM_PACK16                                                         = 6,
+       VK_FORMAT_B5G5R5A1_UNORM_PACK16                                                         = 7,
+       VK_FORMAT_A1R5G5B5_UNORM_PACK16                                                         = 8,
+       VK_FORMAT_R8_UNORM                                                                                      = 9,
+       VK_FORMAT_R8_SNORM                                                                                      = 10,
+       VK_FORMAT_R8_USCALED                                                                            = 11,
+       VK_FORMAT_R8_SSCALED                                                                            = 12,
+       VK_FORMAT_R8_UINT                                                                                       = 13,
+       VK_FORMAT_R8_SINT                                                                                       = 14,
+       VK_FORMAT_R8_SRGB                                                                                       = 15,
+       VK_FORMAT_R8G8_UNORM                                                                            = 16,
+       VK_FORMAT_R8G8_SNORM                                                                            = 17,
+       VK_FORMAT_R8G8_USCALED                                                                          = 18,
+       VK_FORMAT_R8G8_SSCALED                                                                          = 19,
+       VK_FORMAT_R8G8_UINT                                                                                     = 20,
+       VK_FORMAT_R8G8_SINT                                                                                     = 21,
+       VK_FORMAT_R8G8_SRGB                                                                                     = 22,
+       VK_FORMAT_R8G8B8_UNORM                                                                          = 23,
+       VK_FORMAT_R8G8B8_SNORM                                                                          = 24,
+       VK_FORMAT_R8G8B8_USCALED                                                                        = 25,
+       VK_FORMAT_R8G8B8_SSCALED                                                                        = 26,
+       VK_FORMAT_R8G8B8_UINT                                                                           = 27,
+       VK_FORMAT_R8G8B8_SINT                                                                           = 28,
+       VK_FORMAT_R8G8B8_SRGB                                                                           = 29,
+       VK_FORMAT_B8G8R8_UNORM                                                                          = 30,
+       VK_FORMAT_B8G8R8_SNORM                                                                          = 31,
+       VK_FORMAT_B8G8R8_USCALED                                                                        = 32,
+       VK_FORMAT_B8G8R8_SSCALED                                                                        = 33,
+       VK_FORMAT_B8G8R8_UINT                                                                           = 34,
+       VK_FORMAT_B8G8R8_SINT                                                                           = 35,
+       VK_FORMAT_B8G8R8_SRGB                                                                           = 36,
+       VK_FORMAT_R8G8B8A8_UNORM                                                                        = 37,
+       VK_FORMAT_R8G8B8A8_SNORM                                                                        = 38,
+       VK_FORMAT_R8G8B8A8_USCALED                                                                      = 39,
+       VK_FORMAT_R8G8B8A8_SSCALED                                                                      = 40,
+       VK_FORMAT_R8G8B8A8_UINT                                                                         = 41,
+       VK_FORMAT_R8G8B8A8_SINT                                                                         = 42,
+       VK_FORMAT_R8G8B8A8_SRGB                                                                         = 43,
+       VK_FORMAT_B8G8R8A8_UNORM                                                                        = 44,
+       VK_FORMAT_B8G8R8A8_SNORM                                                                        = 45,
+       VK_FORMAT_B8G8R8A8_USCALED                                                                      = 46,
+       VK_FORMAT_B8G8R8A8_SSCALED                                                                      = 47,
+       VK_FORMAT_B8G8R8A8_UINT                                                                         = 48,
+       VK_FORMAT_B8G8R8A8_SINT                                                                         = 49,
+       VK_FORMAT_B8G8R8A8_SRGB                                                                         = 50,
+       VK_FORMAT_A8B8G8R8_UNORM_PACK32                                                         = 51,
+       VK_FORMAT_A8B8G8R8_SNORM_PACK32                                                         = 52,
+       VK_FORMAT_A8B8G8R8_USCALED_PACK32                                                       = 53,
+       VK_FORMAT_A8B8G8R8_SSCALED_PACK32                                                       = 54,
+       VK_FORMAT_A8B8G8R8_UINT_PACK32                                                          = 55,
+       VK_FORMAT_A8B8G8R8_SINT_PACK32                                                          = 56,
+       VK_FORMAT_A8B8G8R8_SRGB_PACK32                                                          = 57,
+       VK_FORMAT_A2R10G10B10_UNORM_PACK32                                                      = 58,
+       VK_FORMAT_A2R10G10B10_SNORM_PACK32                                                      = 59,
+       VK_FORMAT_A2R10G10B10_USCALED_PACK32                                            = 60,
+       VK_FORMAT_A2R10G10B10_SSCALED_PACK32                                            = 61,
+       VK_FORMAT_A2R10G10B10_UINT_PACK32                                                       = 62,
+       VK_FORMAT_A2R10G10B10_SINT_PACK32                                                       = 63,
+       VK_FORMAT_A2B10G10R10_UNORM_PACK32                                                      = 64,
+       VK_FORMAT_A2B10G10R10_SNORM_PACK32                                                      = 65,
+       VK_FORMAT_A2B10G10R10_USCALED_PACK32                                            = 66,
+       VK_FORMAT_A2B10G10R10_SSCALED_PACK32                                            = 67,
+       VK_FORMAT_A2B10G10R10_UINT_PACK32                                                       = 68,
+       VK_FORMAT_A2B10G10R10_SINT_PACK32                                                       = 69,
+       VK_FORMAT_R16_UNORM                                                                                     = 70,
+       VK_FORMAT_R16_SNORM                                                                                     = 71,
+       VK_FORMAT_R16_USCALED                                                                           = 72,
+       VK_FORMAT_R16_SSCALED                                                                           = 73,
+       VK_FORMAT_R16_UINT                                                                                      = 74,
+       VK_FORMAT_R16_SINT                                                                                      = 75,
+       VK_FORMAT_R16_SFLOAT                                                                            = 76,
+       VK_FORMAT_R16G16_UNORM                                                                          = 77,
+       VK_FORMAT_R16G16_SNORM                                                                          = 78,
+       VK_FORMAT_R16G16_USCALED                                                                        = 79,
+       VK_FORMAT_R16G16_SSCALED                                                                        = 80,
+       VK_FORMAT_R16G16_UINT                                                                           = 81,
+       VK_FORMAT_R16G16_SINT                                                                           = 82,
+       VK_FORMAT_R16G16_SFLOAT                                                                         = 83,
+       VK_FORMAT_R16G16B16_UNORM                                                                       = 84,
+       VK_FORMAT_R16G16B16_SNORM                                                                       = 85,
+       VK_FORMAT_R16G16B16_USCALED                                                                     = 86,
+       VK_FORMAT_R16G16B16_SSCALED                                                                     = 87,
+       VK_FORMAT_R16G16B16_UINT                                                                        = 88,
+       VK_FORMAT_R16G16B16_SINT                                                                        = 89,
+       VK_FORMAT_R16G16B16_SFLOAT                                                                      = 90,
+       VK_FORMAT_R16G16B16A16_UNORM                                                            = 91,
+       VK_FORMAT_R16G16B16A16_SNORM                                                            = 92,
+       VK_FORMAT_R16G16B16A16_USCALED                                                          = 93,
+       VK_FORMAT_R16G16B16A16_SSCALED                                                          = 94,
+       VK_FORMAT_R16G16B16A16_UINT                                                                     = 95,
+       VK_FORMAT_R16G16B16A16_SINT                                                                     = 96,
+       VK_FORMAT_R16G16B16A16_SFLOAT                                                           = 97,
+       VK_FORMAT_R32_UINT                                                                                      = 98,
+       VK_FORMAT_R32_SINT                                                                                      = 99,
+       VK_FORMAT_R32_SFLOAT                                                                            = 100,
+       VK_FORMAT_R32G32_UINT                                                                           = 101,
+       VK_FORMAT_R32G32_SINT                                                                           = 102,
+       VK_FORMAT_R32G32_SFLOAT                                                                         = 103,
+       VK_FORMAT_R32G32B32_UINT                                                                        = 104,
+       VK_FORMAT_R32G32B32_SINT                                                                        = 105,
+       VK_FORMAT_R32G32B32_SFLOAT                                                                      = 106,
+       VK_FORMAT_R32G32B32A32_UINT                                                                     = 107,
+       VK_FORMAT_R32G32B32A32_SINT                                                                     = 108,
+       VK_FORMAT_R32G32B32A32_SFLOAT                                                           = 109,
+       VK_FORMAT_R64_UINT                                                                                      = 110,
+       VK_FORMAT_R64_SINT                                                                                      = 111,
+       VK_FORMAT_R64_SFLOAT                                                                            = 112,
+       VK_FORMAT_R64G64_UINT                                                                           = 113,
+       VK_FORMAT_R64G64_SINT                                                                           = 114,
+       VK_FORMAT_R64G64_SFLOAT                                                                         = 115,
+       VK_FORMAT_R64G64B64_UINT                                                                        = 116,
+       VK_FORMAT_R64G64B64_SINT                                                                        = 117,
+       VK_FORMAT_R64G64B64_SFLOAT                                                                      = 118,
+       VK_FORMAT_R64G64B64A64_UINT                                                                     = 119,
+       VK_FORMAT_R64G64B64A64_SINT                                                                     = 120,
+       VK_FORMAT_R64G64B64A64_SFLOAT                                                           = 121,
+       VK_FORMAT_B10G11R11_UFLOAT_PACK32                                                       = 122,
+       VK_FORMAT_E5B9G9R9_UFLOAT_PACK32                                                        = 123,
+       VK_FORMAT_D16_UNORM                                                                                     = 124,
+       VK_FORMAT_X8_D24_UNORM_PACK32                                                           = 125,
+       VK_FORMAT_D32_SFLOAT                                                                            = 126,
+       VK_FORMAT_S8_UINT                                                                                       = 127,
+       VK_FORMAT_D16_UNORM_S8_UINT                                                                     = 128,
+       VK_FORMAT_D24_UNORM_S8_UINT                                                                     = 129,
+       VK_FORMAT_D32_SFLOAT_S8_UINT                                                            = 130,
+       VK_FORMAT_BC1_RGB_UNORM_BLOCK                                                           = 131,
+       VK_FORMAT_BC1_RGB_SRGB_BLOCK                                                            = 132,
+       VK_FORMAT_BC1_RGBA_UNORM_BLOCK                                                          = 133,
+       VK_FORMAT_BC1_RGBA_SRGB_BLOCK                                                           = 134,
+       VK_FORMAT_BC2_UNORM_BLOCK                                                                       = 135,
+       VK_FORMAT_BC2_SRGB_BLOCK                                                                        = 136,
+       VK_FORMAT_BC3_UNORM_BLOCK                                                                       = 137,
+       VK_FORMAT_BC3_SRGB_BLOCK                                                                        = 138,
+       VK_FORMAT_BC4_UNORM_BLOCK                                                                       = 139,
+       VK_FORMAT_BC4_SNORM_BLOCK                                                                       = 140,
+       VK_FORMAT_BC5_UNORM_BLOCK                                                                       = 141,
+       VK_FORMAT_BC5_SNORM_BLOCK                                                                       = 142,
+       VK_FORMAT_BC6H_UFLOAT_BLOCK                                                                     = 143,
+       VK_FORMAT_BC6H_SFLOAT_BLOCK                                                                     = 144,
+       VK_FORMAT_BC7_UNORM_BLOCK                                                                       = 145,
+       VK_FORMAT_BC7_SRGB_BLOCK                                                                        = 146,
+       VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK                                                       = 147,
+       VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK                                                        = 148,
+       VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK                                                     = 149,
+       VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK                                                      = 150,
+       VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK                                                     = 151,
+       VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK                                                      = 152,
+       VK_FORMAT_EAC_R11_UNORM_BLOCK                                                           = 153,
+       VK_FORMAT_EAC_R11_SNORM_BLOCK                                                           = 154,
+       VK_FORMAT_EAC_R11G11_UNORM_BLOCK                                                        = 155,
+       VK_FORMAT_EAC_R11G11_SNORM_BLOCK                                                        = 156,
+       VK_FORMAT_ASTC_4x4_UNORM_BLOCK                                                          = 157,
+       VK_FORMAT_ASTC_4x4_SRGB_BLOCK                                                           = 158,
+       VK_FORMAT_ASTC_5x4_UNORM_BLOCK                                                          = 159,
+       VK_FORMAT_ASTC_5x4_SRGB_BLOCK                                                           = 160,
+       VK_FORMAT_ASTC_5x5_UNORM_BLOCK                                                          = 161,
+       VK_FORMAT_ASTC_5x5_SRGB_BLOCK                                                           = 162,
+       VK_FORMAT_ASTC_6x5_UNORM_BLOCK                                                          = 163,
+       VK_FORMAT_ASTC_6x5_SRGB_BLOCK                                                           = 164,
+       VK_FORMAT_ASTC_6x6_UNORM_BLOCK                                                          = 165,
+       VK_FORMAT_ASTC_6x6_SRGB_BLOCK                                                           = 166,
+       VK_FORMAT_ASTC_8x5_UNORM_BLOCK                                                          = 167,
+       VK_FORMAT_ASTC_8x5_SRGB_BLOCK                                                           = 168,
+       VK_FORMAT_ASTC_8x6_UNORM_BLOCK                                                          = 169,
+       VK_FORMAT_ASTC_8x6_SRGB_BLOCK                                                           = 170,
+       VK_FORMAT_ASTC_8x8_UNORM_BLOCK                                                          = 171,
+       VK_FORMAT_ASTC_8x8_SRGB_BLOCK                                                           = 172,
+       VK_FORMAT_ASTC_10x5_UNORM_BLOCK                                                         = 173,
+       VK_FORMAT_ASTC_10x5_SRGB_BLOCK                                                          = 174,
+       VK_FORMAT_ASTC_10x6_UNORM_BLOCK                                                         = 175,
+       VK_FORMAT_ASTC_10x6_SRGB_BLOCK                                                          = 176,
+       VK_FORMAT_ASTC_10x8_UNORM_BLOCK                                                         = 177,
+       VK_FORMAT_ASTC_10x8_SRGB_BLOCK                                                          = 178,
+       VK_FORMAT_ASTC_10x10_UNORM_BLOCK                                                        = 179,
+       VK_FORMAT_ASTC_10x10_SRGB_BLOCK                                                         = 180,
+       VK_FORMAT_ASTC_12x10_UNORM_BLOCK                                                        = 181,
+       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_ASTC_4x4_SFLOAT_BLOCK                                                         = 1000066000,
+       VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK                                                         = 1000066001,
+       VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK                                                         = 1000066002,
+       VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK                                                         = 1000066003,
+       VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK                                                         = 1000066004,
+       VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK                                                         = 1000066005,
+       VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK                                                         = 1000066006,
+       VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK                                                         = 1000066007,
+       VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK                                                        = 1000066008,
+       VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK                                                        = 1000066009,
+       VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK                                                        = 1000066010,
+       VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK                                                       = 1000066011,
+       VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK                                                       = 1000066012,
+       VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK                                                       = 1000066013,
+       VK_FORMAT_G8B8G8R8_422_UNORM                                                            = 1000156000,
+       VK_FORMAT_B8G8R8G8_422_UNORM                                                            = 1000156001,
+       VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM                                                     = 1000156002,
+       VK_FORMAT_G8_B8R8_2PLANE_420_UNORM                                                      = 1000156003,
+       VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM                                                     = 1000156004,
+       VK_FORMAT_G8_B8R8_2PLANE_422_UNORM                                                      = 1000156005,
+       VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM                                                     = 1000156006,
+       VK_FORMAT_R10X6_UNORM_PACK16                                                            = 1000156007,
+       VK_FORMAT_R10X6G10X6_UNORM_2PACK16                                                      = 1000156008,
+       VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16                            = 1000156009,
+       VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16                        = 1000156010,
+       VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16                        = 1000156011,
+       VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16            = 1000156012,
+       VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16                     = 1000156013,
+       VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16            = 1000156014,
+       VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16                     = 1000156015,
+       VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16            = 1000156016,
+       VK_FORMAT_R12X4_UNORM_PACK16                                                            = 1000156017,
+       VK_FORMAT_R12X4G12X4_UNORM_2PACK16                                                      = 1000156018,
+       VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16                            = 1000156019,
+       VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16                        = 1000156020,
+       VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16                        = 1000156021,
+       VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16            = 1000156022,
+       VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16                     = 1000156023,
+       VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16            = 1000156024,
+       VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16                     = 1000156025,
+       VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16            = 1000156026,
+       VK_FORMAT_G16B16G16R16_422_UNORM                                                        = 1000156027,
+       VK_FORMAT_B16G16R16G16_422_UNORM                                                        = 1000156028,
+       VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM                                          = 1000156029,
+       VK_FORMAT_G16_B16R16_2PLANE_420_UNORM                                           = 1000156030,
+       VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM                                          = 1000156031,
+       VK_FORMAT_G16_B16R16_2PLANE_422_UNORM                                           = 1000156032,
+       VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM                                          = 1000156033,
+       VK_FORMAT_G8_B8R8_2PLANE_444_UNORM                                                      = 1000330000,
+       VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16                     = 1000330001,
+       VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16                     = 1000330002,
+       VK_FORMAT_G16_B16R16_2PLANE_444_UNORM                                           = 1000330003,
+       VK_FORMAT_A4R4G4B4_UNORM_PACK16                                                         = 1000340000,
+       VK_FORMAT_A4B4G4R4_UNORM_PACK16                                                         = 1000340001,
+       VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT                                                     = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK,
+       VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT                                                     = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK,
+       VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT                                                     = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK,
+       VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT                                                     = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK,
+       VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT                                                     = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK,
+       VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT                                                     = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK,
+       VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT                                                     = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK,
+       VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT                                                     = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK,
+       VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT                                            = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK,
+       VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT                                            = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK,
+       VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT                                            = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK,
+       VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT                                           = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK,
+       VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT                                           = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK,
+       VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT                                           = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK,
+       VK_FORMAT_G8B8G8R8_422_UNORM_KHR                                                        = VK_FORMAT_G8B8G8R8_422_UNORM,
+       VK_FORMAT_B8G8R8G8_422_UNORM_KHR                                                        = VK_FORMAT_B8G8R8G8_422_UNORM,
+       VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR                                         = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
+       VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR                                          = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
+       VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR                                         = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
+       VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR                                          = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
+       VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR                                         = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
+       VK_FORMAT_R10X6_UNORM_PACK16_KHR                                                        = VK_FORMAT_R10X6_UNORM_PACK16,
+       VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR                                          = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
+       VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR                        = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
+       VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR            = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
+       VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR            = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
+       VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR        = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
+       VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR         = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
+       VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR        = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
+       VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR         = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
+       VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR        = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
+       VK_FORMAT_R12X4_UNORM_PACK16_KHR                                                        = VK_FORMAT_R12X4_UNORM_PACK16,
+       VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR                                          = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
+       VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR                        = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
+       VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR            = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
+       VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR            = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
+       VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR        = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
+       VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR         = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
+       VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR        = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
+       VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR         = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
+       VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR        = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
+       VK_FORMAT_G16B16G16R16_422_UNORM_KHR                                            = VK_FORMAT_G16B16G16R16_422_UNORM,
+       VK_FORMAT_B16G16R16G16_422_UNORM_KHR                                            = VK_FORMAT_B16G16R16G16_422_UNORM,
+       VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR                                      = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
+       VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR                                       = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
+       VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR                                      = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
+       VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR                                       = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
+       VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR                                      = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
+       VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT                                          = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM,
+       VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT         = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
+       VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT         = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,
+       VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT                                       = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM,
+       VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT                                                     = VK_FORMAT_A4R4G4B4_UNORM_PACK16,
+       VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT                                                     = VK_FORMAT_A4B4G4R4_UNORM_PACK16,
+       VK_FORMAT_MAX_ENUM                                                                                      = 0x7FFFFFFF
 };
 
-enum VkShaderFloatControlsIndependence
+enum VkFormatFeatureFlagBits
 {
-       VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY               = 0,
-       VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL                               = 1,
-       VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE                              = 2,
-       VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_LAST,
-       VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR   = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
-       VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR                   = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
-       VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR                  = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
-       VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM                  = 0x7FFFFFFF,
+       VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT                                                                                                                                     = 0x00000001,
+       VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT                                                                                                                                     = 0x00000002,
+       VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT                                                                                                                      = 0x00000004,
+       VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT                                                                                                                      = 0x00000008,
+       VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT                                                                                                                      = 0x00000010,
+       VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT                                                                                                       = 0x00000020,
+       VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT                                                                                                                                     = 0x00000040,
+       VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT                                                                                                                          = 0x00000080,
+       VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT                                                                                                            = 0x00000100,
+       VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT                                                                                                          = 0x00000200,
+       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_EXT                                                                                            = 0x00002000,
+       VK_FORMAT_FEATURE_TRANSFER_SRC_BIT                                                                                                                                      = 0x00004000,
+       VK_FORMAT_FEATURE_TRANSFER_DST_BIT                                                                                                                                      = 0x00008000,
+       VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT                                                                                                       = 0x00010000,
+       VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT                                                                                                           = 0x00020000,
+       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT                                                                      = 0x00040000,
+       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT                                     = 0x00080000,
+       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT                                     = 0x00100000,
+       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT           = 0x00200000,
+       VK_FORMAT_FEATURE_DISJOINT_BIT                                                                                                                                          = 0x00400000,
+       VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT                                                                                                            = 0x00800000,
+       VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT                                                                                                          = 0x01000000,
+       VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR                                                                                                           = 0x02000000,
+       VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR                                                                                                                      = 0x04000000,
+       VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR                                                                                                            = 0x08000000,
+       VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR                                                                                                                      = 0x10000000,
+       VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR                                                                          = 0x20000000,
+       VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR                                                                                      = 0x40000000,
+       VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG                                                                                            = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
+       VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR                                                                                                                          = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
+       VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR                                                                                                                          = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
+       VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT                                                                                           = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
+       VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR                                                                                                       = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
+       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR                                                          = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
+       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR                         = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
+       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR                         = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
+       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR       = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
+       VK_FORMAT_FEATURE_DISJOINT_BIT_KHR                                                                                                                                      = VK_FORMAT_FEATURE_DISJOINT_BIT,
+       VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR                                                                                                        = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
+       VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM                                                                                                                            = 0x7FFFFFFF
 };
 
-enum VkSamplerReductionMode
+enum VkFrontFace
 {
-       VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE              = 0,
-       VK_SAMPLER_REDUCTION_MODE_MIN                                   = 1,
-       VK_SAMPLER_REDUCTION_MODE_MAX                                   = 2,
-       VK_SAMPLER_REDUCTION_MODE_LAST,
-       VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT  = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
-       VK_SAMPLER_REDUCTION_MODE_MIN_EXT                               = VK_SAMPLER_REDUCTION_MODE_MIN,
-       VK_SAMPLER_REDUCTION_MODE_MAX_EXT                               = VK_SAMPLER_REDUCTION_MODE_MAX,
-       VK_SAMPLER_REDUCTION_MODE_MAX_ENUM                              = 0x7FFFFFFF,
+       VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
+       VK_FRONT_FACE_CLOCKWISE                 = 1,
+       VK_FRONT_FACE_LAST,
+       VK_FRONT_FACE_MAX_ENUM                  = 0x7FFFFFFF
 };
 
-enum VkSemaphoreType
+enum VkImageAspectFlagBits
 {
-       VK_SEMAPHORE_TYPE_BINARY                = 0,
-       VK_SEMAPHORE_TYPE_TIMELINE              = 1,
-       VK_SEMAPHORE_TYPE_LAST,
-       VK_SEMAPHORE_TYPE_BINARY_KHR    = VK_SEMAPHORE_TYPE_BINARY,
-       VK_SEMAPHORE_TYPE_TIMELINE_KHR  = VK_SEMAPHORE_TYPE_TIMELINE,
-       VK_SEMAPHORE_TYPE_MAX_ENUM              = 0x7FFFFFFF,
+       VK_IMAGE_ASPECT_COLOR_BIT                               = 0x00000001,
+       VK_IMAGE_ASPECT_NONE                                    = 0,
+       VK_IMAGE_ASPECT_DEPTH_BIT                               = 0x00000002,
+       VK_IMAGE_ASPECT_STENCIL_BIT                             = 0x00000004,
+       VK_IMAGE_ASPECT_METADATA_BIT                    = 0x00000008,
+       VK_IMAGE_ASPECT_PLANE_0_BIT                             = 0x00000010,
+       VK_IMAGE_ASPECT_PLANE_1_BIT                             = 0x00000020,
+       VK_IMAGE_ASPECT_PLANE_2_BIT                             = 0x00000040,
+       VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT  = 0x00000080,
+       VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT  = 0x00000100,
+       VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT  = 0x00000200,
+       VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT  = 0x00000400,
+       VK_IMAGE_ASPECT_NONE_KHR                                = VK_IMAGE_ASPECT_NONE,
+       VK_IMAGE_ASPECT_PLANE_0_BIT_KHR                 = VK_IMAGE_ASPECT_PLANE_0_BIT,
+       VK_IMAGE_ASPECT_PLANE_1_BIT_KHR                 = VK_IMAGE_ASPECT_PLANE_1_BIT,
+       VK_IMAGE_ASPECT_PLANE_2_BIT_KHR                 = VK_IMAGE_ASPECT_PLANE_2_BIT,
+       VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM              = 0x7FFFFFFF
 };
 
-enum VkPresentModeKHR
+enum VkImageCreateFlagBits
 {
-       VK_PRESENT_MODE_IMMEDIATE_KHR                                   = 0,
-       VK_PRESENT_MODE_MAILBOX_KHR                                             = 1,
-       VK_PRESENT_MODE_FIFO_KHR                                                = 2,
-       VK_PRESENT_MODE_FIFO_RELAXED_KHR                                = 3,
-       VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR               = 1000111000,
-       VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR   = 1000111001,
-       VK_PRESENT_MODE_MAX_ENUM_KHR                                    = 0x7FFFFFFF,
+       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_2D_ARRAY_COMPATIBLE_BIT                                                 = 0x00000020,
+       VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT                                 = 0x00000040,
+       VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT                                 = 0x00000080,
+       VK_IMAGE_CREATE_EXTENDED_USAGE_BIT                                                              = 0x00000100,
+       VK_IMAGE_CREATE_DISJOINT_BIT                                                                    = 0x00000200,
+       VK_IMAGE_CREATE_ALIAS_BIT                                                                               = 0x00000400,
+       VK_IMAGE_CREATE_PROTECTED_BIT                                                                   = 0x00000800,
+       VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT               = 0x00001000,
+       VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV                                                   = 0x00002000,
+       VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT                                                              = 0x00004000,
+       VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM                    = 0x00008000,
+       VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT                                              = 0x00020000,
+       VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT   = 0x00040000,
+       VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR                                             = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
+       VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR                             = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
+       VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR                             = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
+       VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR                                                  = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
+       VK_IMAGE_CREATE_DISJOINT_BIT_KHR                                                                = VK_IMAGE_CREATE_DISJOINT_BIT,
+       VK_IMAGE_CREATE_ALIAS_BIT_KHR                                                                   = VK_IMAGE_CREATE_ALIAS_BIT,
+       VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM                                                              = 0x7FFFFFFF
 };
 
-enum VkColorSpaceKHR
+enum VkImageLayout
 {
-       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_DISPLAY_P3_LINEAR_EXT            = 1000104003,
-       VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT                     = 1000104004,
-       VK_COLOR_SPACE_BT709_LINEAR_EXT                         = 1000104005,
-       VK_COLOR_SPACE_BT709_NONLINEAR_EXT                      = 1000104006,
-       VK_COLOR_SPACE_BT2020_LINEAR_EXT                        = 1000104007,
-       VK_COLOR_SPACE_HDR10_ST2084_EXT                         = 1000104008,
-       VK_COLOR_SPACE_DOLBYVISION_EXT                          = 1000104009,
-       VK_COLOR_SPACE_HDR10_HLG_EXT                            = 1000104010,
-       VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT                      = 1000104011,
-       VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT           = 1000104012,
-       VK_COLOR_SPACE_PASS_THROUGH_EXT                         = 1000104013,
-       VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT      = 1000104014,
-       VK_COLOR_SPACE_DISPLAY_NATIVE_AMD                       = 1000213000,
-       VK_COLORSPACE_SRGB_NONLINEAR_KHR                        = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
-       VK_COLOR_SPACE_DCI_P3_LINEAR_EXT                        = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
-       VK_COLOR_SPACE_MAX_ENUM_KHR                                     = 0x7FFFFFFF,
+       VK_IMAGE_LAYOUT_UNDEFINED                                                                               = 0,
+       VK_IMAGE_LAYOUT_GENERAL                                                                                 = 1,
+       VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL                                                = 2,
+       VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL                                = 3,
+       VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL                                 = 4,
+       VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL                                                = 5,
+       VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL                                                    = 6,
+       VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL                                                    = 7,
+       VK_IMAGE_LAYOUT_PREINITIALIZED                                                                  = 8,
+       VK_IMAGE_LAYOUT_PRESENT_SRC_KHR                                                                 = 1000001002,
+       VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR                                                    = 1000024000,
+       VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR                                                    = 1000024001,
+       VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR                                                    = 1000024002,
+       VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR                                                              = 1000111000,
+       VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL              = 1000117000,
+       VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL              = 1000117001,
+       VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR    = 1000164003,
+       VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT                                = 1000218000,
+       VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL                                                = 1000241000,
+       VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL                                                 = 1000241001,
+       VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL                                              = 1000241002,
+       VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL                                               = 1000241003,
+       VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR                                                    = 1000299000,
+       VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR                                                    = 1000299001,
+       VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR                                                    = 1000299002,
+       VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL                                                               = 1000314000,
+       VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL                                                              = 1000314001,
+       VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR  = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
+       VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR  = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
+       VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV                                                 = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
+       VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR                                    = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
+       VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR                                             = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
+       VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR                                  = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
+       VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR                                   = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
+       VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR                                                   = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
+       VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR                                                  = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
+       VK_IMAGE_LAYOUT_MAX_ENUM                                                                                = 0x7FFFFFFF
 };
 
-enum VkPerformanceCounterUnitKHR
+enum VkImageTiling
 {
-       VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR                         = 0,
-       VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR                      = 1,
-       VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR                     = 2,
-       VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR                           = 3,
-       VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR        = 4,
-       VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR                          = 5,
-       VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR                           = 6,
-       VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR                           = 7,
-       VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR                            = 8,
-       VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR                           = 9,
-       VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR                          = 10,
-       VK_PERFORMANCE_COUNTER_UNIT_KHR_LAST,
-       VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR                        = 0x7FFFFFFF,
+       VK_IMAGE_TILING_OPTIMAL                                 = 0,
+       VK_IMAGE_TILING_LINEAR                                  = 1,
+       VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
+       VK_IMAGE_TILING_MAX_ENUM                                = 0x7FFFFFFF
 };
 
-enum VkPerformanceCounterScopeKHR
+enum VkImageType
 {
-       VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0,
-       VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR    = 1,
-       VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR                = 2,
-       VK_PERFORMANCE_COUNTER_SCOPE_KHR_LAST,
-       VK_QUERY_SCOPE_COMMAND_BUFFER_KHR                               = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
-       VK_QUERY_SCOPE_RENDER_PASS_KHR                                  = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
-       VK_QUERY_SCOPE_COMMAND_KHR                                              = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
-       VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR               = 0x7FFFFFFF,
+       VK_IMAGE_TYPE_1D                = 0,
+       VK_IMAGE_TYPE_2D                = 1,
+       VK_IMAGE_TYPE_3D                = 2,
+       VK_IMAGE_TYPE_LAST,
+       VK_IMAGE_TYPE_MAX_ENUM  = 0x7FFFFFFF
 };
 
-enum VkPerformanceCounterStorageKHR
+enum VkImageUsageFlagBits
 {
-       VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR        = 0,
-       VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR        = 1,
-       VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR       = 2,
-       VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR       = 3,
-       VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR      = 4,
-       VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR      = 5,
-       VK_PERFORMANCE_COUNTER_STORAGE_KHR_LAST,
-       VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR     = 0x7FFFFFFF,
+       VK_IMAGE_USAGE_TRANSFER_SRC_BIT                                                 = 0x00000001,
+       VK_IMAGE_USAGE_TRANSFER_DST_BIT                                                 = 0x00000002,
+       VK_IMAGE_USAGE_SAMPLED_BIT                                                              = 0x00000004,
+       VK_IMAGE_USAGE_STORAGE_BIT                                                              = 0x00000008,
+       VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT                                             = 0x00000010,
+       VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT                             = 0x00000020,
+       VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT                                 = 0x00000040,
+       VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT                                             = 0x00000080,
+       VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100,
+       VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT                             = 0x00000200,
+       VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR                                 = 0x00000400,
+       VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR                                 = 0x00000800,
+       VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR                                 = 0x00001000,
+       VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR                                 = 0x00002000,
+       VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR                                 = 0x00004000,
+       VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR                                 = 0x00008000,
+       VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI                               = 0x00040000,
+       VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM                                   = 0x00100000,
+       VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM                              = 0x00200000,
+       VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV                                = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
+       VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM                                               = 0x7FFFFFFF
 };
 
-enum VkQueueGlobalPriorityKHR
+enum VkImageViewCreateFlagBits
 {
-       VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR                = 128,
-       VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR             = 256,
-       VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR               = 512,
-       VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR   = 1024,
-       VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT                = VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR,
-       VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT             = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR,
-       VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT               = VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR,
-       VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT   = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR,
-       VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR   = 0x7FFFFFFF,
+       VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT       = 0x00000001,
+       VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT      = 0x00000002,
+       VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM                                         = 0x7FFFFFFF
 };
 
-enum VkFragmentShadingRateCombinerOpKHR
+enum VkImageViewType
 {
-       VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR           = 0,
-       VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR        = 1,
-       VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR            = 2,
-       VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR            = 3,
-       VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR            = 4,
-       VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KHR_LAST,
-       VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR       = 0x7FFFFFFF,
+       VK_IMAGE_VIEW_TYPE_1D                   = 0,
+       VK_IMAGE_VIEW_TYPE_2D                   = 1,
+       VK_IMAGE_VIEW_TYPE_3D                   = 2,
+       VK_IMAGE_VIEW_TYPE_CUBE                 = 3,
+       VK_IMAGE_VIEW_TYPE_1D_ARRAY             = 4,
+       VK_IMAGE_VIEW_TYPE_2D_ARRAY             = 5,
+       VK_IMAGE_VIEW_TYPE_CUBE_ARRAY   = 6,
+       VK_IMAGE_VIEW_TYPE_LAST,
+       VK_IMAGE_VIEW_TYPE_MAX_ENUM             = 0x7FFFFFFF
 };
 
-enum VkPipelineExecutableStatisticFormatKHR
+enum VkSharingMode
 {
-       VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR              = 0,
-       VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR               = 1,
-       VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR              = 2,
-       VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR             = 3,
-       VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_KHR_LAST,
-       VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR    = 0x7FFFFFFF,
+       VK_SHARING_MODE_EXCLUSIVE       = 0,
+       VK_SHARING_MODE_CONCURRENT      = 1,
+       VK_SHARING_MODE_LAST,
+       VK_SHARING_MODE_MAX_ENUM        = 0x7FFFFFFF
 };
 
-enum VkDebugReportObjectTypeEXT
+enum VkIndexType
 {
-       VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT                                                 = 0,
-       VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT                                                = 1,
-       VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT                                 = 2,
-       VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT                                                  = 3,
-       VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT                                                   = 4,
-       VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT                                               = 5,
-       VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT                                  = 6,
-       VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT                                                   = 7,
-       VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT                                   = 8,
-       VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT                                                  = 9,
-       VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT                                                   = 10,
-       VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT                                                   = 11,
-       VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT                                              = 12,
-       VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT                                             = 13,
-       VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT                                              = 14,
-       VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT                                   = 15,
-       VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT                                  = 16,
-       VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT                                 = 17,
-       VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT                                             = 18,
-       VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT                                                = 19,
-       VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT                   = 20,
-       VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT                                                 = 21,
-       VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT                                 = 22,
-       VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT                                  = 23,
-       VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT                                             = 24,
-       VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT                                    = 25,
-       VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT                                             = 26,
-       VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT                                   = 27,
-       VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT               = 28,
-       VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT                                             = 29,
-       VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT                                = 30,
-       VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT                    = 33,
-       VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT                = 1000156000,
-       VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT              = 1000085000,
-       VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT                                   = 1000029000,
-       VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT                                 = 1000029001,
-       VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT              = 1000150000,
-       VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT               = 1000165000,
-       VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT               = 1000366000,
-       VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT                                    = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
-       VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT                                = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
-       VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT  = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
-       VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT    = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
-       VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT                                                = 0x7FFFFFFF,
+       VK_INDEX_TYPE_UINT16    = 0,
+       VK_INDEX_TYPE_UINT32    = 1,
+       VK_INDEX_TYPE_NONE_KHR  = 1000165000,
+       VK_INDEX_TYPE_UINT8_EXT = 1000265000,
+       VK_INDEX_TYPE_NONE_NV   = VK_INDEX_TYPE_NONE_KHR,
+       VK_INDEX_TYPE_MAX_ENUM  = 0x7FFFFFFF
 };
 
-enum VkRasterizationOrderAMD
+enum VkLogicOp
 {
-       VK_RASTERIZATION_ORDER_STRICT_AMD       = 0,
-       VK_RASTERIZATION_ORDER_RELAXED_AMD      = 1,
-       VK_RASTERIZATION_ORDER_AMD_LAST,
-       VK_RASTERIZATION_ORDER_MAX_ENUM_AMD     = 0x7FFFFFFF,
+       VK_LOGIC_OP_CLEAR                       = 0,
+       VK_LOGIC_OP_AND                         = 1,
+       VK_LOGIC_OP_AND_REVERSE         = 2,
+       VK_LOGIC_OP_COPY                        = 3,
+       VK_LOGIC_OP_AND_INVERTED        = 4,
+       VK_LOGIC_OP_NO_OP                       = 5,
+       VK_LOGIC_OP_XOR                         = 6,
+       VK_LOGIC_OP_OR                          = 7,
+       VK_LOGIC_OP_NOR                         = 8,
+       VK_LOGIC_OP_EQUIVALENT          = 9,
+       VK_LOGIC_OP_INVERT                      = 10,
+       VK_LOGIC_OP_OR_REVERSE          = 11,
+       VK_LOGIC_OP_COPY_INVERTED       = 12,
+       VK_LOGIC_OP_OR_INVERTED         = 13,
+       VK_LOGIC_OP_NAND                        = 14,
+       VK_LOGIC_OP_SET                         = 15,
+       VK_LOGIC_OP_LAST,
+       VK_LOGIC_OP_MAX_ENUM            = 0x7FFFFFFF
 };
 
-enum VkShaderInfoTypeAMD
+enum VkMemoryHeapFlagBits
 {
-       VK_SHADER_INFO_TYPE_STATISTICS_AMD      = 0,
-       VK_SHADER_INFO_TYPE_BINARY_AMD          = 1,
-       VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD     = 2,
-       VK_SHADER_INFO_TYPE_AMD_LAST,
-       VK_SHADER_INFO_TYPE_MAX_ENUM_AMD        = 0x7FFFFFFF,
+       VK_MEMORY_HEAP_DEVICE_LOCAL_BIT                 = 0x00000001,
+       VK_MEMORY_HEAP_MULTI_INSTANCE_BIT               = 0x00000002,
+       VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR   = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
+       VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM               = 0x7FFFFFFF
 };
 
-enum VkValidationCheckEXT
+enum VkAccessFlagBits
 {
-       VK_VALIDATION_CHECK_ALL_EXT                     = 0,
-       VK_VALIDATION_CHECK_SHADERS_EXT         = 1,
-       VK_VALIDATION_CHECK_EXT_LAST,
-       VK_VALIDATION_CHECK_MAX_ENUM_EXT        = 0x7FFFFFFF,
+       VK_ACCESS_INDIRECT_COMMAND_READ_BIT                                             = 0x00000001,
+       VK_ACCESS_NONE                                                                                  = 0,
+       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_PREPROCESS_READ_BIT_NV                                = 0x00020000,
+       VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV                               = 0x00040000,
+       VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT             = 0x00080000,
+       VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT                    = 0x00100000,
+       VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR                   = 0x00200000,
+       VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR                  = 0x00400000,
+       VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000,
+       VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT                             = 0x01000000,
+       VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT                              = 0x02000000,
+       VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT               = 0x04000000,
+       VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT              = 0x08000000,
+       VK_ACCESS_NONE_KHR                                                                              = VK_ACCESS_NONE,
+       VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV                    = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
+       VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV                   = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
+       VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV                                = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
+       VK_ACCESS_FLAG_BITS_MAX_ENUM                                                    = 0x7FFFFFFF
 };
 
-enum VkPipelineRobustnessBufferBehaviorEXT
+enum VkMemoryPropertyFlagBits
 {
-       VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT                       = 0,
-       VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT                                     = 1,
-       VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT         = 2,
-       VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT       = 3,
-       VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_EXT_LAST,
-       VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT                                     = 0x7FFFFFFF,
+       VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT                     = 0x00000001,
+       VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT                     = 0x00000002,
+       VK_MEMORY_PROPERTY_HOST_COHERENT_BIT            = 0x00000004,
+       VK_MEMORY_PROPERTY_HOST_CACHED_BIT                      = 0x00000008,
+       VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT         = 0x00000010,
+       VK_MEMORY_PROPERTY_PROTECTED_BIT                        = 0x00000020,
+       VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD      = 0x00000040,
+       VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD      = 0x00000080,
+       VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV          = 0x00000100,
+       VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM           = 0x7FFFFFFF
 };
 
-enum VkPipelineRobustnessImageBehaviorEXT
+enum VkPhysicalDeviceType
 {
-       VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT                = 0,
-       VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT                              = 1,
-       VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT   = 2,
-       VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3,
-       VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_EXT_LAST,
-       VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT                              = 0x7FFFFFFF,
+       VK_PHYSICAL_DEVICE_TYPE_OTHER                   = 0,
+       VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU  = 1,
+       VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU    = 2,
+       VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU             = 3,
+       VK_PHYSICAL_DEVICE_TYPE_CPU                             = 4,
+       VK_PHYSICAL_DEVICE_TYPE_LAST,
+       VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM                = 0x7FFFFFFF
 };
 
-enum VkDisplayPowerStateEXT
+enum VkPipelineBindPoint
 {
-       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,
-       VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT     = 0x7FFFFFFF,
+       VK_PIPELINE_BIND_POINT_GRAPHICS                                 = 0,
+       VK_PIPELINE_BIND_POINT_COMPUTE                                  = 1,
+       VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR                  = 1000165000,
+       VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI   = 1000369003,
+       VK_PIPELINE_BIND_POINT_RAY_TRACING_NV                   = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
+       VK_PIPELINE_BIND_POINT_MAX_ENUM                                 = 0x7FFFFFFF
 };
 
-enum VkDeviceEventTypeEXT
+enum VkPipelineCreateFlagBits
 {
-       VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT        = 0,
-       VK_DEVICE_EVENT_TYPE_EXT_LAST,
-       VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT                       = 0x7FFFFFFF,
+       VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT                                                                             = 0x00000001,
+       VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT                                                                                = 0x00000002,
+       VK_PIPELINE_CREATE_DERIVATIVE_BIT                                                                                               = 0x00000004,
+       VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT                                                             = 0x00000008,
+       VK_PIPELINE_CREATE_DISPATCH_BASE_BIT                                                                                    = 0x00000010,
+       VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV                                                                                 = 0x00000020,
+       VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR                                                                   = 0x00000040,
+       VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR                                             = 0x00000080,
+       VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT                                                = 0x00000100,
+       VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT                                                                  = 0x00000200,
+       VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT                                                               = 0x00000400,
+       VK_PIPELINE_CREATE_LIBRARY_BIT_KHR                                                                                              = 0x00000800,
+       VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR                                                   = 0x00001000,
+       VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR                                                               = 0x00002000,
+       VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR                                  = 0x00004000,
+       VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR                              = 0x00008000,
+       VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR                                             = 0x00010000,
+       VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR                             = 0x00020000,
+       VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV                                                                             = 0x00040000,
+       VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR               = 0x00080000,
+       VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV                                                              = 0x00100000,
+       VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR                   = 0x00200000,
+       VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT                    = 0x00400000,
+       VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT                                   = 0x00800000,
+       VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR                                                 = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
+       VK_PIPELINE_CREATE_DISPATCH_BASE                                                                                                = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
+       VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT                                    = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,
+       VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT                                                              = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,
+       VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
+       VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT  = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
+       VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM                                                                                   = 0x7FFFFFFF
 };
 
-enum VkDisplayEventTypeEXT
+enum VkPrimitiveTopology
 {
-       VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT       = 0,
-       VK_DISPLAY_EVENT_TYPE_EXT_LAST,
-       VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT                      = 0x7FFFFFFF,
+       VK_PRIMITIVE_TOPOLOGY_POINT_LIST                                        = 0,
+       VK_PRIMITIVE_TOPOLOGY_LINE_LIST                                         = 1,
+       VK_PRIMITIVE_TOPOLOGY_LINE_STRIP                                        = 2,
+       VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST                                     = 3,
+       VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP                            = 4,
+       VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN                                      = 5,
+       VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY          = 6,
+       VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY         = 7,
+       VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY      = 8,
+       VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY     = 9,
+       VK_PRIMITIVE_TOPOLOGY_PATCH_LIST                                        = 10,
+       VK_PRIMITIVE_TOPOLOGY_LAST,
+       VK_PRIMITIVE_TOPOLOGY_MAX_ENUM                                          = 0x7FFFFFFF
 };
 
-enum VkViewportCoordinateSwizzleNV
+enum VkQueryControlFlagBits
 {
-       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,
-       VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV              = 0x7FFFFFFF,
+       VK_QUERY_CONTROL_PRECISE_BIT            = 0x00000001,
+       VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM     = 0x7FFFFFFF
 };
 
-enum VkDiscardRectangleModeEXT
+enum VkQueryPipelineStatisticFlagBits
 {
-       VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
-       VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
-       VK_DISCARD_RECTANGLE_MODE_EXT_LAST,
-       VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT  = 0x7FFFFFFF,
+       VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT                                         = 0x00000001,
+       VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT                                       = 0x00000002,
+       VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT                                       = 0x00000004,
+       VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT                                     = 0x00000008,
+       VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT                                      = 0x00000010,
+       VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT                                            = 0x00000020,
+       VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT                                                     = 0x00000040,
+       VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT                                     = 0x00000080,
+       VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT                     = 0x00000100,
+       VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT      = 0x00000200,
+       VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT                                      = 0x00000400,
+       VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM                                                          = 0x7FFFFFFF
 };
 
-enum VkConservativeRasterizationModeEXT
+enum VkQueryResultFlagBits
 {
-       VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT                 = 0,
-       VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT             = 1,
-       VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT    = 2,
-       VK_CONSERVATIVE_RASTERIZATION_MODE_EXT_LAST,
-       VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT                 = 0x7FFFFFFF,
+       VK_QUERY_RESULT_64_BIT                                  = 0x00000001,
+       VK_QUERY_RESULT_WAIT_BIT                                = 0x00000002,
+       VK_QUERY_RESULT_WITH_AVAILABILITY_BIT   = 0x00000004,
+       VK_QUERY_RESULT_PARTIAL_BIT                             = 0x00000008,
+       VK_QUERY_RESULT_WITH_STATUS_BIT_KHR             = 0x00000010,
+       VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM              = 0x7FFFFFFF
 };
 
-enum VkBlendOverlapEXT
+enum VkQueryType
 {
-       VK_BLEND_OVERLAP_UNCORRELATED_EXT       = 0,
-       VK_BLEND_OVERLAP_DISJOINT_EXT           = 1,
-       VK_BLEND_OVERLAP_CONJOINT_EXT           = 2,
-       VK_BLEND_OVERLAP_EXT_LAST,
-       VK_BLEND_OVERLAP_MAX_ENUM_EXT           = 0x7FFFFFFF,
+       VK_QUERY_TYPE_OCCLUSION                                                                                                                 = 0,
+       VK_QUERY_TYPE_PIPELINE_STATISTICS                                                                                               = 1,
+       VK_QUERY_TYPE_TIMESTAMP                                                                                                                 = 2,
+       VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR                                                                                    = 1000023000,
+       VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT                                                                             = 1000028004,
+       VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR                                                                                             = 1000116000,
+       VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR                                                 = 1000150000,
+       VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR                                             = 1000150001,
+       VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV                                                  = 1000165000,
+       VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL                                                                                   = 1000210000,
+       VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR                                                   = 1000299000,
+       VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT                                                                                  = 1000382000,
+       VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR    = 1000386000,
+       VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR                                                                   = 1000386001,
+       VK_QUERY_TYPE_MAX_ENUM                                                                                                                  = 0x7FFFFFFF
 };
 
-enum VkCoverageModulationModeNV
+enum VkQueueFlagBits
 {
-       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,
-       VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF,
+       VK_QUEUE_GRAPHICS_BIT                   = 0x00000001,
+       VK_QUEUE_COMPUTE_BIT                    = 0x00000002,
+       VK_QUEUE_TRANSFER_BIT                   = 0x00000004,
+       VK_QUEUE_SPARSE_BINDING_BIT             = 0x00000008,
+       VK_QUEUE_PROTECTED_BIT                  = 0x00000010,
+       VK_QUEUE_VIDEO_DECODE_BIT_KHR   = 0x00000020,
+       VK_QUEUE_VIDEO_ENCODE_BIT_KHR   = 0x00000040,
+       VK_QUEUE_FLAG_BITS_MAX_ENUM             = 0x7FFFFFFF
 };
 
-enum VkValidationCacheHeaderVersionEXT
+enum VkSubpassContents
 {
-       VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT              = 1,
-       VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF,
+       VK_SUBPASS_CONTENTS_INLINE                                              = 0,
+       VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS   = 1,
+       VK_SUBPASS_CONTENTS_LAST,
+       VK_SUBPASS_CONTENTS_MAX_ENUM                                    = 0x7FFFFFFF
 };
 
-enum VkShadingRatePaletteEntryNV
+enum VkResult
 {
-       VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV                                 = 0,
-       VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV               = 1,
-       VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV                = 2,
-       VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV                = 3,
-       VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV                = 4,
-       VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV                 = 5,
-       VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV    = 6,
-       VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV    = 7,
-       VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV    = 8,
-       VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV    = 9,
-       VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV    = 10,
-       VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV    = 11,
-       VK_SHADING_RATE_PALETTE_ENTRY_NV_LAST,
-       VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV                                               = 0x7FFFFFFF,
+       VK_ERROR_COMPRESSION_EXHAUSTED_EXT                                              = -1000338000,
+       VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS                                 = -1000257000,
+       VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT                    = -1000255000,
+       VK_ERROR_NOT_PERMITTED_KHR                                                              = -1000174001,
+       VK_ERROR_FRAGMENTATION                                                                  = -1000161000,
+       VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT   = -1000158000,
+       VK_ERROR_INVALID_EXTERNAL_HANDLE                                                = -1000072003,
+       VK_ERROR_OUT_OF_POOL_MEMORY                                                             = -1000069000,
+       VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR                    = -1000023005,
+       VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR                  = -1000023004,
+       VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR                 = -1000023003,
+       VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR              = -1000023002,
+       VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR                 = -1000023001,
+       VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR                                  = -1000023000,
+       VK_ERROR_INVALID_SHADER_NV                                                              = -1000012000,
+       VK_ERROR_VALIDATION_FAILED_EXT                                                  = -1000011001,
+       VK_ERROR_INCOMPATIBLE_DISPLAY_KHR                                               = -1000003001,
+       VK_ERROR_OUT_OF_DATE_KHR                                                                = -1000001004,
+       VK_ERROR_NATIVE_WINDOW_IN_USE_KHR                                               = -1000000001,
+       VK_ERROR_SURFACE_LOST_KHR                                                               = -1000000000,
+       VK_ERROR_UNKNOWN                                                                                = -13,
+       VK_ERROR_FRAGMENTED_POOL                                                                = -12,
+       VK_ERROR_FORMAT_NOT_SUPPORTED                                                   = -11,
+       VK_ERROR_TOO_MANY_OBJECTS                                                               = -10,
+       VK_ERROR_INCOMPATIBLE_DRIVER                                                    = -9,
+       VK_ERROR_FEATURE_NOT_PRESENT                                                    = -8,
+       VK_ERROR_EXTENSION_NOT_PRESENT                                                  = -7,
+       VK_ERROR_LAYER_NOT_PRESENT                                                              = -6,
+       VK_ERROR_MEMORY_MAP_FAILED                                                              = -5,
+       VK_ERROR_DEVICE_LOST                                                                    = -4,
+       VK_ERROR_INITIALIZATION_FAILED                                                  = -3,
+       VK_ERROR_OUT_OF_DEVICE_MEMORY                                                   = -2,
+       VK_ERROR_OUT_OF_HOST_MEMORY                                                             = -1,
+       VK_SUCCESS                                                                                              = 0,
+       VK_NOT_READY                                                                                    = 1,
+       VK_TIMEOUT                                                                                              = 2,
+       VK_EVENT_SET                                                                                    = 3,
+       VK_EVENT_RESET                                                                                  = 4,
+       VK_INCOMPLETE                                                                                   = 5,
+       VK_SUBOPTIMAL_KHR                                                                               = 1000001003,
+       VK_THREAD_IDLE_KHR                                                                              = 1000268000,
+       VK_THREAD_DONE_KHR                                                                              = 1000268001,
+       VK_OPERATION_DEFERRED_KHR                                                               = 1000268002,
+       VK_OPERATION_NOT_DEFERRED_KHR                                                   = 1000268003,
+       VK_PIPELINE_COMPILE_REQUIRED                                                    = 1000297000,
+       VK_ERROR_INVALID_DEVICE_ADDRESS_EXT                                             = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
+       VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR                             = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
+       VK_ERROR_NOT_PERMITTED_EXT                                                              = VK_ERROR_NOT_PERMITTED_KHR,
+       VK_ERROR_FRAGMENTATION_EXT                                                              = VK_ERROR_FRAGMENTATION,
+       VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR                                    = VK_ERROR_INVALID_EXTERNAL_HANDLE,
+       VK_ERROR_OUT_OF_POOL_MEMORY_KHR                                                 = VK_ERROR_OUT_OF_POOL_MEMORY,
+       VK_PIPELINE_COMPILE_REQUIRED_EXT                                                = VK_PIPELINE_COMPILE_REQUIRED,
+       VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT                                  = VK_PIPELINE_COMPILE_REQUIRED,
+       VK_RESULT_MAX_ENUM                                                                              = 0x7FFFFFFF
 };
 
-enum VkCoarseSampleOrderTypeNV
+enum VkShaderStageFlagBits
 {
-       VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV          = 0,
-       VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV           = 1,
-       VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV      = 2,
-       VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV     = 3,
-       VK_COARSE_SAMPLE_ORDER_TYPE_NV_LAST,
-       VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV         = 0x7FFFFFFF,
+       VK_SHADER_STAGE_VERTEX_BIT                                      = 0x00000001,
+       VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT        = 0x00000002,
+       VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT     = 0x00000004,
+       VK_SHADER_STAGE_GEOMETRY_BIT                            = 0x00000008,
+       VK_SHADER_STAGE_FRAGMENT_BIT                            = 0x00000010,
+       VK_SHADER_STAGE_COMPUTE_BIT                                     = 0x00000020,
+       VK_SHADER_STAGE_TASK_BIT_NV                                     = 0x00000040,
+       VK_SHADER_STAGE_MESH_BIT_NV                                     = 0x00000080,
+       VK_SHADER_STAGE_RAYGEN_BIT_KHR                          = 0x00000100,
+       VK_SHADER_STAGE_ANY_HIT_BIT_KHR                         = 0x00000200,
+       VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR                     = 0x00000400,
+       VK_SHADER_STAGE_MISS_BIT_KHR                            = 0x00000800,
+       VK_SHADER_STAGE_INTERSECTION_BIT_KHR            = 0x00001000,
+       VK_SHADER_STAGE_CALLABLE_BIT_KHR                        = 0x00002000,
+       VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI      = 0x00004000,
+       VK_SHADER_STAGE_ALL_GRAPHICS                            = 0x0000001F,
+       VK_SHADER_STAGE_ALL                                                     = 0x7FFFFFFF,
+       VK_SHADER_STAGE_RAYGEN_BIT_NV                           = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
+       VK_SHADER_STAGE_ANY_HIT_BIT_NV                          = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
+       VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV                      = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
+       VK_SHADER_STAGE_MISS_BIT_NV                                     = VK_SHADER_STAGE_MISS_BIT_KHR,
+       VK_SHADER_STAGE_INTERSECTION_BIT_NV                     = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
+       VK_SHADER_STAGE_CALLABLE_BIT_NV                         = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
+       VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM                      = 0x7FFFFFFF
 };
 
-enum VkRayTracingShaderGroupTypeKHR
+enum VkSparseMemoryBindFlagBits
 {
-       VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR                            = 0,
-       VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR        = 1,
-       VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR       = 2,
-       VK_RAY_TRACING_SHADER_GROUP_TYPE_KHR_LAST,
-       VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV                                     = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
-       VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV         = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
-       VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV        = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
-       VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR                           = 0x7FFFFFFF,
+       VK_SPARSE_MEMORY_BIND_METADATA_BIT                      = 0x00000001,
+       VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM        = 0x7FFFFFFF
 };
 
-enum VkGeometryTypeKHR
+enum VkStencilFaceFlagBits
 {
-       VK_GEOMETRY_TYPE_TRIANGLES_KHR  = 0,
-       VK_GEOMETRY_TYPE_AABBS_KHR              = 1,
-       VK_GEOMETRY_TYPE_INSTANCES_KHR  = 2,
-       VK_GEOMETRY_TYPE_KHR_LAST,
-       VK_GEOMETRY_TYPE_TRIANGLES_NV   = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
-       VK_GEOMETRY_TYPE_AABBS_NV               = VK_GEOMETRY_TYPE_AABBS_KHR,
-       VK_GEOMETRY_TYPE_MAX_ENUM_KHR   = 0x7FFFFFFF,
+       VK_STENCIL_FACE_FRONT_BIT                       = 0x00000001,
+       VK_STENCIL_FACE_BACK_BIT                        = 0x00000002,
+       VK_STENCIL_FACE_FRONT_AND_BACK          = 0x00000003,
+       VK_STENCIL_FRONT_AND_BACK                       = VK_STENCIL_FACE_FRONT_AND_BACK,
+       VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM      = 0x7FFFFFFF
 };
 
-enum VkAccelerationStructureTypeKHR
+enum VkStencilOp
 {
-       VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR    = 0,
-       VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
-       VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR              = 2,
-       VK_ACCELERATION_STRUCTURE_TYPE_KHR_LAST,
-       VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV             = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
-       VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV  = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
-       VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR             = 0x7FFFFFFF,
+       VK_STENCIL_OP_KEEP                                      = 0,
+       VK_STENCIL_OP_ZERO                                      = 1,
+       VK_STENCIL_OP_REPLACE                           = 2,
+       VK_STENCIL_OP_INCREMENT_AND_CLAMP       = 3,
+       VK_STENCIL_OP_DECREMENT_AND_CLAMP       = 4,
+       VK_STENCIL_OP_INVERT                            = 5,
+       VK_STENCIL_OP_INCREMENT_AND_WRAP        = 6,
+       VK_STENCIL_OP_DECREMENT_AND_WRAP        = 7,
+       VK_STENCIL_OP_LAST,
+       VK_STENCIL_OP_MAX_ENUM                          = 0x7FFFFFFF
+};
+
+enum VkStructureType
+{
+       VK_STRUCTURE_TYPE_APPLICATION_INFO                                                                                                              = 0,
+       VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO                                                                                                  = 1,
+       VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO                                                                                              = 2,
+       VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO                                                                                                    = 3,
+       VK_STRUCTURE_TYPE_SUBMIT_INFO                                                                                                                   = 4,
+       VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO                                                                                                  = 5,
+       VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE                                                                                                   = 6,
+       VK_STRUCTURE_TYPE_BIND_SPARSE_INFO                                                                                                              = 7,
+       VK_STRUCTURE_TYPE_FENCE_CREATE_INFO                                                                                                             = 8,
+       VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO                                                                                                 = 9,
+       VK_STRUCTURE_TYPE_EVENT_CREATE_INFO                                                                                                             = 10,
+       VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO                                                                                                = 11,
+       VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO                                                                                                    = 12,
+       VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO                                                                                               = 13,
+       VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO                                                                                                             = 14,
+       VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO                                                                                                = 15,
+       VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO                                                                                             = 16,
+       VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO                                                                                    = 17,
+       VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO                                                                             = 18,
+       VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO                                                               = 19,
+       VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO                                                             = 20,
+       VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO                                                               = 21,
+       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO                                                                   = 22,
+       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO                                                              = 23,
+       VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO                                                                = 24,
+       VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO                                                              = 25,
+       VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO                                                                = 26,
+       VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO                                                                    = 27,
+       VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO                                                                                 = 28,
+       VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO                                                                                  = 29,
+       VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO                                                                                   = 30,
+       VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO                                                                                                   = 31,
+       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO                                                                             = 32,
+       VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO                                                                                   = 33,
+       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO                                                                                  = 34,
+       VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET                                                                                                  = 35,
+       VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET                                                                                                   = 36,
+       VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO                                                                                               = 37,
+       VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO                                                                                               = 38,
+       VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO                                                                                              = 39,
+       VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO                                                                                  = 40,
+       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO                                                                               = 41,
+       VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO                                                                                             = 42,
+       VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO                                                                                                = 43,
+       VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER                                                                                                 = 44,
+       VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER                                                                                                  = 45,
+       VK_STRUCTURE_TYPE_MEMORY_BARRIER                                                                                                                = 46,
+       VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO                                                                                   = 47,
+       VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO                                                                                             = 48,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES                                                                   = 49,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES                                                                 = 50,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES                                                                   = 51,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES                                                                 = 52,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES                                                                   = 53,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES                                                                 = 54,
+       VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR                                                                                             = 1000001000,
+       VK_STRUCTURE_TYPE_PRESENT_INFO_KHR                                                                                                              = 1000001001,
+       VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR                                                                                  = 1000002000,
+       VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR                                                                               = 1000002001,
+       VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR                                                                                              = 1000003000,
+       VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR                                                                                  = 1000004000,
+       VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR                                                                                   = 1000005000,
+       VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR                                                                               = 1000006000,
+       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_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_VIDEO_PROFILE_KHR                                                                                                             = 1000023000,
+       VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR                                                                                                = 1000023001,
+       VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR                                                                                    = 1000023002,
+       VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR                                                                               = 1000023003,
+       VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR                                                                                                 = 1000023004,
+       VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR                                                                                 = 1000023005,
+       VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR                                                              = 1000023006,
+       VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR                                                              = 1000023007,
+       VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR                                                                                   = 1000023008,
+       VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR                                                                                             = 1000023009,
+       VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR                                                                                 = 1000023010,
+       VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR                                                                                              = 1000023011,
+       VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR                                                                   = 1000023012,
+       VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR                                                                                                    = 1000023013,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR                                                                 = 1000023014,
+       VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR                                                                                   = 1000023015,
+       VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR                                             = 1000023016,
+       VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR                                                                                                 = 1000024000,
+       VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR                                                                                 = 1000024001,
+       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_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT                                               = 1000028000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT                                             = 1000028001,
+       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT                                   = 1000028002,
+       VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX                                                                                             = 1000029000,
+       VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX                                                                                   = 1000029001,
+       VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX                                                                                                    = 1000029002,
+       VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX                                                                                    = 1000030000,
+       VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX                                                                             = 1000030001,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT                                                                    = 1000038000,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT                                  = 1000038001,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT                                             = 1000038002,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT                                                                  = 1000038003,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT                                                                   = 1000038004,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT                                                                              = 1000038005,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT                                                 = 1000038006,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT                                                                                 = 1000038007,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT                                                               = 1000038008,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT                                                 = 1000038009,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_EXT                                                                 = 1000038010,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT                                                                    = 1000039000,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT                                  = 1000039001,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT                                             = 1000039002,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT                                                                  = 1000039003,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT                                                                   = 1000039004,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_EXT                                                              = 1000039005,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT                                                 = 1000039006,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT                                                                                 = 1000039007,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT                                                                 = 1000039008,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT                                                               = 1000039009,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT                                                 = 1000039010,
+       VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT                                                                    = 1000040000,
+       VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT                                                                    = 1000040001,
+       VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT                                                                                             = 1000040002,
+       VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT                                                                                 = 1000040003,
+       VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT                                  = 1000040004,
+       VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT                                             = 1000040005,
+       VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT                                                                   = 1000040006,
+       VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD                                                              = 1000041000,
+       VK_STRUCTURE_TYPE_RENDERING_INFO                                                                                                                = 1000044000,
+       VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO                                                                                             = 1000044001,
+       VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO                                                                                = 1000044002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES                                                    = 1000044003,
+       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO                                                             = 1000044004,
+       VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR                                   = 1000044006,
+       VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT                                    = 1000044007,
+       VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD                                                                              = 1000044008,
+       VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX                                                                = 1000044009,
+       VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP                                                             = 1000049000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV                                              = 1000050000,
+       VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO                                                                             = 1000053000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES                                                                    = 1000053001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES                                                                  = 1000053002,
+       VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV                                                                  = 1000056000,
+       VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV                                                                                = 1000056001,
+       VK_STRUCTURE_TYPE_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                                                                                    = 1000059000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2                                                                                  = 1000059001,
+       VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2                                                                                                   = 1000059002,
+       VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2                                                                                             = 1000059003,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2                                                                   = 1000059004,
+       VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2                                                                                             = 1000059005,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2                                                                   = 1000059006,
+       VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2                                                                              = 1000059007,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2                                                    = 1000059008,
+       VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO                                                                                    = 1000060000,
+       VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO                                                                   = 1000060003,
+       VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO                                                                = 1000060004,
+       VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO                                                                                              = 1000060005,
+       VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO                                                                                 = 1000060006,
+       VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR                                                                 = 1000060007,
+       VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR                                                                               = 1000060008,
+       VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR                                                                  = 1000060009,
+       VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR                                                                                   = 1000060010,
+       VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR                                                                                 = 1000060011,
+       VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR                                                                = 1000060012,
+       VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO                                                                  = 1000060013,
+       VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO                                                                   = 1000060014,
+       VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT                                                                                                  = 1000061000,
+       VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN                                                                                             = 1000062000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES                                               = 1000063000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES                                 = 1000066000,
+       VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT                                                                               = 1000067000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT                                                              = 1000067001,
+       VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT                                                                   = 1000068000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT                                              = 1000068001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT                                    = 1000068002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES                                                                              = 1000070000,
+       VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO                                                                               = 1000070001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO                                                    = 1000071000,
+       VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES                                                                              = 1000071001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO                                                                  = 1000071002,
+       VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES                                                                                    = 1000071003,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES                                                                                 = 1000071004,
+       VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO                                                                    = 1000072000,
+       VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO                                                                             = 1000072001,
+       VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO                                                                                   = 1000072002,
+       VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR                                                                   = 1000073000,
+       VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR                                                                   = 1000073001,
+       VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR                                                                    = 1000073002,
+       VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR                                                                              = 1000073003,
+       VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR                                                                                             = 1000074000,
+       VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR                                                                                              = 1000074001,
+       VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR                                                                                                = 1000074002,
+       VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR                                                    = 1000075000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO                                                               = 1000076000,
+       VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES                                                                                 = 1000076001,
+       VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO                                                                                  = 1000077000,
+       VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR                                                                = 1000078000,
+       VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR                                                                = 1000078001,
+       VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR                                                                                   = 1000078002,
+       VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR                                                                   = 1000078003,
+       VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR                                                                                  = 1000079000,
+       VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR                                                                                             = 1000079001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR                                                = 1000080000,
+       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT                             = 1000081000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT                                    = 1000081001,
+       VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT                                                                  = 1000081002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES                                                  = 1000082000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES                                                                = 1000083000,
+       VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR                                                                                                   = 1000084000,
+       VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO                                                                = 1000085000,
+       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV                                              = 1000087000,
+       VK_STRUCTURE_TYPE_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                                                                   = 1000094000,
+       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_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT                             = 1000101000,
+       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT                             = 1000101001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT                                                = 1000102000,
+       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT                               = 1000102001,
+       VK_STRUCTURE_TYPE_HDR_METADATA_EXT                                                                                                              = 1000105000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES                                                = 1000108000,
+       VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO                                                                   = 1000108001,
+       VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO                                                                             = 1000108002,
+       VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO                                                                             = 1000108003,
+       VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2                                                                                              = 1000109000,
+       VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2                                                                                                = 1000109001,
+       VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2                                                                                                 = 1000109002,
+       VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2                                                                                                  = 1000109003,
+       VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2                                                                                             = 1000109004,
+       VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO                                                                                                    = 1000109005,
+       VK_STRUCTURE_TYPE_SUBPASS_END_INFO                                                                                                              = 1000109006,
+       VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR                                                               = 1000111000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO                                                                   = 1000112000,
+       VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES                                                                                             = 1000112001,
+       VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO                                                                                              = 1000113000,
+       VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR                                                                    = 1000114000,
+       VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR                                                                    = 1000114001,
+       VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR                                                                               = 1000114002,
+       VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR                                                                                              = 1000115000,
+       VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR                                                                                                 = 1000115001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR                                                = 1000116000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR                                              = 1000116001,
+       VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR                                                                = 1000116002,
+       VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR                                                                             = 1000116003,
+       VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR                                                                               = 1000116004,
+       VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR                                                                                               = 1000116005,
+       VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR                                                                   = 1000116006,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES                                                             = 1000117000,
+       VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO                                               = 1000117001,
+       VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO                                                                                  = 1000117002,
+       VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO                                 = 1000117003,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR                                                                    = 1000119000,
+       VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR                                                                                    = 1000119001,
+       VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR                                                                                                  = 1000119002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES                                                    = 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                                                                                 = 1000127000,
+       VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO                                                                                = 1000127001,
+       VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT                                                                              = 1000128000,
+       VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT                                                                               = 1000128001,
+       VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT                                                                                                 = 1000128002,
+       VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT                                                               = 1000128003,
+       VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT                                                                 = 1000128004,
+       VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID                                                                 = 1000129000,
+       VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID                                                    = 1000129001,
+       VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID                                             = 1000129002,
+       VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID                                                   = 1000129003,
+       VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID                                               = 1000129004,
+       VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID                                                                                               = 1000129005,
+       VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID                                   = 1000129006,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES                                              = 1000130000,
+       VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO                                                                    = 1000130001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES                                                 = 1000138000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES                                               = 1000138001,
+       VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK                                                             = 1000138002,
+       VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO                                              = 1000138003,
+       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                                                                                                 = 1000145000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES                                                             = 1000145001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES                                                   = 1000145002,
+       VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2                                                                                                   = 1000145003,
+       VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2                                                                             = 1000146000,
+       VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2                                                                              = 1000146001,
+       VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2                                                               = 1000146002,
+       VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2                                                                                                 = 1000146003,
+       VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2                                                                    = 1000146004,
+       VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO                                                                                 = 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_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR                                                = 1000150000,
+       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR                                                = 1000150002,
+       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR                                                = 1000150003,
+       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR                                    = 1000150004,
+       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR                                    = 1000150005,
+       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR                                                                   = 1000150006,
+       VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR                                               = 1000150007,
+       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR                                                               = 1000150009,
+       VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR                                                                  = 1000150010,
+       VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR                                                = 1000150011,
+       VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR                                                = 1000150012,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR                                   = 1000150013,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR                                 = 1000150014,
+       VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR                                                                  = 1000150015,
+       VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR                                                              = 1000150016,
+       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR                                                                = 1000150017,
+       VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR                                                = 1000150018,
+       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR                                                   = 1000150020,
+       VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV                                             = 1000152000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV                                                = 1000154000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV                                              = 1000154001,
+       VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO                                                                  = 1000156000,
+       VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO                                                                                 = 1000156001,
+       VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO                                                                                  = 1000156002,
+       VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO                                                                  = 1000156003,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES                                             = 1000156004,
+       VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES                                              = 1000156005,
+       VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO                                                                                               = 1000157000,
+       VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO                                                                                                = 1000157001,
+       VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT                                                               = 1000158000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT                                    = 1000158002,
+       VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT                                                = 1000158003,
+       VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT                                    = 1000158004,
+       VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT                                                              = 1000158005,
+       VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT                                                             = 1000158006,
+       VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT                                                                              = 1000160000,
+       VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT                                                = 1000160001,
+       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO                                               = 1000161000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES                                                  = 1000161001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES                                                = 1000161002,
+       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO                                = 1000161003,
+       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT                               = 1000161004,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR                                               = 1000163000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR                                             = 1000163001,
+       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV                             = 1000164000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV                                                = 1000164001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV                                              = 1000164002,
+       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV                    = 1000164005,
+       VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV                                                                   = 1000165000,
+       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV                                                                 = 1000165001,
+       VK_STRUCTURE_TYPE_GEOMETRY_NV                                                                                                                   = 1000165003,
+       VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV                                                                                                 = 1000165004,
+       VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV                                                                                                              = 1000165005,
+       VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV                                                    = 1000165006,
+       VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV                                                = 1000165007,
+       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV                                    = 1000165008,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV                                                             = 1000165009,
+       VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV                                                               = 1000165011,
+       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV                                                                                = 1000165012,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV                              = 1000166000,
+       VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV                    = 1000166001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES                                                              = 1000168000,
+       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT                                                                                 = 1000168001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT                                              = 1000170000,
+       VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT                                   = 1000170001,
+       VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR                                                  = 1000174000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES                               = 1000175000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES                                                                 = 1000177000,
+       VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT                                                                   = 1000178000,
+       VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT                                                                    = 1000178001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT                                   = 1000178002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES                                                  = 1000180000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR                                                             = 1000181000,
+       VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD                                                             = 1000183000,
+       VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT                                                                                 = 1000184000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD                                                    = 1000185000,
+       VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT                                                                    = 1000187000,
+       VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT                                  = 1000187001,
+       VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT                                             = 1000187002,
+       VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT                                                                                 = 1000187003,
+       VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT                                                                    = 1000187004,
+       VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT                                                                   = 1000187005,
+       VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD                                                  = 1000189000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT                               = 1000190000,
+       VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT                                   = 1000190001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT                                 = 1000190002,
+       VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP                                                                                               = 1000191000,
+       VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO                                                                = 1000192000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES                                                                             = 1000196000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES                                                             = 1000197000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES                                              = 1000199000,
+       VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE                                                             = 1000199001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV                                = 1000201000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV                                                               = 1000202000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV                                                             = 1000202001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR                              = 1000203000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV                                    = 1000204000,
+       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV                              = 1000205000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV                                                 = 1000205002,
+       VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV                                                                                                    = 1000206000,
+       VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV                                                                 = 1000206001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES                                                   = 1000207000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES                                                 = 1000207001,
+       VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO                                                                                    = 1000207002,
+       VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO                                                                                = 1000207003,
+       VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO                                                                                                   = 1000207004,
+       VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO                                                                                                 = 1000207005,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL                             = 1000209000,
+       VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL                                                = 1000210000,
+       VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL                                                                 = 1000210001,
+       VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL                                                                                 = 1000210002,
+       VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL                                                                  = 1000210003,
+       VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL                                                                               = 1000210004,
+       VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL                                                  = 1000210005,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES                                                  = 1000211000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT                                                   = 1000212000,
+       VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD                                                   = 1000213000,
+       VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD                                                  = 1000213001,
+       VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA                                                                 = 1000214000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES                                  = 1000215000,
+       VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT                                                                                 = 1000217000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT                                             = 1000218000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT                                   = 1000218001,
+       VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT                                              = 1000218002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES                                                  = 1000221000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES                                              = 1000225000,
+       VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO                              = 1000225001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES                                                = 1000225002,
+       VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR                                                             = 1000226000,
+       VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR                                  = 1000226001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR                                  = 1000226002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR                                    = 1000226003,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR                                                             = 1000226004,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD                                                  = 1000227000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD                                                  = 1000229000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT                                = 1000234000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT                                                  = 1000237000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT                                                  = 1000238000,
+       VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT                                                                             = 1000238001,
+       VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR                                                                    = 1000239000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV               = 1000240000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES                               = 1000241000,
+       VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT                                                                   = 1000241001,
+       VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT                                                                 = 1000241002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT                                    = 1000244000,
+       VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO                                                                                    = 1000244001,
+       VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT                                                                 = 1000244002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES                                                                               = 1000245000,
+       VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO                                                                               = 1000246000,
+       VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT                                                                                               = 1000247000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR                                                             = 1000248000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV                                                = 1000249000,
+       VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV                                                                              = 1000249001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV                                              = 1000249002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV                                   = 1000250000,
+       VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV                                              = 1000250001,
+       VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV                                                              = 1000250002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT                                = 1000251000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT                                               = 1000252000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES                               = 1000253000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT                                                 = 1000254000,
+       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT                 = 1000254001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT                                               = 1000254002,
+       VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT                                                                = 1000255000,
+       VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT                                                  = 1000255001,
+       VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT                                                = 1000255002,
+       VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT                                                                              = 1000256000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES                                                = 1000257000,
+       VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO                                                             = 1000257002,
+       VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO                                                   = 1000257003,
+       VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO                                                             = 1000257004,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT                                               = 1000259000,
+       VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT                                             = 1000259001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT                                             = 1000259002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT                                              = 1000260000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES                                                             = 1000261000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT                                                 = 1000265000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT                                   = 1000267000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR                   = 1000269000,
+       VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR                                                                                                             = 1000269001,
+       VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR                                                                    = 1000269002,
+       VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR                                                                                  = 1000269003,
+       VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR                                                                             = 1000269004,
+       VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR                                               = 1000269005,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT                                    = 1000273000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES                   = 1000276000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV                               = 1000277000,
+       VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV                                                                  = 1000277001,
+       VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV                                                = 1000277002,
+       VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV                                                                             = 1000277003,
+       VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV                                                               = 1000277004,
+       VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV                                                                                    = 1000277005,
+       VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV                                                = 1000277006,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV                                 = 1000277007,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV                                = 1000278000,
+       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV                                   = 1000278001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES                                   = 1000280000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES                                 = 1000280001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT                                   = 1000281000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES                                             = 1000281001,
+       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM                    = 1000282000,
+       VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM                                                                 = 1000282001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT                                             = 1000284000,
+       VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT                                                   = 1000284001,
+       VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT                                                                = 1000284002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT                                                             = 1000286000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT                                                   = 1000286001,
+       VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT                                                   = 1000287000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT                                    = 1000287001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT                                              = 1000287002,
+       VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR                                                                              = 1000290000,
+       VK_STRUCTURE_TYPE_PRESENT_ID_KHR                                                                                                                = 1000294000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR                                                               = 1000294001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES                                                                 = 1000295000,
+       VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO                                                                               = 1000295001,
+       VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO                                                                                 = 1000295002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES                              = 1000297000,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR                                                                                                 = 1000299000,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR                                                                    = 1000299001,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR                                                              = 1000299002,
+       VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR                                                                                 = 1000299003,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV                                                = 1000300000,
+       VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV                                                              = 1000300001,
+       VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT                                                                   = 1000311000,
+       VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT                                                                                 = 1000311001,
+       VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT                                                                                  = 1000311002,
+       VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT                                                                   = 1000311003,
+       VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT                                                                                  = 1000311004,
+       VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT                                                                                  = 1000311005,
+       VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT                                                                                 = 1000311006,
+       VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT                                                                                 = 1000311007,
+       VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT                                                                              = 1000311008,
+       VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT                                                                              = 1000311009,
+       VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT                                                                    = 1000311010,
+       VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT                                                                    = 1000311011,
+       VK_STRUCTURE_TYPE_MEMORY_BARRIER_2                                                                                                              = 1000314000,
+       VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2                                                                                               = 1000314001,
+       VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2                                                                                                = 1000314002,
+       VK_STRUCTURE_TYPE_DEPENDENCY_INFO                                                                                                               = 1000314003,
+       VK_STRUCTURE_TYPE_SUBMIT_INFO_2                                                                                                                 = 1000314004,
+       VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO                                                                                                 = 1000314005,
+       VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO                                                                                    = 1000314006,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES                                                    = 1000314007,
+       VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV                                                               = 1000314008,
+       VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV                                                                                                  = 1000314009,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT                                = 1000320000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT                              = 1000320001,
+       VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT                                                             = 1000320002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD             = 1000321000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR                    = 1000322000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR             = 1000323000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES                             = 1000325000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV                             = 1000326000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV                               = 1000326001,
+       VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV                              = 1000326002,
+       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV                              = 1000327000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV                                   = 1000327001,
+       VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV                                                                 = 1000327002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT                                = 1000330000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT                                   = 1000332000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT                                 = 1000332001,
+       VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM                                                                              = 1000333000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES                                                             = 1000335000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR                 = 1000336000,
+       VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2                                                                                                    = 1000337000,
+       VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2                                                                                                             = 1000337001,
+       VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2                                                                                   = 1000337002,
+       VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2                                                                                   = 1000337003,
+       VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2                                                                                                             = 1000337004,
+       VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2                                                                                                  = 1000337005,
+       VK_STRUCTURE_TYPE_BUFFER_COPY_2                                                                                                                 = 1000337006,
+       VK_STRUCTURE_TYPE_IMAGE_COPY_2                                                                                                                  = 1000337007,
+       VK_STRUCTURE_TYPE_IMAGE_BLIT_2                                                                                                                  = 1000337008,
+       VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2                                                                                                   = 1000337009,
+       VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2                                                                                                               = 1000337010,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT                                = 1000338000,
+       VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT                                                                                 = 1000338001,
+       VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT                                                                                              = 1000338002,
+       VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT                                                                                               = 1000338003,
+       VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT                                                                              = 1000338004,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT                                                             = 1000340000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM    = 1000342000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT                                                 = 1000344000,
+       VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT                                                                              = 1000346000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR                                             = 1000347000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR                                   = 1000347001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR                                                                = 1000348013,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE                                = 1000351000,
+       VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE                                                             = 1000351002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT                               = 1000352000,
+       VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT                                                                = 1000352001,
+       VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT                                                              = 1000352002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT                                                                    = 1000353000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT                                               = 1000355000,
+       VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT                                  = 1000355001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT                  = 1000356000,
+       VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3                                                                                                   = 1000360000,
+       VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA                                                              = 1000364000,
+       VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA                                                               = 1000364001,
+       VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA                                                                 = 1000364002,
+       VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA                                                   = 1000365000,
+       VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA                                                              = 1000365001,
+       VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA                                                                 = 1000366000,
+       VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA                                                               = 1000366001,
+       VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA                                                   = 1000366002,
+       VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA                                                                  = 1000366003,
+       VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA                                                                               = 1000366004,
+       VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA                                                  = 1000366005,
+       VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA                                                                                = 1000366006,
+       VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA                                                                 = 1000366007,
+       VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA                                                                                    = 1000366008,
+       VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA                                                    = 1000366009,
+       VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI                                                   = 1000369000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI                                               = 1000369001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI                                             = 1000369002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI                                               = 1000370000,
+       VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV                                                                             = 1000371000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV                                              = 1000371001,
+       VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT                                                                    = 1000372000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT                                              = 1000372001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT    = 1000376000,
+       VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT                                                                 = 1000376001,
+       VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT                                                = 1000376002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT                                 = 1000377000,
+       VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX                                                                                = 1000378000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT                                               = 1000381000,
+       VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT                                                                  = 1000381001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT                               = 1000382000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR                                = 1000386000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR                                    = 1000388000,
+       VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR                                                   = 1000388001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT                                               = 1000391000,
+       VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT                                                                    = 1000391001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT                                                               = 1000392000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT                                                             = 1000392001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT                                              = 1000393000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT                                             = 1000411000,
+       VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT                                = 1000411001,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT                             = 1000412000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES                                                                = 1000413000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES                                                              = 1000413001,
+       VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS                                                                             = 1000413002,
+       VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS                                                                              = 1000413003,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE                    = 1000420000,
+       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE                                                                = 1000420001,
+       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE                                                 = 1000420002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT                                    = 1000422000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM                             = 1000425000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM                   = 1000425001,
+       VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM                                             = 1000425002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV                                   = 1000430000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT              = 1000437000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM                                                = 1000440000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM                                              = 1000440001,
+       VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM                                                             = 1000440002,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT                                   = 1000458000,
+       VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT                                                                              = 1000458001,
+       VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT                                                 = 1000458002,
+       VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT                                                  = 1000458003,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT                                 = 1000462000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT                               = 1000462001,
+       VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT                               = 1000462002,
+       VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT                                                                                  = 1000462003,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM                                                 = 1000484000,
+       VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM                                                                                                  = 1000484001,
+       VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT                                                                                  = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
+       VK_STRUCTURE_TYPE_RENDERING_INFO_KHR                                                                                                    = VK_STRUCTURE_TYPE_RENDERING_INFO,
+       VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR                                                                                 = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
+       VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR                                                                    = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR                                                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
+       VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR                                                 = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
+       VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV                                                                               = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
+       VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR                                                                 = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR                                                                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR                                                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR                                                                                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR                                                                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
+       VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR                                                                                               = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
+       VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR                                                                                 = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR                                                               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
+       VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR                                                                                 = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR                                                               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
+       VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR                                                                  = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR                                                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
+       VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR                                                                                = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
+       VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR                                                               = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
+       VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR                                                    = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
+       VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR                                                                                  = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
+       VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR                                                                             = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
+       VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR                                                              = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
+       VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR                                                               = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES                                                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT                             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR                                                                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
+       VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR                                                                   = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR                                                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
+       VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR                                                                  = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR                                                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
+       VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR                                                                                = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR                                                                             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
+       VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR                                                                = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
+       VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR                                                                 = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
+       VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR                                                                               = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR                                                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
+       VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR                                                                             = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
+       VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR                                                                              = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR                                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR                                                             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR                                                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
+       VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR                                                    = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
+       VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT                                                                                             = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR                                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
+       VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR                                                               = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
+       VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR                                                                 = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
+       VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR                                                                 = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
+       VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR                                                                                  = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
+       VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR                                                                                    = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
+       VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR                                                                                             = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
+       VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR                                                                                              = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
+       VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR                                                                                 = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
+       VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR                                                                                                = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
+       VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR                                                                                                  = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR                                                               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
+       VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR                                                                                 = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
+       VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR                                                                                  = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR                                                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
+       VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR                                   = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
+       VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR                                                                              = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
+       VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR                             = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES                                                             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR                                                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
+       VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR                                                                             = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
+       VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR                                                                    = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT                                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
+       VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT                                                                = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT                                             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT                                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
+       VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT                                                 = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
+       VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT                                  = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
+       VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR                                                                 = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
+       VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR                                                                  = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
+       VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR                                                   = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
+       VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR                                                                                             = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
+       VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR                                                                = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
+       VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR                                                                             = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
+       VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR                                                              = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
+       VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR                                                                             = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
+       VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR                                                                              = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
+       VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR                                                              = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR                                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
+       VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR                                  = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
+       VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR                                                                                   = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
+       VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR                                                                                    = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
+       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT                                   = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT                                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT                                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
+       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT                    = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
+       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT                   = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR                                                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
+       VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR                                                                             = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
+       VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT                                                  = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR                                                             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR                                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
+       VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT                                                    = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR                                                                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR                                                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR                                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
+       VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR                                                 = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV                               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR                                               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR                                             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
+       VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR                                                                                = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
+       VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR                                                                    = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
+       VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR                                                                                               = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
+       VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR                                                                                             = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
+       VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL                                                                                  = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR                                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT                                              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT                                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
+       VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT                  = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT                                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
+       VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR                                                               = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
+       VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR                                                             = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT                                                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
+       VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT                                                                                = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
+       VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR                                                                                = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT                                                                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,
+       VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT                                                                   = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR                   = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR                                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
+       VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR                                                 = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
+       VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR                                               = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
+       VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR                                                 = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT                                                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
+       VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT                                                                                                             = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR                               = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR                             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT                                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT                                                             = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
+       VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT                                                                   = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,
+       VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT                                                                             = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
+       VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR                                                                                                  = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2,
+       VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR                                                                                   = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,
+       VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR                                                                                    = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
+       VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR                                                                                                   = VK_STRUCTURE_TYPE_DEPENDENCY_INFO,
+       VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR                                                                                                             = VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
+       VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR                                                                                             = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,
+       VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR                                                                                = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR                                                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT                                                 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
+       VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR                                                                                                = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2,
+       VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR                                                                                                 = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2,
+       VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR                                                                               = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,
+       VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR                                                                               = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,
+       VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR                                                                                                 = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,
+       VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR                                                                                              = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,
+       VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR                                                                                                             = VK_STRUCTURE_TYPE_BUFFER_COPY_2,
+       VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR                                                                                                              = VK_STRUCTURE_TYPE_IMAGE_COPY_2,
+       VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR                                                                                                              = VK_STRUCTURE_TYPE_IMAGE_BLIT_2,
+       VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR                                                                                               = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,
+       VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR                                                                                                   = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
+       VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR                                                                                               = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT                                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR,
+       VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT                                                   = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR                                                    = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR                                                  = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
+       VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR                                                                 = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
+       VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR                                                                  = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
+       VK_STRUCTURE_TYPE_MAX_ENUM                                                                                                                              = 0x7FFFFFFF
 };
 
-enum VkCopyAccelerationStructureModeKHR
+enum VkSystemAllocationScope
 {
-       VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR           = 0,
-       VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR         = 1,
-       VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR       = 2,
-       VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR     = 3,
-       VK_COPY_ACCELERATION_STRUCTURE_MODE_KHR_LAST,
-       VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV            = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
-       VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV          = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
-       VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR        = 0x7FFFFFFF,
+       VK_SYSTEM_ALLOCATION_SCOPE_COMMAND      = 0,
+       VK_SYSTEM_ALLOCATION_SCOPE_OBJECT       = 1,
+       VK_SYSTEM_ALLOCATION_SCOPE_CACHE        = 2,
+       VK_SYSTEM_ALLOCATION_SCOPE_DEVICE       = 3,
+       VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE     = 4,
+       VK_SYSTEM_ALLOCATION_SCOPE_LAST,
+       VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM     = 0x7FFFFFFF
 };
 
-enum VkAccelerationStructureMemoryRequirementsTypeNV
+enum VkInternalAllocationType
 {
-       VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV                    = 0,
-       VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV             = 1,
-       VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV    = 2,
-       VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_NV_LAST,
-       VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV                  = 0x7FFFFFFF,
+       VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE  = 0,
+       VK_INTERNAL_ALLOCATION_TYPE_LAST,
+       VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM    = 0x7FFFFFFF
 };
 
-enum VkTimeDomainEXT
+enum VkSamplerAddressMode
 {
-       VK_TIME_DOMAIN_DEVICE_EXT                                               = 0,
-       VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT                              = 1,
-       VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT                  = 2,
-       VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT    = 3,
-       VK_TIME_DOMAIN_EXT_LAST,
-       VK_TIME_DOMAIN_MAX_ENUM_EXT                                             = 0x7FFFFFFF,
+       VK_SAMPLER_ADDRESS_MODE_REPEAT                                          = 0,
+       VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT                         = 1,
+       VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE                           = 2,
+       VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER                         = 3,
+       VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE            = 4,
+       VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR        = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
+       VK_SAMPLER_ADDRESS_MODE_LAST,
+       VK_SAMPLER_ADDRESS_MODE_MAX_ENUM                                        = 0x7FFFFFFF
 };
 
-enum VkMemoryOverallocationBehaviorAMD
+enum VkFilter
 {
-       VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD           = 0,
-       VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD           = 1,
-       VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD        = 2,
-       VK_MEMORY_OVERALLOCATION_BEHAVIOR_AMD_LAST,
-       VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD          = 0x7FFFFFFF,
+       VK_FILTER_NEAREST       = 0,
+       VK_FILTER_LINEAR        = 1,
+       VK_FILTER_CUBIC_EXT     = 1000015000,
+       VK_FILTER_CUBIC_IMG     = VK_FILTER_CUBIC_EXT,
+       VK_FILTER_MAX_ENUM      = 0x7FFFFFFF
 };
 
-enum VkPerformanceConfigurationTypeINTEL
+enum VkSamplerMipmapMode
 {
-       VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL       = 0,
-       VK_PERFORMANCE_CONFIGURATION_TYPE_INTEL_LAST,
-       VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL                                                                        = 0x7FFFFFFF,
+       VK_SAMPLER_MIPMAP_MODE_NEAREST  = 0,
+       VK_SAMPLER_MIPMAP_MODE_LINEAR   = 1,
+       VK_SAMPLER_MIPMAP_MODE_LAST,
+       VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
 };
 
-enum VkQueryPoolSamplingModeINTEL
+enum VkVertexInputRate
 {
-       VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL        = 0,
-       VK_QUERY_POOL_SAMPLING_MODE_INTEL_LAST,
-       VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL      = 0x7FFFFFFF,
+       VK_VERTEX_INPUT_RATE_VERTEX             = 0,
+       VK_VERTEX_INPUT_RATE_INSTANCE   = 1,
+       VK_VERTEX_INPUT_RATE_LAST,
+       VK_VERTEX_INPUT_RATE_MAX_ENUM   = 0x7FFFFFFF
 };
 
-enum VkPerformanceOverrideTypeINTEL
+enum VkPipelineStageFlagBits
 {
-       VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL        = 0,
-       VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL     = 1,
-       VK_PERFORMANCE_OVERRIDE_TYPE_INTEL_LAST,
-       VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL                     = 0x7FFFFFFF,
+       VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT                                                       = 0x00000001,
+       VK_PIPELINE_STAGE_NONE                                                                          = 0,
+       VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT                                                     = 0x00000002,
+       VK_PIPELINE_STAGE_VERTEX_INPUT_BIT                                                      = 0x00000004,
+       VK_PIPELINE_STAGE_VERTEX_SHADER_BIT                                                     = 0x00000008,
+       VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT                       = 0x00000010,
+       VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT            = 0x00000020,
+       VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT                                           = 0x00000040,
+       VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT                                           = 0x00000080,
+       VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT                                      = 0x00000100,
+       VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT                                       = 0x00000200,
+       VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT                           = 0x00000400,
+       VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT                                            = 0x00000800,
+       VK_PIPELINE_STAGE_TRANSFER_BIT                                                          = 0x00001000,
+       VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT                                            = 0x00002000,
+       VK_PIPELINE_STAGE_HOST_BIT                                                                      = 0x00004000,
+       VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT                                                      = 0x00008000,
+       VK_PIPELINE_STAGE_ALL_COMMANDS_BIT                                                      = 0x00010000,
+       VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV                                     = 0x00020000,
+       VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT                         = 0x00040000,
+       VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV                                            = 0x00080000,
+       VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV                                            = 0x00100000,
+       VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR                            = 0x00200000,
+       VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR      = 0x00400000,
+       VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT                      = 0x00800000,
+       VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT                            = 0x01000000,
+       VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR          = 0x02000000,
+       VK_PIPELINE_STAGE_NONE_KHR                                                                      = VK_PIPELINE_STAGE_NONE,
+       VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV                                     = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
+       VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV                                     = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
+       VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV           = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
+       VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM                                            = 0x7FFFFFFF
 };
 
-enum VkPerformanceParameterTypeINTEL
+enum VkSparseImageFormatFlagBits
 {
-       VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL               = 0,
-       VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL    = 1,
-       VK_PERFORMANCE_PARAMETER_TYPE_INTEL_LAST,
-       VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL                                    = 0x7FFFFFFF,
+       VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT                       = 0x00000001,
+       VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT                     = 0x00000002,
+       VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT       = 0x00000004,
+       VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM                       = 0x7FFFFFFF
 };
 
-enum VkPerformanceValueTypeINTEL
+enum VkSampleCountFlagBits
 {
-       VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL          = 0,
-       VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL          = 1,
-       VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL           = 2,
-       VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL            = 3,
-       VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL          = 4,
-       VK_PERFORMANCE_VALUE_TYPE_INTEL_LAST,
-       VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL        = 0x7FFFFFFF,
+       VK_SAMPLE_COUNT_1_BIT                           = 0x00000001,
+       VK_SAMPLE_COUNT_2_BIT                           = 0x00000002,
+       VK_SAMPLE_COUNT_4_BIT                           = 0x00000004,
+       VK_SAMPLE_COUNT_8_BIT                           = 0x00000008,
+       VK_SAMPLE_COUNT_16_BIT                          = 0x00000010,
+       VK_SAMPLE_COUNT_32_BIT                          = 0x00000020,
+       VK_SAMPLE_COUNT_64_BIT                          = 0x00000040,
+       VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM      = 0x7FFFFFFF
 };
 
-enum VkValidationFeatureEnableEXT
+enum VkAttachmentDescriptionFlagBits
 {
-       VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT                                           = 0,
-       VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT      = 1,
-       VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT                                         = 2,
-       VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT                                           = 3,
-       VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT                     = 4,
-       VK_VALIDATION_FEATURE_ENABLE_EXT_LAST,
-       VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT                                                       = 0x7FFFFFFF,
+       VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT                 = 0x00000001,
+       VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM    = 0x7FFFFFFF
 };
 
-enum VkValidationFeatureDisableEXT
+enum VkDescriptorPoolCreateFlagBits
 {
-       VK_VALIDATION_FEATURE_DISABLE_ALL_EXT                                           = 0,
-       VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT                                       = 1,
-       VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT                         = 2,
-       VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT                        = 3,
-       VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT                      = 4,
-       VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT                           = 5,
-       VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT                        = 6,
-       VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT       = 7,
-       VK_VALIDATION_FEATURE_DISABLE_EXT_LAST,
-       VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT                                      = 0x7FFFFFFF,
+       VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT       = 0x00000001,
+       VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT         = 0x00000002,
+       VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE           = 0x00000004,
+       VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT     = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
+       VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM            = 0x7FFFFFFF
 };
 
-enum VkComponentTypeNV
+enum VkDependencyFlagBits
 {
-       VK_COMPONENT_TYPE_FLOAT16_NV    = 0,
-       VK_COMPONENT_TYPE_FLOAT32_NV    = 1,
-       VK_COMPONENT_TYPE_FLOAT64_NV    = 2,
-       VK_COMPONENT_TYPE_SINT8_NV              = 3,
-       VK_COMPONENT_TYPE_SINT16_NV             = 4,
-       VK_COMPONENT_TYPE_SINT32_NV             = 5,
-       VK_COMPONENT_TYPE_SINT64_NV             = 6,
-       VK_COMPONENT_TYPE_UINT8_NV              = 7,
-       VK_COMPONENT_TYPE_UINT16_NV             = 8,
-       VK_COMPONENT_TYPE_UINT32_NV             = 9,
-       VK_COMPONENT_TYPE_UINT64_NV             = 10,
-       VK_COMPONENT_TYPE_NV_LAST,
-       VK_COMPONENT_TYPE_MAX_ENUM_NV   = 0x7FFFFFFF,
+       VK_DEPENDENCY_BY_REGION_BIT                     = 0x00000001,
+       VK_DEPENDENCY_VIEW_LOCAL_BIT            = 0x00000002,
+       VK_DEPENDENCY_DEVICE_GROUP_BIT          = 0x00000004,
+       VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR        = VK_DEPENDENCY_VIEW_LOCAL_BIT,
+       VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR      = VK_DEPENDENCY_DEVICE_GROUP_BIT,
+       VK_DEPENDENCY_FLAG_BITS_MAX_ENUM        = 0x7FFFFFFF
 };
 
-enum VkScopeNV
+enum VkObjectType
 {
-       VK_SCOPE_DEVICE_NV                      = 1,
-       VK_SCOPE_WORKGROUP_NV           = 2,
-       VK_SCOPE_SUBGROUP_NV            = 3,
-       VK_SCOPE_QUEUE_FAMILY_NV        = 5,
-       VK_SCOPE_MAX_ENUM_NV            = 0x7FFFFFFF,
+       VK_OBJECT_TYPE_UNKNOWN                                                  = 0,
+       VK_OBJECT_TYPE_INSTANCE                                                 = 1,
+       VK_OBJECT_TYPE_PHYSICAL_DEVICE                                  = 2,
+       VK_OBJECT_TYPE_DEVICE                                                   = 3,
+       VK_OBJECT_TYPE_QUEUE                                                    = 4,
+       VK_OBJECT_TYPE_SEMAPHORE                                                = 5,
+       VK_OBJECT_TYPE_COMMAND_BUFFER                                   = 6,
+       VK_OBJECT_TYPE_FENCE                                                    = 7,
+       VK_OBJECT_TYPE_DEVICE_MEMORY                                    = 8,
+       VK_OBJECT_TYPE_BUFFER                                                   = 9,
+       VK_OBJECT_TYPE_IMAGE                                                    = 10,
+       VK_OBJECT_TYPE_EVENT                                                    = 11,
+       VK_OBJECT_TYPE_QUERY_POOL                                               = 12,
+       VK_OBJECT_TYPE_BUFFER_VIEW                                              = 13,
+       VK_OBJECT_TYPE_IMAGE_VIEW                                               = 14,
+       VK_OBJECT_TYPE_SHADER_MODULE                                    = 15,
+       VK_OBJECT_TYPE_PIPELINE_CACHE                                   = 16,
+       VK_OBJECT_TYPE_PIPELINE_LAYOUT                                  = 17,
+       VK_OBJECT_TYPE_RENDER_PASS                                              = 18,
+       VK_OBJECT_TYPE_PIPELINE                                                 = 19,
+       VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT                    = 20,
+       VK_OBJECT_TYPE_SAMPLER                                                  = 21,
+       VK_OBJECT_TYPE_DESCRIPTOR_POOL                                  = 22,
+       VK_OBJECT_TYPE_DESCRIPTOR_SET                                   = 23,
+       VK_OBJECT_TYPE_FRAMEBUFFER                                              = 24,
+       VK_OBJECT_TYPE_COMMAND_POOL                                             = 25,
+       VK_OBJECT_TYPE_SURFACE_KHR                                              = 1000000000,
+       VK_OBJECT_TYPE_SWAPCHAIN_KHR                                    = 1000001000,
+       VK_OBJECT_TYPE_DISPLAY_KHR                                              = 1000002000,
+       VK_OBJECT_TYPE_DISPLAY_MODE_KHR                                 = 1000002001,
+       VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT                = 1000011000,
+       VK_OBJECT_TYPE_VIDEO_SESSION_KHR                                = 1000023000,
+       VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR             = 1000023001,
+       VK_OBJECT_TYPE_CU_MODULE_NVX                                    = 1000029000,
+       VK_OBJECT_TYPE_CU_FUNCTION_NVX                                  = 1000029001,
+       VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE               = 1000085000,
+       VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT                = 1000128000,
+       VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR               = 1000150000,
+       VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION                 = 1000156000,
+       VK_OBJECT_TYPE_VALIDATION_CACHE_EXT                             = 1000160000,
+       VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV                = 1000165000,
+       VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL  = 1000210000,
+       VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR                   = 1000268000,
+       VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV              = 1000277000,
+       VK_OBJECT_TYPE_PRIVATE_DATA_SLOT                                = 1000295000,
+       VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA                = 1000366000,
+       VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR   = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
+       VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR             = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
+       VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT                    = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
+       VK_OBJECT_TYPE_MAX_ENUM                                                 = 0x7FFFFFFF
 };
 
-enum VkCoverageReductionModeNV
+enum VkEventCreateFlagBits
 {
-       VK_COVERAGE_REDUCTION_MODE_MERGE_NV             = 0,
-       VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV  = 1,
-       VK_COVERAGE_REDUCTION_MODE_NV_LAST,
-       VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV  = 0x7FFFFFFF,
+       VK_EVENT_CREATE_DEVICE_ONLY_BIT         = 0x00000001,
+       VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR     = VK_EVENT_CREATE_DEVICE_ONLY_BIT,
+       VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM      = 0x7FFFFFFF
 };
 
-enum VkProvokingVertexModeEXT
+enum VkPipelineLayoutCreateFlagBits
 {
-       VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT       = 0,
-       VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT        = 1,
-       VK_PROVOKING_VERTEX_MODE_EXT_LAST,
-       VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT           = 0x7FFFFFFF,
+       VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT      = 0x00000002,
+       VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM            = 0x7FFFFFFF
 };
 
-enum VkLineRasterizationModeEXT
+enum VkIndirectCommandsLayoutUsageFlagBitsNV
 {
-       VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT                          = 0,
-       VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT                      = 1,
-       VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT                        = 2,
-       VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT       = 3,
-       VK_LINE_RASTERIZATION_MODE_EXT_LAST,
-       VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT                         = 0x7FFFFFFF,
+       VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV    = 0x00000001,
+       VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV              = 0x00000002,
+       VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV    = 0x00000004,
+       VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV                 = 0x7FFFFFFF
 };
 
 enum VkIndirectCommandsTokenTypeNV
@@ -2507,1050 +2424,1066 @@ enum VkIndirectCommandsTokenTypeNV
        VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV                         = 6,
        VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV           = 7,
        VK_INDIRECT_COMMANDS_TOKEN_TYPE_NV_LAST,
-       VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV                     = 0x7FFFFFFF,
+       VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV                     = 0x7FFFFFFF
 };
 
-enum VkDeviceMemoryReportEventTypeEXT
+enum VkIndirectStateFlagBitsNV
 {
-       VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT                         = 0,
-       VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT                                     = 1,
-       VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT                           = 2,
-       VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT                         = 3,
-       VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT        = 4,
-       VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_EXT_LAST,
-       VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT                         = 0x7FFFFFFF,
+       VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001,
+       VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
 };
 
-enum VkFragmentShadingRateTypeNV
+enum VkDescriptorUpdateTemplateType
 {
-       VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV  = 0,
-       VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV                  = 1,
-       VK_FRAGMENT_SHADING_RATE_TYPE_NV_LAST,
-       VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV               = 0x7FFFFFFF,
+       VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET               = 0,
+       VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
+       VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR   = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
+       VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_LAST,
+       VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM                             = 0x7FFFFFFF
 };
+typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
 
-enum VkFragmentShadingRateNV
+enum VkViewportCoordinateSwizzleNV
 {
-       VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV              = 0,
-       VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1,
-       VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4,
-       VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5,
-       VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6,
-       VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
-       VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10,
-       VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV             = 11,
-       VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV             = 12,
-       VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV             = 13,
-       VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV    = 14,
-       VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV                              = 15,
-       VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV                                    = 0x7FFFFFFF,
+       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,
+       VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV              = 0x7FFFFFFF
 };
 
-enum VkAccelerationStructureMotionInstanceTypeNV
+enum VkDiscardRectangleModeEXT
 {
-       VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV                = 0,
-       VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1,
-       VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV    = 2,
-       VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_NV_LAST,
-       VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV              = 0x7FFFFFFF,
+       VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
+       VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
+       VK_DISCARD_RECTANGLE_MODE_EXT_LAST,
+       VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT  = 0x7FFFFFFF
 };
 
-enum VkSubpassMergeStatusEXT
+enum VkSubpassDescriptionFlagBits
 {
-       VK_SUBPASS_MERGE_STATUS_MERGED_EXT                                                                              = 0,
-       VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT                                                                  = 1,
-       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT                                             = 2,
-       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT                                 = 3,
-       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT                                   = 4,
-       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT                                                 = 5,
-       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT                                             = 6,
-       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT    = 7,
-       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT                             = 8,
-       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT                             = 9,
-       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT                              = 10,
-       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT                 = 11,
-       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT                                   = 12,
-       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT                                              = 13,
-       VK_SUBPASS_MERGE_STATUS_EXT_LAST,
-       VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT                                                                    = 0x7FFFFFFF,
+       VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX                                                              = 0x00000001,
+       VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX                                                 = 0x00000002,
+       VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM                                                                 = 0x00000004,
+       VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM                                                                  = 0x00000008,
+       VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM              = 0x00000010,
+       VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM              = 0x00000020,
+       VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM    = 0x00000040,
+       VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM                                                                               = 0x7FFFFFFF
 };
 
-enum VkBuildAccelerationStructureModeKHR
+enum VkPointClippingBehavior
 {
-       VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR          = 0,
-       VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR         = 1,
-       VK_BUILD_ACCELERATION_STRUCTURE_MODE_KHR_LAST,
-       VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR       = 0x7FFFFFFF,
+       VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES                              = 0,
+       VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY                = 1,
+       VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR                  = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
+       VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR    = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
+       VK_POINT_CLIPPING_BEHAVIOR_LAST,
+       VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM                                             = 0x7FFFFFFF
 };
+typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
 
-enum VkAccelerationStructureBuildTypeKHR
+enum VkCoverageModulationModeNV
 {
-       VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR                   = 0,
-       VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR                 = 1,
-       VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2,
-       VK_ACCELERATION_STRUCTURE_BUILD_TYPE_KHR_LAST,
-       VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR               = 0x7FFFFFFF,
+       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,
+       VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
 };
 
-enum VkAccelerationStructureCompatibilityKHR
+enum VkCoverageReductionModeNV
 {
-       VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR          = 0,
-       VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR        = 1,
-       VK_ACCELERATION_STRUCTURE_COMPATIBILITY_KHR_LAST,
-       VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR            = 0x7FFFFFFF,
+       VK_COVERAGE_REDUCTION_MODE_MERGE_NV             = 0,
+       VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV  = 1,
+       VK_COVERAGE_REDUCTION_MODE_NV_LAST,
+       VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV  = 0x7FFFFFFF
 };
 
-enum VkShaderGroupShaderKHR
+enum VkValidationCacheHeaderVersionEXT
 {
-       VK_SHADER_GROUP_SHADER_GENERAL_KHR              = 0,
-       VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR  = 1,
-       VK_SHADER_GROUP_SHADER_ANY_HIT_KHR              = 2,
-       VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3,
-       VK_SHADER_GROUP_SHADER_KHR_LAST,
-       VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR             = 0x7FFFFFFF,
+       VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT              = 1,
+       VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
 };
 
-enum VkQueryResultStatusKHR
+enum VkShaderInfoTypeAMD
 {
-       VK_QUERY_RESULT_STATUS_ERROR_KHR                = -1,
-       VK_QUERY_RESULT_STATUS_NOT_READY_KHR    = 0,
-       VK_QUERY_RESULT_STATUS_COMPLETE_KHR             = 1,
-       VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR             = 0x7FFFFFFF,
+       VK_SHADER_INFO_TYPE_STATISTICS_AMD      = 0,
+       VK_SHADER_INFO_TYPE_BINARY_AMD          = 1,
+       VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD     = 2,
+       VK_SHADER_INFO_TYPE_AMD_LAST,
+       VK_SHADER_INFO_TYPE_MAX_ENUM_AMD        = 0x7FFFFFFF
 };
 
-enum StdVideoH264ChromaFormatIdc
+enum VkQueueGlobalPriorityKHR
 {
-       STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME     = 0,
-       STD_VIDEO_H264_CHROMA_FORMAT_IDC_420            = 1,
-       STD_VIDEO_H264_CHROMA_FORMAT_IDC_422            = 2,
-       STD_VIDEO_H264_CHROMA_FORMAT_IDC_444            = 3,
-       STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID        = 0x7FFFFFFF,
-       STD_VIDEO_H264_CHROMA_FORMAT_IDC_MAX_ENUM       = 0x7FFFFFFF,
+       VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR                = 128,
+       VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR             = 256,
+       VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR               = 512,
+       VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR   = 1024,
+       VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT                = VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR,
+       VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT             = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR,
+       VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT               = VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR,
+       VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT   = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR,
+       VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR   = 0x7FFFFFFF
 };
+typedef VkQueueGlobalPriorityKHR VkQueueGlobalPriorityEXT;
 
-enum StdVideoH264ProfileIdc
+enum VkTimeDomainEXT
 {
-       STD_VIDEO_H264_PROFILE_IDC_BASELINE                             = 66,
-       STD_VIDEO_H264_PROFILE_IDC_MAIN                                 = 77,
-       STD_VIDEO_H264_PROFILE_IDC_HIGH                                 = 100,
-       STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE  = 244,
-       STD_VIDEO_H264_PROFILE_IDC_INVALID                              = 0x7FFFFFFF,
-       STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM                             = 0x7FFFFFFF,
+       VK_TIME_DOMAIN_DEVICE_EXT                                               = 0,
+       VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT                              = 1,
+       VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT                  = 2,
+       VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT    = 3,
+       VK_TIME_DOMAIN_EXT_LAST,
+       VK_TIME_DOMAIN_MAX_ENUM_EXT                                             = 0x7FFFFFFF
 };
 
-enum StdVideoH264Level
+enum VkConservativeRasterizationModeEXT
 {
-       STD_VIDEO_H264_LEVEL_1_0                = 0,
-       STD_VIDEO_H264_LEVEL_1_1                = 1,
-       STD_VIDEO_H264_LEVEL_1_2                = 2,
-       STD_VIDEO_H264_LEVEL_1_3                = 3,
-       STD_VIDEO_H264_LEVEL_2_0                = 4,
-       STD_VIDEO_H264_LEVEL_2_1                = 5,
-       STD_VIDEO_H264_LEVEL_2_2                = 6,
-       STD_VIDEO_H264_LEVEL_3_0                = 7,
-       STD_VIDEO_H264_LEVEL_3_1                = 8,
-       STD_VIDEO_H264_LEVEL_3_2                = 9,
-       STD_VIDEO_H264_LEVEL_4_0                = 10,
-       STD_VIDEO_H264_LEVEL_4_1                = 11,
-       STD_VIDEO_H264_LEVEL_4_2                = 12,
-       STD_VIDEO_H264_LEVEL_5_0                = 13,
-       STD_VIDEO_H264_LEVEL_5_1                = 14,
-       STD_VIDEO_H264_LEVEL_5_2                = 15,
-       STD_VIDEO_H264_LEVEL_6_0                = 16,
-       STD_VIDEO_H264_LEVEL_6_1                = 17,
-       STD_VIDEO_H264_LEVEL_6_2                = 18,
-       STD_VIDEO_H264_LEVEL_INVALID    = 0x7FFFFFFF,
-       STD_VIDEO_H264_LEVEL_MAX_ENUM   = 0x7FFFFFFF,
+       VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT                 = 0,
+       VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT             = 1,
+       VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT    = 2,
+       VK_CONSERVATIVE_RASTERIZATION_MODE_EXT_LAST,
+       VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT                 = 0x7FFFFFFF
 };
 
-enum StdVideoH264PocType
+enum VkResolveModeFlagBits
 {
-       STD_VIDEO_H264_POC_TYPE_0                       = 0,
-       STD_VIDEO_H264_POC_TYPE_1                       = 1,
-       STD_VIDEO_H264_POC_TYPE_2                       = 2,
-       STD_VIDEO_H264_POC_TYPE_INVALID         = 0x7FFFFFFF,
-       STD_VIDEO_H264_POC_TYPE_MAX_ENUM        = 0x7FFFFFFF,
+       VK_RESOLVE_MODE_NONE                            = 0,
+       VK_RESOLVE_MODE_SAMPLE_ZERO_BIT         = 0x00000001,
+       VK_RESOLVE_MODE_AVERAGE_BIT                     = 0x00000002,
+       VK_RESOLVE_MODE_MIN_BIT                         = 0x00000004,
+       VK_RESOLVE_MODE_MAX_BIT                         = 0x00000008,
+       VK_RESOLVE_MODE_NONE_KHR                        = VK_RESOLVE_MODE_NONE,
+       VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR     = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
+       VK_RESOLVE_MODE_AVERAGE_BIT_KHR         = VK_RESOLVE_MODE_AVERAGE_BIT,
+       VK_RESOLVE_MODE_MIN_BIT_KHR                     = VK_RESOLVE_MODE_MIN_BIT,
+       VK_RESOLVE_MODE_MAX_BIT_KHR                     = VK_RESOLVE_MODE_MAX_BIT,
+       VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM      = 0x7FFFFFFF
 };
+typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR;
 
-enum StdVideoH264AspectRatioIdc
+enum VkDescriptorBindingFlagBits
 {
-       STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED             = 0,
-       STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE                  = 1,
-       STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11                   = 2,
-       STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11                   = 3,
-       STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11                   = 4,
-       STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33                   = 5,
-       STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11                   = 6,
-       STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11                   = 7,
-       STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11                   = 8,
-       STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33                   = 9,
-       STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11                   = 10,
-       STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11                   = 11,
-       STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33                   = 12,
-       STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99                  = 13,
-       STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3                             = 14,
-       STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2                             = 15,
-       STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1                             = 16,
-       STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR    = 255,
-       STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID                 = 0x7FFFFFFF,
-       STD_VIDEO_H264_ASPECT_RATIO_IDC_MAX_ENUM                = 0x7FFFFFFF,
+       VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT                                     = 0x00000001,
+       VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT           = 0x00000002,
+       VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT                                       = 0x00000004,
+       VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT                     = 0x00000008,
+       VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT                         = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
+       VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT       = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
+       VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT                           = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
+       VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT         = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
+       VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM                                        = 0x7FFFFFFF
 };
+typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT;
 
-enum StdVideoH264WeightedBipredIdc
+enum VkConditionalRenderingFlagBitsEXT
 {
-       STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT      = 0,
-       STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT     = 1,
-       STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT     = 2,
-       STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID      = 0x7FFFFFFF,
-       STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_MAX_ENUM     = 0x7FFFFFFF,
+       VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT               = 0x00000001,
+       VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
 };
 
-enum StdVideoH264ModificationOfPicNumsIdc
+enum VkSemaphoreType
 {
-       STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0,
-       STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD              = 1,
-       STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM                   = 2,
-       STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END                                 = 3,
-       STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID                             = 0x7FFFFFFF,
-       STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_MAX_ENUM                    = 0x7FFFFFFF,
+       VK_SEMAPHORE_TYPE_BINARY                = 0,
+       VK_SEMAPHORE_TYPE_TIMELINE              = 1,
+       VK_SEMAPHORE_TYPE_BINARY_KHR    = VK_SEMAPHORE_TYPE_BINARY,
+       VK_SEMAPHORE_TYPE_TIMELINE_KHR  = VK_SEMAPHORE_TYPE_TIMELINE,
+       VK_SEMAPHORE_TYPE_LAST,
+       VK_SEMAPHORE_TYPE_MAX_ENUM              = 0x7FFFFFFF
 };
+typedef VkSemaphoreType VkSemaphoreTypeKHR;
 
-enum StdVideoH264MemMgmtControlOp
+enum VkGeometryFlagBitsKHR
 {
-       STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END                                                  = 0,
-       STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM                    = 1,
-       STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM                             = 2,
-       STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM                               = 3,
-       STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX              = 4,
-       STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL                                   = 5,
-       STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM    = 6,
-       STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID                                              = 0x7FFFFFFF,
-       STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MAX_ENUM                                             = 0x7FFFFFFF,
+       VK_GEOMETRY_OPAQUE_BIT_KHR                                                      = 0x00000001,
+       VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR     = 0x00000002,
+       VK_GEOMETRY_OPAQUE_BIT_NV                                                       = VK_GEOMETRY_OPAQUE_BIT_KHR,
+       VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV      = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
+       VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR                                      = 0x7FFFFFFF
 };
+typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;
 
-enum StdVideoH264CabacInitIdc
+enum VkGeometryInstanceFlagBitsKHR
 {
-       STD_VIDEO_H264_CABAC_INIT_IDC_0                 = 0,
-       STD_VIDEO_H264_CABAC_INIT_IDC_1                 = 1,
-       STD_VIDEO_H264_CABAC_INIT_IDC_2                 = 2,
-       STD_VIDEO_H264_CABAC_INIT_IDC_INVALID   = 0x7FFFFFFF,
-       STD_VIDEO_H264_CABAC_INIT_IDC_MAX_ENUM  = 0x7FFFFFFF,
+       VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR               = 0x00000001,
+       VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR                               = 0x00000002,
+       VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR                                               = 0x00000004,
+       VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR                                    = 0x00000008,
+       VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV                               = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
+       VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR    = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
+       VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV                                                = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
+       VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV                                             = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
+       VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR                                             = 0x7FFFFFFF
 };
+typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV;
 
-enum StdVideoH264DisableDeblockingFilterIdc
+enum VkBuildAccelerationStructureFlagBitsKHR
 {
-       STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED   = 0,
-       STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED    = 1,
-       STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL    = 2,
-       STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID    = 0x7FFFFFFF,
-       STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM   = 0x7FFFFFFF,
+       VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR            = 0x00000001,
+       VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR        = 0x00000002,
+       VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR       = 0x00000004,
+       VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR       = 0x00000008,
+       VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR                      = 0x00000010,
+       VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV                           = 0x00000020,
+       VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV                     = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
+       VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV         = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
+       VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV        = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
+       VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV        = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
+       VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV                       = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
+       VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR          = 0x7FFFFFFF
 };
+typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV;
 
-enum StdVideoH264SliceType
+enum VkAccelerationStructureCreateFlagBitsKHR
 {
-       STD_VIDEO_H264_SLICE_TYPE_P                     = 0,
-       STD_VIDEO_H264_SLICE_TYPE_B                     = 1,
-       STD_VIDEO_H264_SLICE_TYPE_I                     = 2,
-       STD_VIDEO_H264_SLICE_TYPE_INVALID       = 0x7FFFFFFF,
-       STD_VIDEO_H264_SLICE_TYPE_MAX_ENUM      = 0x7FFFFFFF,
+       VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR  = 0x00000001,
+       VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV                                                  = 0x00000004,
+       VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR                                 = 0x7FFFFFFF
 };
 
-enum StdVideoH264PictureType
+enum VkBuildAccelerationStructureModeKHR
 {
-       STD_VIDEO_H264_PICTURE_TYPE_P                   = 0,
-       STD_VIDEO_H264_PICTURE_TYPE_B                   = 1,
-       STD_VIDEO_H264_PICTURE_TYPE_I                   = 2,
-       STD_VIDEO_H264_PICTURE_TYPE_IDR                 = 5,
-       STD_VIDEO_H264_PICTURE_TYPE_INVALID             = 0x7FFFFFFF,
-       STD_VIDEO_H264_PICTURE_TYPE_MAX_ENUM    = 0x7FFFFFFF,
+       VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR          = 0,
+       VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR         = 1,
+       VK_BUILD_ACCELERATION_STRUCTURE_MODE_KHR_LAST,
+       VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR       = 0x7FFFFFFF
 };
 
-enum StdVideoH264NonVclNaluType
+enum VkCopyAccelerationStructureModeKHR
 {
-       STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS                            = 0,
-       STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS                            = 1,
-       STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD                            = 2,
-       STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX                         = 3,
-       STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE        = 4,
-       STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM          = 5,
-       STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED                       = 6,
-       STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID                        = 0x7FFFFFFF,
-       STD_VIDEO_H264_NON_VCL_NALU_TYPE_MAX_ENUM                       = 0x7FFFFFFF,
+       VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR           = 0,
+       VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR         = 1,
+       VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR       = 2,
+       VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR     = 3,
+       VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV            = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
+       VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV          = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
+       VK_COPY_ACCELERATION_STRUCTURE_MODE_KHR_LAST,
+       VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR        = 0x7FFFFFFF
 };
+typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
 
-enum StdVideoH265ChromaFormatIdc
+enum VkAccelerationStructureTypeKHR
 {
-       STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME     = 0,
-       STD_VIDEO_H265_CHROMA_FORMAT_IDC_420            = 1,
-       STD_VIDEO_H265_CHROMA_FORMAT_IDC_422            = 2,
-       STD_VIDEO_H265_CHROMA_FORMAT_IDC_444            = 3,
-       STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID        = 0x7FFFFFFF,
-       STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM       = 0x7FFFFFFF,
+       VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR    = 0,
+       VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
+       VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR              = 2,
+       VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV             = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
+       VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV  = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
+       VK_ACCELERATION_STRUCTURE_TYPE_KHR_LAST,
+       VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR             = 0x7FFFFFFF
 };
+typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
 
-enum StdVideoH265ProfileIdc
+enum VkGeometryTypeKHR
 {
-       STD_VIDEO_H265_PROFILE_IDC_MAIN                                         = 1,
-       STD_VIDEO_H265_PROFILE_IDC_MAIN_10                                      = 2,
-       STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE           = 3,
-       STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS      = 4,
-       STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS                       = 9,
-       STD_VIDEO_H265_PROFILE_IDC_INVALID                                      = 0x7FFFFFFF,
-       STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM                                     = 0x7FFFFFFF,
+       VK_GEOMETRY_TYPE_TRIANGLES_KHR  = 0,
+       VK_GEOMETRY_TYPE_AABBS_KHR              = 1,
+       VK_GEOMETRY_TYPE_INSTANCES_KHR  = 2,
+       VK_GEOMETRY_TYPE_TRIANGLES_NV   = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
+       VK_GEOMETRY_TYPE_AABBS_NV               = VK_GEOMETRY_TYPE_AABBS_KHR,
+       VK_GEOMETRY_TYPE_KHR_LAST,
+       VK_GEOMETRY_TYPE_MAX_ENUM_KHR   = 0x7FFFFFFF
 };
+typedef VkGeometryTypeKHR VkGeometryTypeNV;
 
-enum StdVideoH265Level
+enum VkRayTracingShaderGroupTypeKHR
 {
-       STD_VIDEO_H265_LEVEL_1_0                = 0,
-       STD_VIDEO_H265_LEVEL_2_0                = 1,
-       STD_VIDEO_H265_LEVEL_2_1                = 2,
-       STD_VIDEO_H265_LEVEL_3_0                = 3,
-       STD_VIDEO_H265_LEVEL_3_1                = 4,
-       STD_VIDEO_H265_LEVEL_4_0                = 5,
-       STD_VIDEO_H265_LEVEL_4_1                = 6,
-       STD_VIDEO_H265_LEVEL_5_0                = 7,
-       STD_VIDEO_H265_LEVEL_5_1                = 8,
-       STD_VIDEO_H265_LEVEL_5_2                = 9,
-       STD_VIDEO_H265_LEVEL_6_0                = 10,
-       STD_VIDEO_H265_LEVEL_6_1                = 11,
-       STD_VIDEO_H265_LEVEL_6_2                = 12,
-       STD_VIDEO_H265_LEVEL_INVALID    = 0x7FFFFFFF,
-       STD_VIDEO_H265_LEVEL_MAX_ENUM   = 0x7FFFFFFF,
+       VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR                            = 0,
+       VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR        = 1,
+       VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR       = 2,
+       VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV                                     = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
+       VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV         = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
+       VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV        = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
+       VK_RAY_TRACING_SHADER_GROUP_TYPE_KHR_LAST,
+       VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR                           = 0x7FFFFFFF
 };
+typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
 
-enum StdVideoH265SliceType
+enum VkAccelerationStructureMemoryRequirementsTypeNV
 {
-       STD_VIDEO_H265_SLICE_TYPE_B                     = 0,
-       STD_VIDEO_H265_SLICE_TYPE_P                     = 1,
-       STD_VIDEO_H265_SLICE_TYPE_I                     = 2,
-       STD_VIDEO_H265_SLICE_TYPE_INVALID       = 0x7FFFFFFF,
-       STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM      = 0x7FFFFFFF,
+       VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV                    = 0,
+       VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV             = 1,
+       VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV    = 2,
+       VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_NV_LAST,
+       VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV                  = 0x7FFFFFFF
 };
 
-enum StdVideoH265PictureType
+enum VkAccelerationStructureBuildTypeKHR
 {
-       STD_VIDEO_H265_PICTURE_TYPE_P                   = 0,
-       STD_VIDEO_H265_PICTURE_TYPE_B                   = 1,
-       STD_VIDEO_H265_PICTURE_TYPE_I                   = 2,
-       STD_VIDEO_H265_PICTURE_TYPE_IDR                 = 3,
-       STD_VIDEO_H265_PICTURE_TYPE_INVALID             = 0x7FFFFFFF,
-       STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM    = 0x7FFFFFFF,
+       VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR                   = 0,
+       VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR                 = 1,
+       VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2,
+       VK_ACCELERATION_STRUCTURE_BUILD_TYPE_KHR_LAST,
+       VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR               = 0x7FFFFFFF
 };
 
-enum StdVideoDecodeH264FieldOrderCount
+enum VkAccelerationStructureCompatibilityKHR
 {
-       STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP                     = 0,
-       STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM          = 1,
-       STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID         = 0x7FFFFFFF,
-       STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM        = 0x7FFFFFFF,
+       VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR          = 0,
+       VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR        = 1,
+       VK_ACCELERATION_STRUCTURE_COMPATIBILITY_KHR_LAST,
+       VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR            = 0x7FFFFFFF
 };
 
-enum VkFullScreenExclusiveEXT
+enum VkShaderGroupShaderKHR
 {
-       VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT                            = 0,
-       VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT                            = 1,
-       VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT                         = 2,
-       VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT     = 3,
-       VK_FULL_SCREEN_EXCLUSIVE_EXT_LAST,
-       VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT                           = 0x7FFFFFFF,
+       VK_SHADER_GROUP_SHADER_GENERAL_KHR              = 0,
+       VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR  = 1,
+       VK_SHADER_GROUP_SHADER_ANY_HIT_KHR              = 2,
+       VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3,
+       VK_SHADER_GROUP_SHADER_KHR_LAST,
+       VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR             = 0x7FFFFFFF
 };
 
-typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
-
-typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
-
-typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
-
-typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
-
-typedef VkChromaLocation VkChromaLocationKHR;
-
-typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
-
-typedef VkDriverId VkDriverIdKHR;
-
-typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
-
-typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
-
-typedef VkSemaphoreType VkSemaphoreTypeKHR;
-
-typedef VkQueueGlobalPriorityKHR VkQueueGlobalPriorityEXT;
-
-typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
-
-typedef VkGeometryTypeKHR VkGeometryTypeNV;
-
-typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
+enum VkMemoryOverallocationBehaviorAMD
+{
+       VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD           = 0,
+       VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD           = 1,
+       VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD        = 2,
+       VK_MEMORY_OVERALLOCATION_BEHAVIOR_AMD_LAST,
+       VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD          = 0x7FFFFFFF
+};
 
-typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
+enum VkScopeNV
+{
+       VK_SCOPE_DEVICE_NV                      = 1,
+       VK_SCOPE_WORKGROUP_NV           = 2,
+       VK_SCOPE_SUBGROUP_NV            = 3,
+       VK_SCOPE_QUEUE_FAMILY_NV        = 5,
+       VK_SCOPE_MAX_ENUM_NV            = 0x7FFFFFFF
+};
 
-enum VkAccessFlagBits
+enum VkComponentTypeNV
 {
-       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_NONE                                                                                  = 0,
-       VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT                              = 0x02000000,
-       VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT               = 0x04000000,
-       VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT              = 0x08000000,
-       VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT                    = 0x00100000,
-       VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT             = 0x00080000,
-       VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR                   = 0x00200000,
-       VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR                  = 0x00400000,
-       VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT                             = 0x01000000,
-       VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000,
-       VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV                                = 0x00020000,
-       VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV                               = 0x00040000,
-       VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV                                = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
-       VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV                    = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
-       VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV                   = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
-       VK_ACCESS_NONE_KHR                                                                              = VK_ACCESS_NONE,
-       VK_ACCESS_FLAG_BITS_MAX_ENUM                                                    = 0x7FFFFFFF,
+       VK_COMPONENT_TYPE_FLOAT16_NV    = 0,
+       VK_COMPONENT_TYPE_FLOAT32_NV    = 1,
+       VK_COMPONENT_TYPE_FLOAT64_NV    = 2,
+       VK_COMPONENT_TYPE_SINT8_NV              = 3,
+       VK_COMPONENT_TYPE_SINT16_NV             = 4,
+       VK_COMPONENT_TYPE_SINT32_NV             = 5,
+       VK_COMPONENT_TYPE_SINT64_NV             = 6,
+       VK_COMPONENT_TYPE_UINT8_NV              = 7,
+       VK_COMPONENT_TYPE_UINT16_NV             = 8,
+       VK_COMPONENT_TYPE_UINT32_NV             = 9,
+       VK_COMPONENT_TYPE_UINT64_NV             = 10,
+       VK_COMPONENT_TYPE_NV_LAST,
+       VK_COMPONENT_TYPE_MAX_ENUM_NV   = 0x7FFFFFFF
 };
-typedef uint32_t VkAccessFlags;
 
-enum VkImageAspectFlagBits
+enum VkDeviceDiagnosticsConfigFlagBitsNV
 {
-       VK_IMAGE_ASPECT_COLOR_BIT                               = 0x00000001,
-       VK_IMAGE_ASPECT_DEPTH_BIT                               = 0x00000002,
-       VK_IMAGE_ASPECT_STENCIL_BIT                             = 0x00000004,
-       VK_IMAGE_ASPECT_METADATA_BIT                    = 0x00000008,
-       VK_IMAGE_ASPECT_PLANE_0_BIT                             = 0x00000010,
-       VK_IMAGE_ASPECT_PLANE_1_BIT                             = 0x00000020,
-       VK_IMAGE_ASPECT_PLANE_2_BIT                             = 0x00000040,
-       VK_IMAGE_ASPECT_NONE                                    = 0,
-       VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT  = 0x00000080,
-       VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT  = 0x00000100,
-       VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT  = 0x00000200,
-       VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT  = 0x00000400,
-       VK_IMAGE_ASPECT_PLANE_0_BIT_KHR                 = VK_IMAGE_ASPECT_PLANE_0_BIT,
-       VK_IMAGE_ASPECT_PLANE_1_BIT_KHR                 = VK_IMAGE_ASPECT_PLANE_1_BIT,
-       VK_IMAGE_ASPECT_PLANE_2_BIT_KHR                 = VK_IMAGE_ASPECT_PLANE_2_BIT,
-       VK_IMAGE_ASPECT_NONE_KHR                                = VK_IMAGE_ASPECT_NONE,
-       VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM              = 0x7FFFFFFF,
+       VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV            = 0x00000001,
+       VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV            = 0x00000002,
+       VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV        = 0x00000004,
+       VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV       = 0x00000008,
+       VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV                                      = 0x7FFFFFFF
 };
-typedef uint32_t VkImageAspectFlags;
 
-enum VkFormatFeatureFlagBits
+enum VkPipelineCreationFeedbackFlagBits
 {
-       VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT                                                                                                                                     = 0x00000001,
-       VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT                                                                                                                                     = 0x00000002,
-       VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT                                                                                                                      = 0x00000004,
-       VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT                                                                                                                      = 0x00000008,
-       VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT                                                                                                                      = 0x00000010,
-       VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT                                                                                                       = 0x00000020,
-       VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT                                                                                                                                     = 0x00000040,
-       VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT                                                                                                                          = 0x00000080,
-       VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT                                                                                                            = 0x00000100,
-       VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT                                                                                                          = 0x00000200,
-       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_TRANSFER_SRC_BIT                                                                                                                                      = 0x00004000,
-       VK_FORMAT_FEATURE_TRANSFER_DST_BIT                                                                                                                                      = 0x00008000,
-       VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT                                                                                                           = 0x00020000,
-       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT                                                                      = 0x00040000,
-       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT                                     = 0x00080000,
-       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT                                     = 0x00100000,
-       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT           = 0x00200000,
-       VK_FORMAT_FEATURE_DISJOINT_BIT                                                                                                                                          = 0x00400000,
-       VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT                                                                                                            = 0x00800000,
-       VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT                                                                                                       = 0x00010000,
-       VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR                                                                                                           = 0x02000000,
-       VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR                                                                                                                      = 0x04000000,
-       VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR                                                                          = 0x20000000,
-       VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT                                                                                            = 0x00002000,
-       VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT                                                                                                          = 0x01000000,
-       VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR                                                                                      = 0x40000000,
-       VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR                                                                                                            = 0x08000000,
-       VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR                                                                                                                      = 0x10000000,
-       VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG                                                                                            = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
-       VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR                                                                                                                          = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
-       VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR                                                                                                                          = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
-       VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT                                                                                           = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
-       VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR                                                                                                       = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
-       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR                                                          = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
-       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR                         = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
-       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR                         = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
-       VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR       = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
-       VK_FORMAT_FEATURE_DISJOINT_BIT_KHR                                                                                                                                      = VK_FORMAT_FEATURE_DISJOINT_BIT,
-       VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR                                                                                                        = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
-       VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM                                                                                                                            = 0x7FFFFFFF,
+       VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT                                                                 = 0x00000001,
+       VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT                = 0x00000002,
+       VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT                    = 0x00000004,
+       VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT                                                             = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
+       VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT    = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
+       VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT                = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,
+       VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM                                                = 0x7FFFFFFF
 };
-typedef uint32_t VkFormatFeatureFlags;
+typedef VkPipelineCreationFeedbackFlagBits VkPipelineCreationFeedbackFlagBitsEXT;
 
-enum VkImageCreateFlagBits
+enum VkPerformanceCounterScopeKHR
 {
-       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_ALIAS_BIT                                                                               = 0x00000400,
-       VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT                                 = 0x00000040,
-       VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT                                                 = 0x00000020,
-       VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT                                 = 0x00000080,
-       VK_IMAGE_CREATE_EXTENDED_USAGE_BIT                                                              = 0x00000100,
-       VK_IMAGE_CREATE_PROTECTED_BIT                                                                   = 0x00000800,
-       VK_IMAGE_CREATE_DISJOINT_BIT                                                                    = 0x00000200,
-       VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV                                                   = 0x00002000,
-       VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT               = 0x00001000,
-       VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT                                                              = 0x00004000,
-       VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT   = 0x00040000,
-       VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT                                              = 0x00020000,
-       VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM                    = 0x00008000,
-       VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR                             = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
-       VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR                                             = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
-       VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR                             = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
-       VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR                                                  = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
-       VK_IMAGE_CREATE_DISJOINT_BIT_KHR                                                                = VK_IMAGE_CREATE_DISJOINT_BIT,
-       VK_IMAGE_CREATE_ALIAS_BIT_KHR                                                                   = VK_IMAGE_CREATE_ALIAS_BIT,
-       VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM                                                              = 0x7FFFFFFF,
+       VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0,
+       VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR    = 1,
+       VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR                = 2,
+       VK_QUERY_SCOPE_COMMAND_BUFFER_KHR                               = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
+       VK_QUERY_SCOPE_RENDER_PASS_KHR                                  = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
+       VK_QUERY_SCOPE_COMMAND_KHR                                              = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
+       VK_PERFORMANCE_COUNTER_SCOPE_KHR_LAST,
+       VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR               = 0x7FFFFFFF
 };
-typedef uint32_t VkImageCreateFlags;
 
-enum VkSampleCountFlagBits
+enum VkPerformanceCounterUnitKHR
 {
-       VK_SAMPLE_COUNT_1_BIT                           = 0x00000001,
-       VK_SAMPLE_COUNT_2_BIT                           = 0x00000002,
-       VK_SAMPLE_COUNT_4_BIT                           = 0x00000004,
-       VK_SAMPLE_COUNT_8_BIT                           = 0x00000008,
-       VK_SAMPLE_COUNT_16_BIT                          = 0x00000010,
-       VK_SAMPLE_COUNT_32_BIT                          = 0x00000020,
-       VK_SAMPLE_COUNT_64_BIT                          = 0x00000040,
-       VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM      = 0x7FFFFFFF,
+       VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR                         = 0,
+       VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR                      = 1,
+       VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR                     = 2,
+       VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR                           = 3,
+       VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR        = 4,
+       VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR                          = 5,
+       VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR                           = 6,
+       VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR                           = 7,
+       VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR                            = 8,
+       VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR                           = 9,
+       VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR                          = 10,
+       VK_PERFORMANCE_COUNTER_UNIT_KHR_LAST,
+       VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR                        = 0x7FFFFFFF
 };
-typedef uint32_t VkSampleCountFlags;
 
-enum VkImageUsageFlagBits
+enum VkPerformanceCounterStorageKHR
 {
-       VK_IMAGE_USAGE_TRANSFER_SRC_BIT                                                 = 0x00000001,
-       VK_IMAGE_USAGE_TRANSFER_DST_BIT                                                 = 0x00000002,
-       VK_IMAGE_USAGE_SAMPLED_BIT                                                              = 0x00000004,
-       VK_IMAGE_USAGE_STORAGE_BIT                                                              = 0x00000008,
-       VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT                                             = 0x00000010,
-       VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT                             = 0x00000020,
-       VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT                                 = 0x00000040,
-       VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT                                             = 0x00000080,
-       VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR                                 = 0x00000400,
-       VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR                                 = 0x00000800,
-       VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR                                 = 0x00001000,
-       VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT                             = 0x00000200,
-       VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100,
-       VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR                                 = 0x00002000,
-       VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR                                 = 0x00004000,
-       VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR                                 = 0x00008000,
-       VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI                               = 0x00040000,
-       VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM                                   = 0x00100000,
-       VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM                              = 0x00200000,
-       VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV                                = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
-       VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM                                               = 0x7FFFFFFF,
+       VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR        = 0,
+       VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR        = 1,
+       VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR       = 2,
+       VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR       = 3,
+       VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR      = 4,
+       VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR      = 5,
+       VK_PERFORMANCE_COUNTER_STORAGE_KHR_LAST,
+       VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR     = 0x7FFFFFFF
 };
-typedef uint32_t VkImageUsageFlags;
 
-enum VkInstanceCreateFlagBits
+enum VkPerformanceCounterDescriptionFlagBitsKHR
 {
-       VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR        = 0x00000001,
-       VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM                           = 0x7FFFFFFF,
+       VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR        = 0x00000001,
+       VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR        = 0x00000002,
+       VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR            = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
+       VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR            = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,
+       VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR                       = 0x7FFFFFFF
 };
-typedef uint32_t VkInstanceCreateFlags;
 
-enum VkMemoryHeapFlagBits
+enum VkSemaphoreWaitFlagBits
 {
-       VK_MEMORY_HEAP_DEVICE_LOCAL_BIT                 = 0x00000001,
-       VK_MEMORY_HEAP_MULTI_INSTANCE_BIT               = 0x00000002,
-       VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR   = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
-       VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM               = 0x7FFFFFFF,
+       VK_SEMAPHORE_WAIT_ANY_BIT                               = 0x00000001,
+       VK_SEMAPHORE_WAIT_ANY_BIT_KHR                   = VK_SEMAPHORE_WAIT_ANY_BIT,
+       VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM    = 0x7FFFFFFF
 };
-typedef uint32_t VkMemoryHeapFlags;
+typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR;
 
-enum VkMemoryPropertyFlagBits
+enum VkPerformanceConfigurationTypeINTEL
 {
-       VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT                     = 0x00000001,
-       VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT                     = 0x00000002,
-       VK_MEMORY_PROPERTY_HOST_COHERENT_BIT            = 0x00000004,
-       VK_MEMORY_PROPERTY_HOST_CACHED_BIT                      = 0x00000008,
-       VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT         = 0x00000010,
-       VK_MEMORY_PROPERTY_PROTECTED_BIT                        = 0x00000020,
-       VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD      = 0x00000040,
-       VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD      = 0x00000080,
-       VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV          = 0x00000100,
-       VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM           = 0x7FFFFFFF,
+       VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL       = 0,
+       VK_PERFORMANCE_CONFIGURATION_TYPE_INTEL_LAST,
+       VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL                                                                        = 0x7FFFFFFF
 };
-typedef uint32_t VkMemoryPropertyFlags;
 
-enum VkQueueFlagBits
+enum VkQueryPoolSamplingModeINTEL
 {
-       VK_QUEUE_GRAPHICS_BIT                   = 0x00000001,
-       VK_QUEUE_COMPUTE_BIT                    = 0x00000002,
-       VK_QUEUE_TRANSFER_BIT                   = 0x00000004,
-       VK_QUEUE_SPARSE_BINDING_BIT             = 0x00000008,
-       VK_QUEUE_PROTECTED_BIT                  = 0x00000010,
-       VK_QUEUE_VIDEO_DECODE_BIT_KHR   = 0x00000020,
-       VK_QUEUE_VIDEO_ENCODE_BIT_KHR   = 0x00000040,
-       VK_QUEUE_FLAG_BITS_MAX_ENUM             = 0x7FFFFFFF,
+       VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL        = 0,
+       VK_QUERY_POOL_SAMPLING_MODE_INTEL_LAST,
+       VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL      = 0x7FFFFFFF
 };
-typedef uint32_t VkQueueFlags;
 
-enum VkDeviceQueueCreateFlagBits
+enum VkPerformanceOverrideTypeINTEL
 {
-       VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT            = 0x00000001,
-       VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM       = 0x7FFFFFFF,
+       VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL        = 0,
+       VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL     = 1,
+       VK_PERFORMANCE_OVERRIDE_TYPE_INTEL_LAST,
+       VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL                     = 0x7FFFFFFF
 };
-typedef uint32_t VkDeviceQueueCreateFlags;
 
-enum VkPipelineStageFlagBits
+enum VkPerformanceParameterTypeINTEL
 {
-       VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT                                                       = 0x00000001,
-       VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT                                                     = 0x00000002,
-       VK_PIPELINE_STAGE_VERTEX_INPUT_BIT                                                      = 0x00000004,
-       VK_PIPELINE_STAGE_VERTEX_SHADER_BIT                                                     = 0x00000008,
-       VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT                       = 0x00000010,
-       VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT            = 0x00000020,
-       VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT                                           = 0x00000040,
-       VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT                                           = 0x00000080,
-       VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT                                      = 0x00000100,
-       VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT                                       = 0x00000200,
-       VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT                           = 0x00000400,
-       VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT                                            = 0x00000800,
-       VK_PIPELINE_STAGE_TRANSFER_BIT                                                          = 0x00001000,
-       VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT                                            = 0x00002000,
-       VK_PIPELINE_STAGE_HOST_BIT                                                                      = 0x00004000,
-       VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT                                                      = 0x00008000,
-       VK_PIPELINE_STAGE_ALL_COMMANDS_BIT                                                      = 0x00010000,
-       VK_PIPELINE_STAGE_NONE                                                                          = 0,
-       VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT                            = 0x01000000,
-       VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT                         = 0x00040000,
-       VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR          = 0x02000000,
-       VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR                            = 0x00200000,
-       VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV                                            = 0x00080000,
-       VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV                                            = 0x00100000,
-       VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT                      = 0x00800000,
-       VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR      = 0x00400000,
-       VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV                                     = 0x00020000,
-       VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV                                     = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
-       VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV                                     = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
-       VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV           = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
-       VK_PIPELINE_STAGE_NONE_KHR                                                                      = VK_PIPELINE_STAGE_NONE,
-       VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM                                            = 0x7FFFFFFF,
+       VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL               = 0,
+       VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL    = 1,
+       VK_PERFORMANCE_PARAMETER_TYPE_INTEL_LAST,
+       VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL                                    = 0x7FFFFFFF
 };
-typedef uint32_t VkPipelineStageFlags;
 
-enum VkSparseMemoryBindFlagBits
+enum VkPerformanceValueTypeINTEL
 {
-       VK_SPARSE_MEMORY_BIND_METADATA_BIT                      = 0x00000001,
-       VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM        = 0x7FFFFFFF,
+       VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL          = 0,
+       VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL          = 1,
+       VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL           = 2,
+       VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL            = 3,
+       VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL          = 4,
+       VK_PERFORMANCE_VALUE_TYPE_INTEL_LAST,
+       VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL        = 0x7FFFFFFF
 };
-typedef uint32_t VkSparseMemoryBindFlags;
 
-enum VkSparseImageFormatFlagBits
+enum VkLineRasterizationModeEXT
 {
-       VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT                       = 0x00000001,
-       VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT                     = 0x00000002,
-       VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT       = 0x00000004,
-       VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM                       = 0x7FFFFFFF,
+       VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT                          = 0,
+       VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT                      = 1,
+       VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT                        = 2,
+       VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT       = 3,
+       VK_LINE_RASTERIZATION_MODE_EXT_LAST,
+       VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT                         = 0x7FFFFFFF
 };
-typedef uint32_t VkSparseImageFormatFlags;
 
-enum VkFenceCreateFlagBits
+enum VkToolPurposeFlagBits
 {
-       VK_FENCE_CREATE_SIGNALED_BIT            = 0x00000001,
-       VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM      = 0x7FFFFFFF,
+       VK_TOOL_PURPOSE_VALIDATION_BIT                          = 0x00000001,
+       VK_TOOL_PURPOSE_PROFILING_BIT                           = 0x00000002,
+       VK_TOOL_PURPOSE_TRACING_BIT                                     = 0x00000004,
+       VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT         = 0x00000008,
+       VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT          = 0x00000010,
+       VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT         = 0x00000020,
+       VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT           = 0x00000040,
+       VK_TOOL_PURPOSE_VALIDATION_BIT_EXT                      = VK_TOOL_PURPOSE_VALIDATION_BIT,
+       VK_TOOL_PURPOSE_PROFILING_BIT_EXT                       = VK_TOOL_PURPOSE_PROFILING_BIT,
+       VK_TOOL_PURPOSE_TRACING_BIT_EXT                         = VK_TOOL_PURPOSE_TRACING_BIT,
+       VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT     = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
+       VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT      = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
+       VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM                      = 0x7FFFFFFF
 };
-typedef uint32_t VkFenceCreateFlags;
+typedef VkToolPurposeFlagBits VkToolPurposeFlagBitsEXT;
 
-enum VkEventCreateFlagBits
+enum VkFragmentShadingRateNV
 {
-       VK_EVENT_CREATE_DEVICE_ONLY_BIT         = 0x00000001,
-       VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR     = VK_EVENT_CREATE_DEVICE_ONLY_BIT,
-       VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM      = 0x7FFFFFFF,
+       VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV              = 0,
+       VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1,
+       VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4,
+       VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5,
+       VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6,
+       VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
+       VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10,
+       VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV             = 11,
+       VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV             = 12,
+       VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV             = 13,
+       VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV    = 14,
+       VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV                              = 15,
+       VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV                                    = 0x7FFFFFFF
 };
-typedef uint32_t VkEventCreateFlags;
 
-enum VkQueryPipelineStatisticFlagBits
+enum VkFragmentShadingRateTypeNV
 {
-       VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT                                         = 0x00000001,
-       VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT                                       = 0x00000002,
-       VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT                                       = 0x00000004,
-       VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT                                     = 0x00000008,
-       VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT                                      = 0x00000010,
-       VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT                                            = 0x00000020,
-       VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT                                                     = 0x00000040,
-       VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT                                     = 0x00000080,
-       VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT                     = 0x00000100,
-       VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT      = 0x00000200,
-       VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT                                      = 0x00000400,
-       VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM                                                          = 0x7FFFFFFF,
+       VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV  = 0,
+       VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV                  = 1,
+       VK_FRAGMENT_SHADING_RATE_TYPE_NV_LAST,
+       VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV               = 0x7FFFFFFF
 };
-typedef uint32_t VkQueryPipelineStatisticFlags;
 
-enum VkQueryResultFlagBits
+enum VkSubpassMergeStatusEXT
 {
-       VK_QUERY_RESULT_64_BIT                                  = 0x00000001,
-       VK_QUERY_RESULT_WAIT_BIT                                = 0x00000002,
-       VK_QUERY_RESULT_WITH_AVAILABILITY_BIT   = 0x00000004,
-       VK_QUERY_RESULT_PARTIAL_BIT                             = 0x00000008,
-       VK_QUERY_RESULT_WITH_STATUS_BIT_KHR             = 0x00000010,
-       VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM              = 0x7FFFFFFF,
+       VK_SUBPASS_MERGE_STATUS_MERGED_EXT                                                                              = 0,
+       VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT                                                                  = 1,
+       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT                                             = 2,
+       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT                                 = 3,
+       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT                                   = 4,
+       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT                                                 = 5,
+       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT                                             = 6,
+       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT    = 7,
+       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT                             = 8,
+       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT                             = 9,
+       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT                              = 10,
+       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT                 = 11,
+       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT                                   = 12,
+       VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT                                              = 13,
+       VK_SUBPASS_MERGE_STATUS_EXT_LAST,
+       VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT                                                                    = 0x7FFFFFFF
 };
-typedef uint32_t VkQueryResultFlags;
 
-enum VkBufferCreateFlagBits
-{
-       VK_BUFFER_CREATE_SPARSE_BINDING_BIT                                             = 0x00000001,
-       VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT                                   = 0x00000002,
-       VK_BUFFER_CREATE_SPARSE_ALIASED_BIT                                             = 0x00000004,
-       VK_BUFFER_CREATE_PROTECTED_BIT                                                  = 0x00000008,
-       VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT              = 0x00000010,
-       VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT  = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
-       VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR  = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
-       VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM                                             = 0x7FFFFFFF,
-};
-typedef uint32_t VkBufferCreateFlags;
+typedef uint64_t VkAccessFlagBits2;
+static const VkAccessFlagBits2 VK_ACCESS_2_NONE                                                                                                = 0ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR                                                                                    = 0ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT                                           = 0x00000001ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR                                       = 0x00000001ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT                                                                      = 0x00000002ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR                                                          = 0x00000002ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT                                           = 0x00000004ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR                                       = 0x00000004ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT                                                                    = 0x00000008ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR                                                                = 0x00000008ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT                                           = 0x00000010ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR                                       = 0x00000010ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT                                                                     = 0x00000020ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR                                                         = 0x00000020ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT                                                                    = 0x00000040ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR                                                                = 0x00000040ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT                                           = 0x00000080ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR                                       = 0x00000080ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT                                          = 0x00000100ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR                                      = 0x00000100ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT                           = 0x00000200ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR                       = 0x00000200ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT                          = 0x00000400ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR                      = 0x00000400ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT                                                           = 0x00000800ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR                                                       = 0x00000800ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT                                                          = 0x00001000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR                                                      = 0x00001000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT                                                                       = 0x00002000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR                                                           = 0x00002000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT                                                                      = 0x00004000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR                                                          = 0x00004000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT                                                                     = 0x00008000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR                                                         = 0x00008000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT                                                                    = 0x00010000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR                                                                = 0x00010000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV                                      = 0x00020000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV                                     = 0x00040000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT           = 0x00080000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT                          = 0x00100000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR                         = 0x00200000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV                          = 0x00200000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR                                = 0x00400000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV                         = 0x00400000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR       = 0x00800000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV                                      = 0x00800000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT                           = 0x01000000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT                                    = 0x02000000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT                     = 0x04000000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT                    = 0x08000000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT                                                     = 0x100000000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR                                         = 0x100000000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT                                                     = 0x200000000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR                                         = 0x200000000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT                                                    = 0x400000000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR                                                = 0x400000000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR                                           = 0x800000000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR                                          = 0x1000000000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR                                           = 0x2000000000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR                                          = 0x4000000000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI                                     = 0x8000000000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR                           = 0x10000000000ULL;
 
-enum VkBufferUsageFlagBits
-{
-       VK_BUFFER_USAGE_TRANSFER_SRC_BIT                                                                                = 0x00000001,
-       VK_BUFFER_USAGE_TRANSFER_DST_BIT                                                                                = 0x00000002,
-       VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT                                                                = 0x00000004,
-       VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT                                                                = 0x00000008,
-       VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT                                                                              = 0x00000010,
-       VK_BUFFER_USAGE_STORAGE_BUFFER_BIT                                                                              = 0x00000020,
-       VK_BUFFER_USAGE_INDEX_BUFFER_BIT                                                                                = 0x00000040,
-       VK_BUFFER_USAGE_VERTEX_BUFFER_BIT                                                                               = 0x00000080,
-       VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT                                                                             = 0x00000100,
-       VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT                                                               = 0x00020000,
-       VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR                                                                = 0x00002000,
-       VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR                                                                = 0x00004000,
-       VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT                                               = 0x00000800,
-       VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT                               = 0x00001000,
-       VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT                                                   = 0x00000200,
-       VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR    = 0x00080000,
-       VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR                                  = 0x00100000,
-       VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR                                                    = 0x00000400,
-       VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR                                                                = 0x00008000,
-       VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR                                                                = 0x00010000,
-       VK_BUFFER_USAGE_RAY_TRACING_BIT_NV                                                                              = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
-       VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT                                                   = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
-       VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR                                                   = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
-       VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM                                                                              = 0x7FFFFFFF,
-};
-typedef uint32_t VkBufferUsageFlags;
+typedef VkAccessFlagBits2 VkAccessFlagBits2KHR;
 
-enum VkImageViewCreateFlagBits
-{
-       VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT       = 0x00000001,
-       VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT      = 0x00000002,
-       VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM                                         = 0x7FFFFFFF,
-};
-typedef uint32_t VkImageViewCreateFlags;
+typedef uint64_t VkPipelineStageFlagBits2;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE                                                                         = 0ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR                                                                     = 0ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT                                                      = 0x00000001ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR                                          = 0x00000001ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT                                                    = 0x00000002ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR                                                = 0x00000002ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT                                                     = 0x00000004ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR                                         = 0x00000004ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT                                                    = 0x00000008ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR                                                = 0x00000008ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT                      = 0x00000010ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR          = 0x00000010ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT           = 0x00000020ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR       = 0x00000020ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT                                          = 0x00000040ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR                                      = 0x00000040ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT                                          = 0x00000080ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR                                      = 0x00000080ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT                                     = 0x00000100ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR                         = 0x00000100ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT                                      = 0x00000200ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR                          = 0x00000200ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT                          = 0x00000400ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR                      = 0x00000400ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT                                           = 0x00000800ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR                                       = 0x00000800ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT                                                     = 0x00001000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR                                         = 0x00001000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR                                                     = 0x00001000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT                                           = 0x00002000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR                                       = 0x00002000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT                                                                     = 0x00004000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR                                                         = 0x00004000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT                                                     = 0x00008000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR                                         = 0x00008000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT                                                     = 0x00010000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR                                         = 0x00010000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV                                    = 0x00020000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT                                = 0x00040000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV                                           = 0x00080000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV                                           = 0x00100000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR                           = 0x00200000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV                                    = 0x00200000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR     = 0x00400000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV                                    = 0x00400000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT                     = 0x00800000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT                           = 0x01000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR         = 0x02000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV          = 0x02000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR                                         = 0x04000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR                                         = 0x08000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR          = 0x10000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT                                                                     = 0x100000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR                                                         = 0x100000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT                                                          = 0x200000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR                                                      = 0x200000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT                                                                     = 0x400000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR                                                         = 0x400000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT                                                                    = 0x800000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR                                                                = 0x800000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT                                                      = 0x1000000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR                                          = 0x1000000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT                           = 0x2000000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR                       = 0x2000000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT                                = 0x4000000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR                    = 0x4000000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI                           = 0x8000000000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI                           = 0x10000000000ULL;
 
-enum VkPipelineCacheCreateFlagBits
-{
-       VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT            = 0x00000001,
-       VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT        = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
-       VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM                                     = 0x7FFFFFFF,
-};
-typedef uint32_t VkPipelineCacheCreateFlags;
+typedef VkPipelineStageFlagBits2 VkPipelineStageFlagBits2KHR;
 
-enum VkColorComponentFlagBits
+enum VkProvokingVertexModeEXT
 {
-       VK_COLOR_COMPONENT_R_BIT                                = 0x00000001,
-       VK_COLOR_COMPONENT_G_BIT                                = 0x00000002,
-       VK_COLOR_COMPONENT_B_BIT                                = 0x00000004,
-       VK_COLOR_COMPONENT_A_BIT                                = 0x00000008,
-       VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM   = 0x7FFFFFFF,
+       VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT       = 0,
+       VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT        = 1,
+       VK_PROVOKING_VERTEX_MODE_EXT_LAST,
+       VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT           = 0x7FFFFFFF
 };
-typedef uint32_t VkColorComponentFlags;
 
-enum VkPipelineCreateFlagBits
+enum VkImageConstraintsInfoFlagBitsFUCHSIA
 {
-       VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT                                                                             = 0x00000001,
-       VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT                                                                                = 0x00000002,
-       VK_PIPELINE_CREATE_DERIVATIVE_BIT                                                                                               = 0x00000004,
-       VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT                                                             = 0x00000008,
-       VK_PIPELINE_CREATE_DISPATCH_BASE_BIT                                                                                    = 0x00000010,
-       VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT                                                = 0x00000100,
-       VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT                                                                  = 0x00000200,
-       VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR                   = 0x00200000,
-       VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT                    = 0x00400000,
-       VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR                                  = 0x00004000,
-       VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR                              = 0x00008000,
-       VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR                                             = 0x00010000,
-       VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR                             = 0x00020000,
-       VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR                                                   = 0x00001000,
-       VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR                                                               = 0x00002000,
-       VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR               = 0x00080000,
-       VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV                                                                                 = 0x00000020,
-       VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR                                                                   = 0x00000040,
-       VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR                                             = 0x00000080,
-       VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV                                                                             = 0x00040000,
-       VK_PIPELINE_CREATE_LIBRARY_BIT_KHR                                                                                              = 0x00000800,
-       VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT                                   = 0x00800000,
-       VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT                                                               = 0x00000400,
-       VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV                                                              = 0x00100000,
-       VK_PIPELINE_CREATE_DISPATCH_BASE                                                                                                = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
-       VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
-       VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT  = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
-       VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR                                                 = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
-       VK_PIPELINE_CREATE_DISPATCH_BASE_KHR                                                                                    = VK_PIPELINE_CREATE_DISPATCH_BASE,
-       VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT                                    = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,
-       VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT                                                              = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,
-       VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM                                                                                   = 0x7FFFFFFF,
+       VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA               = 0x00000001,
+       VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA                = 0x00000002,
+       VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA              = 0x00000004,
+       VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA               = 0x00000008,
+       VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA    = 0x00000010,
+       VK_IMAGE_CONSTRAINTS_INFO_FLAG_BITS_MAX_ENUM_FUCHSIA    = 0x7FFFFFFF
 };
-typedef uint32_t VkPipelineCreateFlags;
 
-enum VkPipelineShaderStageCreateFlagBits
-{
-       VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT         = 0x00000001,
-       VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT                      = 0x00000002,
-       VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT     = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,
-       VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT          = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
-       VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM                                      = 0x7FFFFFFF,
-};
-typedef uint32_t VkPipelineShaderStageCreateFlags;
+typedef uint64_t VkFormatFeatureFlagBits2;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT                                                                                                                                    = 0x00000001ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR                                                                                                                                = 0x00000001ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT                                                                                                                                    = 0x00000002ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR                                                                                                                                = 0x00000002ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT                                                                                                                     = 0x00000004ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR                                                                                                         = 0x00000004ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT                                                                                                                     = 0x00000008ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR                                                                                                         = 0x00000008ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT                                                                                                                     = 0x00000010ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR                                                                                                         = 0x00000010ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT                                                                                                      = 0x00000020ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR                                                                                          = 0x00000020ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT                                                                                                                                    = 0x00000040ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR                                                                                                                                = 0x00000040ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT                                                                                                                         = 0x00000080ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR                                                                                                                     = 0x00000080ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT                                                                                                           = 0x00000100ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR                                                                                                       = 0x00000100ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT                                                                                                         = 0x00000200ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR                                                                                                     = 0x00000200ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT                                                                                                                                         = 0x00000400ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR                                                                                                                                     = 0x00000400ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT                                                                                                                                         = 0x00000800ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR                                                                                                                                     = 0x00000800ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT                                                                                                      = 0x00001000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR                                                                                          = 0x00001000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT                                                                                                       = 0x00002000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT                                                                                           = 0x00002000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT                                                                                                                                     = 0x00004000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR                                                                                                                         = 0x00004000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT                                                                                                                                     = 0x00008000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR                                                                                                                         = 0x00008000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT                                                                                                      = 0x00010000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR                                                                                          = 0x00010000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT                                                                                                          = 0x00020000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR                                                                                                      = 0x00020000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT                                                                     = 0x00040000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR                                                         = 0x00040000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT                                    = 0x00080000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR                                = 0x00080000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT                                    = 0x00100000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR                                = 0x00100000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT          = 0x00200000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR      = 0x00200000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT                                                                                                                                         = 0x00400000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR                                                                                                                                     = 0x00400000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT                                                                                                           = 0x00800000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR                                                                                                       = 0x00800000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT                                                                                                         = 0x01000000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR                                                                                                          = 0x02000000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR                                                                                                                     = 0x04000000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR                                                                                                           = 0x08000000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR                                                                                                                     = 0x10000000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR                                                                         = 0x20000000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR                                                                                     = 0x40000000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT                                                                                                      = 0x80000000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR                                                                                          = 0x80000000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT                                                                                                     = 0x100000000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR                                                                                         = 0x100000000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT                                                                                           = 0x200000000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR                                                                                       = 0x200000000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM                                                                                                                                = 0x400000000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM                                                                                                                = 0x800000000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM                                                                                                                      = 0x1000000000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM                                                                                                          = 0x2000000000ULL;
+static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV                                                                                                       = 0x4000000000ULL;
 
-enum VkShaderStageFlagBits
-{
-       VK_SHADER_STAGE_VERTEX_BIT                                      = 0x00000001,
-       VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT        = 0x00000002,
-       VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT     = 0x00000004,
-       VK_SHADER_STAGE_GEOMETRY_BIT                            = 0x00000008,
-       VK_SHADER_STAGE_FRAGMENT_BIT                            = 0x00000010,
-       VK_SHADER_STAGE_COMPUTE_BIT                                     = 0x00000020,
-       VK_SHADER_STAGE_ALL_GRAPHICS                            = 0x0000001F,
-       VK_SHADER_STAGE_ALL                                                     = 0x7FFFFFFF,
-       VK_SHADER_STAGE_RAYGEN_BIT_KHR                          = 0x00000100,
-       VK_SHADER_STAGE_ANY_HIT_BIT_KHR                         = 0x00000200,
-       VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR                     = 0x00000400,
-       VK_SHADER_STAGE_MISS_BIT_KHR                            = 0x00000800,
-       VK_SHADER_STAGE_INTERSECTION_BIT_KHR            = 0x00001000,
-       VK_SHADER_STAGE_CALLABLE_BIT_KHR                        = 0x00002000,
-       VK_SHADER_STAGE_TASK_BIT_NV                                     = 0x00000040,
-       VK_SHADER_STAGE_MESH_BIT_NV                                     = 0x00000080,
-       VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI      = 0x00004000,
-       VK_SHADER_STAGE_RAYGEN_BIT_NV                           = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
-       VK_SHADER_STAGE_ANY_HIT_BIT_NV                          = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
-       VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV                      = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
-       VK_SHADER_STAGE_MISS_BIT_NV                                     = VK_SHADER_STAGE_MISS_BIT_KHR,
-       VK_SHADER_STAGE_INTERSECTION_BIT_NV                     = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
-       VK_SHADER_STAGE_CALLABLE_BIT_NV                         = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
-       VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM                      = 0x7FFFFFFF,
-};
-typedef uint32_t VkShaderStageFlags;
+typedef VkFormatFeatureFlagBits2 VkFormatFeatureFlagBits2KHR;
 
-enum VkCullModeFlagBits
+enum VkRenderingFlagBits
 {
-       VK_CULL_MODE_NONE                               = 0,
-       VK_CULL_MODE_FRONT_BIT                  = 0x00000001,
-       VK_CULL_MODE_BACK_BIT                   = 0x00000002,
-       VK_CULL_MODE_FRONT_AND_BACK             = 0x00000003,
-       VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF,
+       VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT             = 0x00000001,
+       VK_RENDERING_SUSPENDING_BIT                                                             = 0x00000002,
+       VK_RENDERING_RESUMING_BIT                                                               = 0x00000004,
+       VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
+       VK_RENDERING_SUSPENDING_BIT_KHR                                                 = VK_RENDERING_SUSPENDING_BIT,
+       VK_RENDERING_RESUMING_BIT_KHR                                                   = VK_RENDERING_RESUMING_BIT,
+       VK_RENDERING_FLAG_BITS_MAX_ENUM                                                 = 0x7FFFFFFF
 };
-typedef uint32_t VkCullModeFlags;
+typedef VkRenderingFlagBits VkRenderingFlagBitsKHR;
 
 enum VkPipelineDepthStencilStateCreateFlagBits
 {
        VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM              = 0x00000001,
        VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM    = 0x00000002,
-       VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM                                                                               = 0x7FFFFFFF,
+       VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM                                                                               = 0x7FFFFFFF
 };
-typedef uint32_t VkPipelineDepthStencilStateCreateFlags;
 
 enum VkPipelineColorBlendStateCreateFlagBits
 {
        VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM      = 0x00000001,
-       VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM                                                         = 0x7FFFFFFF,
+       VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM                                                         = 0x7FFFFFFF
 };
-typedef uint32_t VkPipelineColorBlendStateCreateFlags;
 
-enum VkPipelineLayoutCreateFlagBits
+enum VkImageCompressionFlagBitsEXT
 {
-       VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT      = 0x00000002,
-       VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM            = 0x7FFFFFFF,
+       VK_IMAGE_COMPRESSION_DEFAULT_EXT                                = 0,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT             = 0x00000001,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT    = 0x00000002,
+       VK_IMAGE_COMPRESSION_DISABLED_EXT                               = 0x00000004,
+       VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT             = 0x7FFFFFFF
 };
-typedef uint32_t VkPipelineLayoutCreateFlags;
 
-enum VkSamplerCreateFlagBits
+enum VkImageCompressionFixedRateFlagBitsEXT
 {
-       VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT                                            = 0x00000001,
-       VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT      = 0x00000002,
-       VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT                         = 0x00000004,
-       VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM                                     = 0x00000010,
-       VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM                                            = 0x7FFFFFFF,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT                                = 0,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT                    = 0x00000001,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT                    = 0x00000002,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT                    = 0x00000004,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT                    = 0x00000008,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT                    = 0x00000010,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT                    = 0x00000020,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT                    = 0x00000040,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT                    = 0x00000080,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT                    = 0x00000100,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT                   = 0x00000200,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT                   = 0x00000400,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT                   = 0x00000800,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT                   = 0x00001000,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT                   = 0x00002000,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT                   = 0x00004000,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT                   = 0x00008000,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT                   = 0x00010000,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT                   = 0x00020000,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT                   = 0x00040000,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT                   = 0x00080000,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT                   = 0x00100000,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT                   = 0x00200000,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT                   = 0x00400000,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT                   = 0x00800000,
+       VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT  = 0x7FFFFFFF
 };
-typedef uint32_t VkSamplerCreateFlags;
 
-enum VkDescriptorPoolCreateFlagBits
+enum VkExportMetalObjectTypeFlagBitsEXT
 {
-       VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT       = 0x00000001,
-       VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT         = 0x00000002,
-       VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE           = 0x00000004,
-       VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT     = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
-       VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM            = 0x7FFFFFFF,
+       VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT                = 0x00000001,
+       VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT = 0x00000002,
+       VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT                = 0x00000004,
+       VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT               = 0x00000008,
+       VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT             = 0x00000010,
+       VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT  = 0x00000020,
+       VK_EXPORT_METAL_OBJECT_TYPE_FLAG_BITS_MAX_ENUM_EXT              = 0x7FFFFFFF
 };
-typedef uint32_t VkDescriptorPoolCreateFlags;
 
-enum VkDescriptorSetLayoutCreateFlagBits
+enum VkPipelineRobustnessBufferBehaviorEXT
 {
-       VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT              = 0x00000002,
-       VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR                 = 0x00000001,
-       VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE                = 0x00000004,
-       VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT  = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
-       VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM                              = 0x7FFFFFFF,
+       VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT                       = 0,
+       VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT                                     = 1,
+       VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT         = 2,
+       VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT       = 3,
+       VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_EXT_LAST,
+       VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT                                     = 0x7FFFFFFF
 };
-typedef uint32_t VkDescriptorSetLayoutCreateFlags;
 
-enum VkAttachmentDescriptionFlagBits
+enum VkPipelineRobustnessImageBehaviorEXT
 {
-       VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT                 = 0x00000001,
-       VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM    = 0x7FFFFFFF,
+       VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT                = 0,
+       VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT                              = 1,
+       VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT   = 2,
+       VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3,
+       VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_EXT_LAST,
+       VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT                              = 0x7FFFFFFF
 };
-typedef uint32_t VkAttachmentDescriptionFlags;
 
-enum VkDependencyFlagBits
+enum VkColorSpaceKHR
 {
-       VK_DEPENDENCY_BY_REGION_BIT                     = 0x00000001,
-       VK_DEPENDENCY_DEVICE_GROUP_BIT          = 0x00000004,
-       VK_DEPENDENCY_VIEW_LOCAL_BIT            = 0x00000002,
-       VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR        = VK_DEPENDENCY_VIEW_LOCAL_BIT,
-       VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR      = VK_DEPENDENCY_DEVICE_GROUP_BIT,
-       VK_DEPENDENCY_FLAG_BITS_MAX_ENUM        = 0x7FFFFFFF,
+       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_DISPLAY_P3_LINEAR_EXT            = 1000104003,
+       VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT                     = 1000104004,
+       VK_COLOR_SPACE_BT709_LINEAR_EXT                         = 1000104005,
+       VK_COLOR_SPACE_BT709_NONLINEAR_EXT                      = 1000104006,
+       VK_COLOR_SPACE_BT2020_LINEAR_EXT                        = 1000104007,
+       VK_COLOR_SPACE_HDR10_ST2084_EXT                         = 1000104008,
+       VK_COLOR_SPACE_DOLBYVISION_EXT                          = 1000104009,
+       VK_COLOR_SPACE_HDR10_HLG_EXT                            = 1000104010,
+       VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT                      = 1000104011,
+       VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT           = 1000104012,
+       VK_COLOR_SPACE_PASS_THROUGH_EXT                         = 1000104013,
+       VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT      = 1000104014,
+       VK_COLOR_SPACE_DISPLAY_NATIVE_AMD                       = 1000213000,
+       VK_COLORSPACE_SRGB_NONLINEAR_KHR                        = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
+       VK_COLOR_SPACE_DCI_P3_LINEAR_EXT                        = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
+       VK_COLOR_SPACE_MAX_ENUM_KHR                                     = 0x7FFFFFFF
 };
-typedef uint32_t VkDependencyFlags;
 
-enum VkFramebufferCreateFlagBits
+enum VkCompositeAlphaFlagBitsKHR
 {
-       VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT                     = 0x00000001,
-       VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR         = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
-       VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM        = 0x7FFFFFFF,
+       VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR                       = 0x00000001,
+       VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR       = 0x00000002,
+       VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR      = 0x00000004,
+       VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR                      = 0x00000008,
+       VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR       = 0x7FFFFFFF
 };
-typedef uint32_t VkFramebufferCreateFlags;
 
-enum VkRenderPassCreateFlagBits
+enum VkDisplayPlaneAlphaFlagBitsKHR
 {
-       VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM        = 0x00000002,
-       VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM        = 0x7FFFFFFF,
+       VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR                                   = 0x00000001,
+       VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR                                   = 0x00000002,
+       VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR                                = 0x00000004,
+       VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR  = 0x00000008,
+       VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR                   = 0x7FFFFFFF
 };
-typedef uint32_t VkRenderPassCreateFlags;
 
-enum VkSubpassDescriptionFlagBits
+enum VkPresentModeKHR
 {
-       VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX                                                              = 0x00000001,
-       VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX                                                 = 0x00000002,
-       VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM                                                                 = 0x00000004,
-       VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM                                                                  = 0x00000008,
-       VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM              = 0x00000010,
-       VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM              = 0x00000020,
-       VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM    = 0x00000040,
-       VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM                                                                               = 0x7FFFFFFF,
+       VK_PRESENT_MODE_IMMEDIATE_KHR                                   = 0,
+       VK_PRESENT_MODE_MAILBOX_KHR                                             = 1,
+       VK_PRESENT_MODE_FIFO_KHR                                                = 2,
+       VK_PRESENT_MODE_FIFO_RELAXED_KHR                                = 3,
+       VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR               = 1000111000,
+       VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR   = 1000111001,
+       VK_PRESENT_MODE_MAX_ENUM_KHR                                    = 0x7FFFFFFF
 };
-typedef uint32_t VkSubpassDescriptionFlags;
 
-enum VkCommandPoolCreateFlagBits
+enum VkSurfaceTransformFlagBitsKHR
 {
-       VK_COMMAND_POOL_CREATE_TRANSIENT_BIT                    = 0x00000001,
-       VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
-       VK_COMMAND_POOL_CREATE_PROTECTED_BIT                    = 0x00000004,
-       VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM               = 0x7FFFFFFF,
+       VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR                                           = 0x00000001,
+       VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR                                          = 0x00000002,
+       VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR                                         = 0x00000004,
+       VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR                                         = 0x00000008,
+       VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR                          = 0x00000010,
+       VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR        = 0x00000020,
+       VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR       = 0x00000040,
+       VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR       = 0x00000080,
+       VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR                                            = 0x00000100,
+       VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR                                     = 0x7FFFFFFF
 };
-typedef uint32_t VkCommandPoolCreateFlags;
 
-enum VkCommandPoolResetFlagBits
+enum VkDebugReportFlagBitsEXT
 {
-       VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT     = 0x00000001,
-       VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM        = 0x7FFFFFFF,
+       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,
+       VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT          = 0x7FFFFFFF
+};
+
+enum VkDebugReportObjectTypeEXT
+{
+       VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT                                                 = 0,
+       VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT                                                = 1,
+       VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT                                 = 2,
+       VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT                                                  = 3,
+       VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT                                                   = 4,
+       VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT                                               = 5,
+       VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT                                  = 6,
+       VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT                                                   = 7,
+       VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT                                   = 8,
+       VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT                                                  = 9,
+       VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT                                                   = 10,
+       VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT                                                   = 11,
+       VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT                                              = 12,
+       VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT                                             = 13,
+       VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT                                              = 14,
+       VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT                                   = 15,
+       VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT                                  = 16,
+       VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT                                 = 17,
+       VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT                                             = 18,
+       VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT                                                = 19,
+       VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT                   = 20,
+       VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT                                                 = 21,
+       VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT                                 = 22,
+       VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT                                  = 23,
+       VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT                                             = 24,
+       VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT                                    = 25,
+       VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT                                             = 26,
+       VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT                                   = 27,
+       VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT               = 28,
+       VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT                                             = 29,
+       VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT                                = 30,
+       VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT                    = 33,
+       VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT                                   = 1000029000,
+       VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT                                 = 1000029001,
+       VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT              = 1000085000,
+       VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT              = 1000150000,
+       VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT                = 1000156000,
+       VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT               = 1000165000,
+       VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT               = 1000366000,
+       VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT                                    = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
+       VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT                                = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
+       VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT  = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
+       VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT    = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
+       VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT                                                = 0x7FFFFFFF
 };
-typedef uint32_t VkCommandPoolResetFlags;
 
-enum VkCommandBufferUsageFlagBits
+enum VkDeviceMemoryReportEventTypeEXT
 {
-       VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT                     = 0x00000001,
-       VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT        = 0x00000002,
-       VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT            = 0x00000004,
-       VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM                      = 0x7FFFFFFF,
+       VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT                         = 0,
+       VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT                                     = 1,
+       VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT                           = 2,
+       VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT                         = 3,
+       VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT        = 4,
+       VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_EXT_LAST,
+       VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT                         = 0x7FFFFFFF
 };
-typedef uint32_t VkCommandBufferUsageFlags;
 
-enum VkQueryControlFlagBits
+enum VkRasterizationOrderAMD
 {
-       VK_QUERY_CONTROL_PRECISE_BIT            = 0x00000001,
-       VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM     = 0x7FFFFFFF,
+       VK_RASTERIZATION_ORDER_STRICT_AMD       = 0,
+       VK_RASTERIZATION_ORDER_RELAXED_AMD      = 1,
+       VK_RASTERIZATION_ORDER_AMD_LAST,
+       VK_RASTERIZATION_ORDER_MAX_ENUM_AMD     = 0x7FFFFFFF
 };
-typedef uint32_t VkQueryControlFlags;
 
-enum VkCommandBufferResetFlagBits
+enum VkExternalMemoryHandleTypeFlagBitsNV
 {
-       VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT   = 0x00000001,
-       VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM              = 0x7FFFFFFF,
+       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
 };
-typedef uint32_t VkCommandBufferResetFlags;
 
-enum VkStencilFaceFlagBits
+enum VkExternalMemoryFeatureFlagBitsNV
 {
-       VK_STENCIL_FACE_FRONT_BIT                       = 0x00000001,
-       VK_STENCIL_FACE_BACK_BIT                        = 0x00000002,
-       VK_STENCIL_FACE_FRONT_AND_BACK          = 0x00000003,
-       VK_STENCIL_FRONT_AND_BACK                       = VK_STENCIL_FACE_FRONT_AND_BACK,
-       VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM      = 0x7FFFFFFF,
+       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
 };
-typedef uint32_t VkStencilFaceFlags;
 
-enum VkSubgroupFeatureFlagBits
+enum VkValidationCheckEXT
 {
-       VK_SUBGROUP_FEATURE_BASIC_BIT                           = 0x00000001,
-       VK_SUBGROUP_FEATURE_VOTE_BIT                            = 0x00000002,
-       VK_SUBGROUP_FEATURE_ARITHMETIC_BIT                      = 0x00000004,
-       VK_SUBGROUP_FEATURE_BALLOT_BIT                          = 0x00000008,
-       VK_SUBGROUP_FEATURE_SHUFFLE_BIT                         = 0x00000010,
-       VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT        = 0x00000020,
-       VK_SUBGROUP_FEATURE_CLUSTERED_BIT                       = 0x00000040,
-       VK_SUBGROUP_FEATURE_QUAD_BIT                            = 0x00000080,
-       VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV          = 0x00000100,
-       VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM          = 0x7FFFFFFF,
+       VK_VALIDATION_CHECK_ALL_EXT                     = 0,
+       VK_VALIDATION_CHECK_SHADERS_EXT         = 1,
+       VK_VALIDATION_CHECK_EXT_LAST,
+       VK_VALIDATION_CHECK_MAX_ENUM_EXT        = 0x7FFFFFFF
 };
-typedef uint32_t VkSubgroupFeatureFlags;
 
-enum VkPeerMemoryFeatureFlagBits
+enum VkValidationFeatureEnableEXT
 {
-       VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT                     = 0x00000001,
-       VK_PEER_MEMORY_FEATURE_COPY_DST_BIT                     = 0x00000002,
-       VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT          = 0x00000004,
-       VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT          = 0x00000008,
-       VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR         = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
-       VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR         = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
-       VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR      = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
-       VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR      = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
-       VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM       = 0x7FFFFFFF,
+       VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT                                           = 0,
+       VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT      = 1,
+       VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT                                         = 2,
+       VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT                                           = 3,
+       VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT                     = 4,
+       VK_VALIDATION_FEATURE_ENABLE_EXT_LAST,
+       VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT                                                       = 0x7FFFFFFF
 };
-typedef uint32_t VkPeerMemoryFeatureFlags;
 
-enum VkMemoryAllocateFlagBits
+enum VkValidationFeatureDisableEXT
 {
-       VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT                                                      = 0x00000001,
-       VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT                                           = 0x00000002,
-       VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT            = 0x00000004,
-       VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR                                          = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
-       VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR                                       = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
-       VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR        = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
-       VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM                                           = 0x7FFFFFFF,
+       VK_VALIDATION_FEATURE_DISABLE_ALL_EXT                                           = 0,
+       VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT                                       = 1,
+       VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT                         = 2,
+       VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT                        = 3,
+       VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT                      = 4,
+       VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT                           = 5,
+       VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT                        = 6,
+       VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT       = 7,
+       VK_VALIDATION_FEATURE_DISABLE_EXT_LAST,
+       VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT                                      = 0x7FFFFFFF
 };
-typedef uint32_t VkMemoryAllocateFlags;
 
 enum VkExternalMemoryHandleTypeFlagBits
 {
@@ -3561,10 +3494,10 @@ enum VkExternalMemoryHandleTypeFlagBits
        VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT                            = 0x00000010,
        VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT                                           = 0x00000020,
        VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT                                       = 0x00000040,
-       VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT                                          = 0x00000200,
-       VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID      = 0x00000400,
        VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT                          = 0x00000080,
        VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT       = 0x00000100,
+       VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT                                          = 0x00000200,
+       VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID      = 0x00000400,
        VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA                           = 0x00000800,
        VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV                                      = 0x00001000,
        VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR                                        = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
@@ -3574,9 +3507,9 @@ enum VkExternalMemoryHandleTypeFlagBits
        VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR                        = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
        VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR                                       = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
        VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR                           = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
-       VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM                                       = 0x7FFFFFFF,
+       VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM                                       = 0x7FFFFFFF
 };
-typedef uint32_t VkExternalMemoryHandleTypeFlags;
+typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
 
 enum VkExternalMemoryFeatureFlagBits
 {
@@ -3586,49 +3519,9 @@ enum VkExternalMemoryFeatureFlagBits
        VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR       = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
        VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR           = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
        VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR           = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
-       VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM           = 0x7FFFFFFF,
-};
-typedef uint32_t VkExternalMemoryFeatureFlags;
-
-enum VkExternalFenceHandleTypeFlagBits
-{
-       VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT                             = 0x00000001,
-       VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT                  = 0x00000002,
-       VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT              = 0x00000004,
-       VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT                               = 0x00000008,
-       VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR                 = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
-       VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR              = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
-       VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR  = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
-       VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR                   = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
-       VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM                = 0x7FFFFFFF,
-};
-typedef uint32_t VkExternalFenceHandleTypeFlags;
-
-enum VkExternalFenceFeatureFlagBits
-{
-       VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT                = 0x00000001,
-       VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT                = 0x00000002,
-       VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR    = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
-       VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR    = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
-       VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM    = 0x7FFFFFFF,
-};
-typedef uint32_t VkExternalFenceFeatureFlags;
-
-enum VkFenceImportFlagBits
-{
-       VK_FENCE_IMPORT_TEMPORARY_BIT           = 0x00000001,
-       VK_FENCE_IMPORT_TEMPORARY_BIT_KHR       = VK_FENCE_IMPORT_TEMPORARY_BIT,
-       VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM      = 0x7FFFFFFF,
-};
-typedef uint32_t VkFenceImportFlags;
-
-enum VkSemaphoreImportFlagBits
-{
-       VK_SEMAPHORE_IMPORT_TEMPORARY_BIT               = 0x00000001,
-       VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR   = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
-       VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM  = 0x7FFFFFFF,
+       VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM           = 0x7FFFFFFF
 };
-typedef uint32_t VkSemaphoreImportFlags;
+typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
 
 enum VkExternalSemaphoreHandleTypeFlagBits
 {
@@ -3638,15 +3531,15 @@ enum VkExternalSemaphoreHandleTypeFlagBits
        VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT                       = 0x00000008,
        VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT                           = 0x00000010,
        VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA      = 0x00000080,
-       VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT                       = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
        VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR                     = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
        VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR          = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
        VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR      = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
+       VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT                       = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
        VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR           = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
        VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR                       = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
-       VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM            = 0x7FFFFFFF,
+       VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM            = 0x7FFFFFFF
 };
-typedef uint32_t VkExternalSemaphoreHandleTypeFlags;
+typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
 
 enum VkExternalSemaphoreFeatureFlagBits
 {
@@ -3654,131 +3547,105 @@ enum VkExternalSemaphoreFeatureFlagBits
        VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT            = 0x00000002,
        VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR        = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
        VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR        = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
-       VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM        = 0x7FFFFFFF,
+       VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM        = 0x7FFFFFFF
 };
-typedef uint32_t VkExternalSemaphoreFeatureFlags;
+typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
 
-enum VkResolveModeFlagBits
+enum VkSemaphoreImportFlagBits
 {
-       VK_RESOLVE_MODE_NONE                            = 0,
-       VK_RESOLVE_MODE_SAMPLE_ZERO_BIT         = 0x00000001,
-       VK_RESOLVE_MODE_AVERAGE_BIT                     = 0x00000002,
-       VK_RESOLVE_MODE_MIN_BIT                         = 0x00000004,
-       VK_RESOLVE_MODE_MAX_BIT                         = 0x00000008,
-       VK_RESOLVE_MODE_NONE_KHR                        = VK_RESOLVE_MODE_NONE,
-       VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR     = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
-       VK_RESOLVE_MODE_AVERAGE_BIT_KHR         = VK_RESOLVE_MODE_AVERAGE_BIT,
-       VK_RESOLVE_MODE_MIN_BIT_KHR                     = VK_RESOLVE_MODE_MIN_BIT,
-       VK_RESOLVE_MODE_MAX_BIT_KHR                     = VK_RESOLVE_MODE_MAX_BIT,
-       VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM      = 0x7FFFFFFF,
+       VK_SEMAPHORE_IMPORT_TEMPORARY_BIT               = 0x00000001,
+       VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR   = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
+       VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM  = 0x7FFFFFFF
 };
-typedef uint32_t VkResolveModeFlags;
+typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
 
-enum VkDescriptorBindingFlagBits
+enum VkExternalFenceHandleTypeFlagBits
 {
-       VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT                                     = 0x00000001,
-       VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT           = 0x00000002,
-       VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT                                       = 0x00000004,
-       VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT                     = 0x00000008,
-       VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT                         = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
-       VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT       = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
-       VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT                           = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
-       VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT         = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
-       VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM                                        = 0x7FFFFFFF,
+       VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT                             = 0x00000001,
+       VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT                  = 0x00000002,
+       VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT              = 0x00000004,
+       VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT                               = 0x00000008,
+       VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR                 = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
+       VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR              = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
+       VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR  = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
+       VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR                   = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
+       VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM                = 0x7FFFFFFF
 };
-typedef uint32_t VkDescriptorBindingFlags;
+typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
 
-enum VkSemaphoreWaitFlagBits
+enum VkExternalFenceFeatureFlagBits
 {
-       VK_SEMAPHORE_WAIT_ANY_BIT                               = 0x00000001,
-       VK_SEMAPHORE_WAIT_ANY_BIT_KHR                   = VK_SEMAPHORE_WAIT_ANY_BIT,
-       VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM    = 0x7FFFFFFF,
+       VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT                = 0x00000001,
+       VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT                = 0x00000002,
+       VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR    = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
+       VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR    = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
+       VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM    = 0x7FFFFFFF
 };
-typedef uint32_t VkSemaphoreWaitFlags;
+typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
 
-enum VkPipelineCreationFeedbackFlagBits
+enum VkFenceImportFlagBits
 {
-       VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT                                                                 = 0x00000001,
-       VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT                = 0x00000002,
-       VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT                    = 0x00000004,
-       VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT                                                             = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
-       VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT    = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
-       VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT                = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,
-       VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM                                                = 0x7FFFFFFF,
+       VK_FENCE_IMPORT_TEMPORARY_BIT           = 0x00000001,
+       VK_FENCE_IMPORT_TEMPORARY_BIT_KHR       = VK_FENCE_IMPORT_TEMPORARY_BIT,
+       VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM      = 0x7FFFFFFF
 };
-typedef uint32_t VkPipelineCreationFeedbackFlags;
+typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
 
-enum VkToolPurposeFlagBits
+enum VkSurfaceCounterFlagBitsEXT
 {
-       VK_TOOL_PURPOSE_VALIDATION_BIT                          = 0x00000001,
-       VK_TOOL_PURPOSE_PROFILING_BIT                           = 0x00000002,
-       VK_TOOL_PURPOSE_TRACING_BIT                                     = 0x00000004,
-       VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT         = 0x00000008,
-       VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT          = 0x00000010,
-       VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT         = 0x00000020,
-       VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT           = 0x00000040,
-       VK_TOOL_PURPOSE_VALIDATION_BIT_EXT                      = VK_TOOL_PURPOSE_VALIDATION_BIT,
-       VK_TOOL_PURPOSE_PROFILING_BIT_EXT                       = VK_TOOL_PURPOSE_PROFILING_BIT,
-       VK_TOOL_PURPOSE_TRACING_BIT_EXT                         = VK_TOOL_PURPOSE_TRACING_BIT,
-       VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT     = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
-       VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT      = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
-       VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM                      = 0x7FFFFFFF,
+       VK_SURFACE_COUNTER_VBLANK_BIT_EXT                       = 0x00000001,
+       VK_SURFACE_COUNTER_VBLANK_EXT                           = VK_SURFACE_COUNTER_VBLANK_BIT_EXT,
+       VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT       = 0x7FFFFFFF
 };
-typedef uint32_t VkToolPurposeFlags;
 
-enum VkSubmitFlagBits
+enum VkDisplayPowerStateEXT
 {
-       VK_SUBMIT_PROTECTED_BIT                 = 0x00000001,
-       VK_SUBMIT_PROTECTED_BIT_KHR             = VK_SUBMIT_PROTECTED_BIT,
-       VK_SUBMIT_FLAG_BITS_MAX_ENUM    = 0x7FFFFFFF,
+       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,
+       VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT     = 0x7FFFFFFF
 };
-typedef uint32_t VkSubmitFlags;
 
-enum VkRenderingFlagBits
+enum VkDeviceEventTypeEXT
 {
-       VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT             = 0x00000001,
-       VK_RENDERING_SUSPENDING_BIT                                                             = 0x00000002,
-       VK_RENDERING_RESUMING_BIT                                                               = 0x00000004,
-       VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
-       VK_RENDERING_SUSPENDING_BIT_KHR                                                 = VK_RENDERING_SUSPENDING_BIT,
-       VK_RENDERING_RESUMING_BIT_KHR                                                   = VK_RENDERING_RESUMING_BIT,
-       VK_RENDERING_FLAG_BITS_MAX_ENUM                                                 = 0x7FFFFFFF,
+       VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT        = 0,
+       VK_DEVICE_EVENT_TYPE_EXT_LAST,
+       VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT                       = 0x7FFFFFFF
 };
-typedef uint32_t VkRenderingFlags;
 
-enum VkSurfaceTransformFlagBitsKHR
+enum VkDisplayEventTypeEXT
 {
-       VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR                                           = 0x00000001,
-       VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR                                          = 0x00000002,
-       VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR                                         = 0x00000004,
-       VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR                                         = 0x00000008,
-       VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR                          = 0x00000010,
-       VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR        = 0x00000020,
-       VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR       = 0x00000040,
-       VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR       = 0x00000080,
-       VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR                                            = 0x00000100,
-       VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR                                     = 0x7FFFFFFF,
+       VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT       = 0,
+       VK_DISPLAY_EVENT_TYPE_EXT_LAST,
+       VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT                      = 0x7FFFFFFF
 };
-typedef uint32_t VkSurfaceTransformFlagsKHR;
 
-enum VkCompositeAlphaFlagBitsKHR
+enum VkPeerMemoryFeatureFlagBits
 {
-       VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR                       = 0x00000001,
-       VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR       = 0x00000002,
-       VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR      = 0x00000004,
-       VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR                      = 0x00000008,
-       VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR       = 0x7FFFFFFF,
+       VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT                     = 0x00000001,
+       VK_PEER_MEMORY_FEATURE_COPY_DST_BIT                     = 0x00000002,
+       VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT          = 0x00000004,
+       VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT          = 0x00000008,
+       VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR         = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
+       VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR         = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
+       VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR      = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
+       VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR      = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
+       VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM       = 0x7FFFFFFF
 };
-typedef uint32_t VkCompositeAlphaFlagsKHR;
+typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
 
-enum VkSwapchainCreateFlagBitsKHR
+enum VkMemoryAllocateFlagBits
 {
-       VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
-       VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR                                   = 0x00000002,
-       VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR                              = 0x00000004,
-       VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR                              = 0x7FFFFFFF,
+       VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT                                                      = 0x00000001,
+       VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT                                           = 0x00000002,
+       VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT            = 0x00000004,
+       VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR                                          = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
+       VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR                                       = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
+       VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR        = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
+       VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM                                           = 0x7FFFFFFF
 };
-typedef uint32_t VkSwapchainCreateFlagsKHR;
+typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
 
 enum VkDeviceGroupPresentModeFlagBitsKHR
 {
@@ -3786,80 +3653,102 @@ enum VkDeviceGroupPresentModeFlagBitsKHR
        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,
+       VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR             = 0x7FFFFFFF
 };
-typedef uint32_t VkDeviceGroupPresentModeFlagsKHR;
 
-enum VkDisplayPlaneAlphaFlagBitsKHR
+enum VkSwapchainCreateFlagBitsKHR
 {
-       VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR                                   = 0x00000001,
-       VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR                                   = 0x00000002,
-       VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR                                = 0x00000004,
-       VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR  = 0x00000008,
-       VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR                   = 0x7FFFFFFF,
+       VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
+       VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR                                   = 0x00000002,
+       VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR                              = 0x00000004,
+       VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR                              = 0x7FFFFFFF
 };
-typedef uint32_t VkDisplayPlaneAlphaFlagsKHR;
 
-enum VkPerformanceCounterDescriptionFlagBitsKHR
+enum VkSubgroupFeatureFlagBits
 {
-       VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR        = 0x00000001,
-       VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR        = 0x00000002,
-       VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR            = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
-       VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR            = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,
-       VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR                       = 0x7FFFFFFF,
+       VK_SUBGROUP_FEATURE_BASIC_BIT                           = 0x00000001,
+       VK_SUBGROUP_FEATURE_VOTE_BIT                            = 0x00000002,
+       VK_SUBGROUP_FEATURE_ARITHMETIC_BIT                      = 0x00000004,
+       VK_SUBGROUP_FEATURE_BALLOT_BIT                          = 0x00000008,
+       VK_SUBGROUP_FEATURE_SHUFFLE_BIT                         = 0x00000010,
+       VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT        = 0x00000020,
+       VK_SUBGROUP_FEATURE_CLUSTERED_BIT                       = 0x00000040,
+       VK_SUBGROUP_FEATURE_QUAD_BIT                            = 0x00000080,
+       VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV          = 0x00000100,
+       VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM          = 0x7FFFFFFF
 };
-typedef uint32_t VkPerformanceCounterDescriptionFlagsKHR;
 
-enum VkAcquireProfilingLockFlagBitsKHR
+enum VkTessellationDomainOrigin
 {
-       VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR        = 0x7FFFFFFF,
+       VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT                = 0,
+       VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT                = 1,
+       VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR    = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
+       VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR    = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
+       VK_TESSELLATION_DOMAIN_ORIGIN_LAST,
+       VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM                  = 0x7FFFFFFF
 };
-typedef uint32_t VkAcquireProfilingLockFlagsKHR;
+typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
 
-enum VkDebugReportFlagBitsEXT
+enum VkSamplerYcbcrModelConversion
 {
-       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,
-       VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT          = 0x7FFFFFFF,
+       VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY                  = 0,
+       VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY                = 1,
+       VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709                             = 2,
+       VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601                             = 3,
+       VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020                    = 4,
+       VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR              = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
+       VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR    = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
+       VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR                 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
+       VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR                 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
+       VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR                = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
+       VK_SAMPLER_YCBCR_MODEL_CONVERSION_LAST,
+       VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM                              = 0x7FFFFFFF
 };
-typedef uint32_t VkDebugReportFlagsEXT;
+typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
 
-enum VkExternalMemoryHandleTypeFlagBitsNV
+enum VkSamplerYcbcrRange
 {
-       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,
+       VK_SAMPLER_YCBCR_RANGE_ITU_FULL                 = 0,
+       VK_SAMPLER_YCBCR_RANGE_ITU_NARROW               = 1,
+       VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR             = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
+       VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR   = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
+       VK_SAMPLER_YCBCR_RANGE_LAST,
+       VK_SAMPLER_YCBCR_RANGE_MAX_ENUM                 = 0x7FFFFFFF
 };
-typedef uint32_t VkExternalMemoryHandleTypeFlagsNV;
+typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
 
-enum VkExternalMemoryFeatureFlagBitsNV
+enum VkChromaLocation
 {
-       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,
+       VK_CHROMA_LOCATION_COSITED_EVEN         = 0,
+       VK_CHROMA_LOCATION_MIDPOINT                     = 1,
+       VK_CHROMA_LOCATION_COSITED_EVEN_KHR     = VK_CHROMA_LOCATION_COSITED_EVEN,
+       VK_CHROMA_LOCATION_MIDPOINT_KHR         = VK_CHROMA_LOCATION_MIDPOINT,
+       VK_CHROMA_LOCATION_LAST,
+       VK_CHROMA_LOCATION_MAX_ENUM                     = 0x7FFFFFFF
 };
-typedef uint32_t VkExternalMemoryFeatureFlagsNV;
+typedef VkChromaLocation VkChromaLocationKHR;
 
-enum VkConditionalRenderingFlagBitsEXT
+enum VkSamplerReductionMode
 {
-       VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT               = 0x00000001,
-       VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF,
+       VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE              = 0,
+       VK_SAMPLER_REDUCTION_MODE_MIN                                   = 1,
+       VK_SAMPLER_REDUCTION_MODE_MAX                                   = 2,
+       VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT  = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
+       VK_SAMPLER_REDUCTION_MODE_MIN_EXT                               = VK_SAMPLER_REDUCTION_MODE_MIN,
+       VK_SAMPLER_REDUCTION_MODE_MAX_EXT                               = VK_SAMPLER_REDUCTION_MODE_MAX,
+       VK_SAMPLER_REDUCTION_MODE_LAST,
+       VK_SAMPLER_REDUCTION_MODE_MAX_ENUM                              = 0x7FFFFFFF
 };
-typedef uint32_t VkConditionalRenderingFlagsEXT;
+typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
 
-enum VkSurfaceCounterFlagBitsEXT
+enum VkBlendOverlapEXT
 {
-       VK_SURFACE_COUNTER_VBLANK_BIT_EXT                       = 0x00000001,
-       VK_SURFACE_COUNTER_VBLANK_EXT                           = VK_SURFACE_COUNTER_VBLANK_BIT_EXT,
-       VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT       = 0x7FFFFFFF,
+       VK_BLEND_OVERLAP_UNCORRELATED_EXT       = 0,
+       VK_BLEND_OVERLAP_DISJOINT_EXT           = 1,
+       VK_BLEND_OVERLAP_CONJOINT_EXT           = 2,
+       VK_BLEND_OVERLAP_EXT_LAST,
+       VK_BLEND_OVERLAP_MAX_ENUM_EXT           = 0x7FFFFFFF
 };
-typedef uint32_t VkSurfaceCounterFlagsEXT;
 
 enum VkDebugUtilsMessageSeverityFlagBitsEXT
 {
@@ -3867,168 +3756,173 @@ enum VkDebugUtilsMessageSeverityFlagBitsEXT
        VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT                    = 0x00000010,
        VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT                 = 0x00000100,
        VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT                   = 0x00001000,
-       VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT  = 0x7FFFFFFF,
+       VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT  = 0x7FFFFFFF
 };
-typedef uint32_t VkDebugUtilsMessageSeverityFlagsEXT;
 
 enum VkDebugUtilsMessageTypeFlagBitsEXT
 {
        VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT                     = 0x00000001,
        VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT          = 0x00000002,
        VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT         = 0x00000004,
-       VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT      = 0x7FFFFFFF,
+       VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT      = 0x7FFFFFFF
 };
-typedef uint32_t VkDebugUtilsMessageTypeFlagsEXT;
-
-enum VkGeometryFlagBitsKHR
-{
-       VK_GEOMETRY_OPAQUE_BIT_KHR                                                      = 0x00000001,
-       VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR     = 0x00000002,
-       VK_GEOMETRY_OPAQUE_BIT_NV                                                       = VK_GEOMETRY_OPAQUE_BIT_KHR,
-       VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV      = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
-       VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR                                      = 0x7FFFFFFF,
-};
-typedef uint32_t VkGeometryFlagsKHR;
 
-enum VkGeometryInstanceFlagBitsKHR
+enum VkFullScreenExclusiveEXT
 {
-       VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR               = 0x00000001,
-       VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR                               = 0x00000002,
-       VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR                                               = 0x00000004,
-       VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR                                    = 0x00000008,
-       VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR    = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
-       VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV                               = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
-       VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV             = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
-       VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV                                                = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
-       VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV                                             = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
-       VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR                                             = 0x7FFFFFFF,
+       VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT                            = 0,
+       VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT                            = 1,
+       VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT                         = 2,
+       VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT     = 3,
+       VK_FULL_SCREEN_EXCLUSIVE_EXT_LAST,
+       VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT                           = 0x7FFFFFFF
 };
-typedef uint32_t VkGeometryInstanceFlagsKHR;
 
-enum VkBuildAccelerationStructureFlagBitsKHR
+enum VkShaderFloatControlsIndependence
 {
-       VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR            = 0x00000001,
-       VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR        = 0x00000002,
-       VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR       = 0x00000004,
-       VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR       = 0x00000008,
-       VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR                      = 0x00000010,
-       VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV                           = 0x00000020,
-       VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV                     = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
-       VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV         = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
-       VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV        = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
-       VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV        = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
-       VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV                       = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
-       VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR          = 0x7FFFFFFF,
+       VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY               = 0,
+       VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL                               = 1,
+       VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE                              = 2,
+       VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR   = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
+       VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR                   = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
+       VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR                  = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
+       VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_LAST,
+       VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM                  = 0x7FFFFFFF
 };
-typedef uint32_t VkBuildAccelerationStructureFlagsKHR;
+typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
 
-enum VkPipelineCompilerControlFlagBitsAMD
+enum VkSwapchainImageUsageFlagBitsANDROID
 {
-       VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD     = 0x7FFFFFFF,
+       VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID                     = 0x00000001,
+       VK_SWAPCHAIN_IMAGE_USAGE_FLAG_BITS_MAX_ENUM_ANDROID     = 0x7FFFFFFF
 };
-typedef uint32_t VkPipelineCompilerControlFlagsAMD;
 
-enum VkShaderCorePropertiesFlagBitsAMD
+enum VkFragmentShadingRateCombinerOpKHR
 {
-       VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD        = 0x7FFFFFFF,
+       VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR           = 0,
+       VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR        = 1,
+       VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR            = 2,
+       VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR            = 3,
+       VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR            = 4,
+       VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KHR_LAST,
+       VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR       = 0x7FFFFFFF
 };
-typedef uint32_t VkShaderCorePropertiesFlagsAMD;
 
-enum VkIndirectStateFlagBitsNV
+enum VkSubmitFlagBits
 {
-       VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001,
-       VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF,
+       VK_SUBMIT_PROTECTED_BIT                 = 0x00000001,
+       VK_SUBMIT_PROTECTED_BIT_KHR             = VK_SUBMIT_PROTECTED_BIT,
+       VK_SUBMIT_FLAG_BITS_MAX_ENUM    = 0x7FFFFFFF
 };
-typedef uint32_t VkIndirectStateFlagsNV;
+typedef VkSubmitFlagBits VkSubmitFlagBitsKHR;
 
-enum VkIndirectCommandsLayoutUsageFlagBitsNV
+enum VkGraphicsPipelineLibraryFlagBitsEXT
 {
-       VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV    = 0x00000001,
-       VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV              = 0x00000002,
-       VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV    = 0x00000004,
-       VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV                 = 0x7FFFFFFF,
+       VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT             = 0x00000001,
+       VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT  = 0x00000002,
+       VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT                    = 0x00000004,
+       VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT  = 0x00000008,
+       VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT                             = 0x7FFFFFFF
 };
-typedef uint32_t VkIndirectCommandsLayoutUsageFlagsNV;
 
-enum VkDeviceDiagnosticsConfigFlagBitsNV
+enum VkVendorId
 {
-       VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV            = 0x00000001,
-       VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV            = 0x00000002,
-       VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV        = 0x00000004,
-       VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV       = 0x00000008,
-       VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV                                      = 0x7FFFFFFF,
+       VK_VENDOR_ID_VIV                = 0x10001,
+       VK_VENDOR_ID_VSI                = 0x10002,
+       VK_VENDOR_ID_KAZAN              = 0x10003,
+       VK_VENDOR_ID_CODEPLAY   = 0x10004,
+       VK_VENDOR_ID_MESA               = 0x10005,
+       VK_VENDOR_ID_POCL               = 0x10006,
+       VK_VENDOR_ID_MAX_ENUM   = 0x7FFFFFFF
 };
-typedef uint32_t VkDeviceDiagnosticsConfigFlagsNV;
 
-enum VkGraphicsPipelineLibraryFlagBitsEXT
+enum VkDriverId
 {
-       VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT             = 0x00000001,
-       VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT  = 0x00000002,
-       VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT                    = 0x00000004,
-       VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT  = 0x00000008,
-       VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT                             = 0x7FFFFFFF,
+       VK_DRIVER_ID_AMD_PROPRIETARY                            = 1,
+       VK_DRIVER_ID_AMD_OPEN_SOURCE                            = 2,
+       VK_DRIVER_ID_MESA_RADV                                          = 3,
+       VK_DRIVER_ID_NVIDIA_PROPRIETARY                         = 4,
+       VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS          = 5,
+       VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA                     = 6,
+       VK_DRIVER_ID_IMAGINATION_PROPRIETARY            = 7,
+       VK_DRIVER_ID_QUALCOMM_PROPRIETARY                       = 8,
+       VK_DRIVER_ID_ARM_PROPRIETARY                            = 9,
+       VK_DRIVER_ID_GOOGLE_SWIFTSHADER                         = 10,
+       VK_DRIVER_ID_GGP_PROPRIETARY                            = 11,
+       VK_DRIVER_ID_BROADCOM_PROPRIETARY                       = 12,
+       VK_DRIVER_ID_MESA_LLVMPIPE                                      = 13,
+       VK_DRIVER_ID_MOLTENVK                                           = 14,
+       VK_DRIVER_ID_COREAVI_PROPRIETARY                        = 15,
+       VK_DRIVER_ID_JUICE_PROPRIETARY                          = 16,
+       VK_DRIVER_ID_VERISILICON_PROPRIETARY            = 17,
+       VK_DRIVER_ID_MESA_TURNIP                                        = 18,
+       VK_DRIVER_ID_MESA_V3DV                                          = 19,
+       VK_DRIVER_ID_MESA_PANVK                                         = 20,
+       VK_DRIVER_ID_SAMSUNG_PROPRIETARY                        = 21,
+       VK_DRIVER_ID_MESA_VENUS                                         = 22,
+       VK_DRIVER_ID_MESA_DOZEN                                         = 23,
+       VK_DRIVER_ID_AMD_PROPRIETARY_KHR                        = VK_DRIVER_ID_AMD_PROPRIETARY,
+       VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR                        = VK_DRIVER_ID_AMD_OPEN_SOURCE,
+       VK_DRIVER_ID_MESA_RADV_KHR                                      = VK_DRIVER_ID_MESA_RADV,
+       VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR                     = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
+       VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR      = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
+       VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR         = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
+       VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR        = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
+       VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR           = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
+       VK_DRIVER_ID_ARM_PROPRIETARY_KHR                        = VK_DRIVER_ID_ARM_PROPRIETARY,
+       VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR                     = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
+       VK_DRIVER_ID_GGP_PROPRIETARY_KHR                        = VK_DRIVER_ID_GGP_PROPRIETARY,
+       VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR           = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
+       VK_DRIVER_ID_MAX_ENUM                                           = 0x7FFFFFFF
 };
-typedef uint32_t VkGraphicsPipelineLibraryFlagsEXT;
+typedef VkDriverId VkDriverIdKHR;
 
-enum VkImageCompressionFlagBitsEXT
+enum VkShadingRatePaletteEntryNV
 {
-       VK_IMAGE_COMPRESSION_DEFAULT_EXT                                = 0,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT             = 0x00000001,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT    = 0x00000002,
-       VK_IMAGE_COMPRESSION_DISABLED_EXT                               = 0x00000004,
-       VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT             = 0x7FFFFFFF,
+       VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV                                 = 0,
+       VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV               = 1,
+       VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV                = 2,
+       VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV                = 3,
+       VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV                = 4,
+       VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV                 = 5,
+       VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV    = 6,
+       VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV    = 7,
+       VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV    = 8,
+       VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV    = 9,
+       VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV    = 10,
+       VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV    = 11,
+       VK_SHADING_RATE_PALETTE_ENTRY_NV_LAST,
+       VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV                                               = 0x7FFFFFFF
 };
-typedef uint32_t VkImageCompressionFlagsEXT;
 
-enum VkImageCompressionFixedRateFlagBitsEXT
+enum VkCoarseSampleOrderTypeNV
 {
-       VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT                                = 0,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT                    = 0x00000001,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT                    = 0x00000002,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT                    = 0x00000004,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT                    = 0x00000008,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT                    = 0x00000010,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT                    = 0x00000020,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT                    = 0x00000040,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT                    = 0x00000080,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT                    = 0x00000100,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT                   = 0x00000200,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT                   = 0x00000400,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT                   = 0x00000800,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT                   = 0x00001000,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT                   = 0x00002000,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT                   = 0x00004000,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT                   = 0x00008000,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT                   = 0x00010000,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT                   = 0x00020000,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT                   = 0x00040000,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT                   = 0x00080000,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT                   = 0x00100000,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT                   = 0x00200000,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT                   = 0x00400000,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT                   = 0x00800000,
-       VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT  = 0x7FFFFFFF,
+       VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV          = 0,
+       VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV           = 1,
+       VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV      = 2,
+       VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV     = 3,
+       VK_COARSE_SAMPLE_ORDER_TYPE_NV_LAST,
+       VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV         = 0x7FFFFFFF
 };
-typedef uint32_t VkImageCompressionFixedRateFlagsEXT;
 
-enum VkAccelerationStructureCreateFlagBitsKHR
+enum VkPipelineExecutableStatisticFormatKHR
 {
-       VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR  = 0x00000001,
-       VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV                                                  = 0x00000004,
-       VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR                                 = 0x7FFFFFFF,
+       VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR              = 0,
+       VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR               = 1,
+       VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR              = 2,
+       VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR             = 3,
+       VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_KHR_LAST,
+       VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR    = 0x7FFFFFFF
 };
-typedef uint32_t VkAccelerationStructureCreateFlagsKHR;
 
 enum VkVideoCodecOperationFlagBitsKHR
 {
        VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR                = 0,
-       VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT    = 0x00010000,
-       VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT    = 0x00020000,
        VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT    = 0x00000001,
        VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT    = 0x00000002,
-       VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF,
+       VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT    = 0x00010000,
+       VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT    = 0x00020000,
+       VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoCodecOperationFlagsKHR;
 
 enum VkVideoChromaSubsamplingFlagBitsKHR
 {
@@ -4037,9 +3931,8 @@ enum VkVideoChromaSubsamplingFlagBitsKHR
        VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR                         = 0x00000002,
        VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR                         = 0x00000004,
        VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR                         = 0x00000008,
-       VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR      = 0x7FFFFFFF,
+       VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR      = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoChromaSubsamplingFlagsKHR;
 
 enum VkVideoComponentBitDepthFlagBitsKHR
 {
@@ -4047,92 +3940,97 @@ enum VkVideoComponentBitDepthFlagBitsKHR
        VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR                          = 0x00000001,
        VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR                         = 0x00000004,
        VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR                         = 0x00000010,
-       VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR     = 0x7FFFFFFF,
+       VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR     = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoComponentBitDepthFlagsKHR;
 
 enum VkVideoCapabilityFlagBitsKHR
 {
        VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR                   = 0x00000001,
        VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR   = 0x00000002,
-       VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR                              = 0x7FFFFFFF,
+       VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR                              = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoCapabilityFlagsKHR;
 
 enum VkVideoSessionCreateFlagBitsKHR
 {
        VK_VIDEO_SESSION_CREATE_DEFAULT_KHR                                     = 0,
        VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR       = 0x00000001,
-       VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR          = 0x7FFFFFFF,
+       VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR          = 0x7FFFFFFF
+};
+
+enum VkVideoCodingQualityPresetFlagBitsKHR
+{
+       VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR                   = 0x00000001,
+       VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR                    = 0x00000002,
+       VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR                  = 0x00000004,
+       VK_VIDEO_CODING_QUALITY_PRESET_FLAG_BITS_MAX_ENUM_KHR   = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoSessionCreateFlagsKHR;
 
 enum VkVideoCodingControlFlagBitsKHR
 {
        VK_VIDEO_CODING_CONTROL_DEFAULT_KHR                             = 0,
        VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR                   = 0x00000001,
-       VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR  = 0x7FFFFFFF,
+       VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR  = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoCodingControlFlagsKHR;
 
-enum VkVideoCodingQualityPresetFlagBitsKHR
+enum VkQueryResultStatusKHR
 {
-       VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR                   = 0x00000001,
-       VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR                    = 0x00000002,
-       VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR                  = 0x00000004,
-       VK_VIDEO_CODING_QUALITY_PRESET_FLAG_BITS_MAX_ENUM_KHR   = 0x7FFFFFFF,
+       VK_QUERY_RESULT_STATUS_ERROR_KHR                = -1,
+       VK_QUERY_RESULT_STATUS_NOT_READY_KHR    = 0,
+       VK_QUERY_RESULT_STATUS_COMPLETE_KHR             = 1,
+       VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR             = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoCodingQualityPresetFlagsKHR;
 
 enum VkVideoDecodeCapabilityFlagBitsKHR
 {
        VK_VIDEO_DECODE_CAPABILITY_DEFAULT_KHR                                          = 0,
        VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR      = 0x00000001,
        VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR      = 0x00000002,
-       VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR                       = 0x7FFFFFFF,
+       VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR                       = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoDecodeCapabilityFlagsKHR;
 
 enum VkVideoDecodeFlagBitsKHR
 {
        VK_VIDEO_DECODE_DEFAULT_KHR                             = 0,
        VK_VIDEO_DECODE_RESERVED_0_BIT_KHR              = 0x00000001,
-       VK_VIDEO_DECODE_FLAG_BITS_MAX_ENUM_KHR  = 0x7FFFFFFF,
+       VK_VIDEO_DECODE_FLAG_BITS_MAX_ENUM_KHR  = 0x7FFFFFFF
+};
+
+enum VkVideoDecodeH264PictureLayoutFlagBitsEXT
+{
+       VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT                                                     = 0,
+       VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT        = 0x00000001,
+       VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT          = 0x00000002,
+       VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_EXT                                      = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoDecodeFlagsKHR;
 
 enum VkVideoEncodeFlagBitsKHR
 {
        VK_VIDEO_ENCODE_DEFAULT_KHR                             = 0,
        VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR              = 0x00000001,
-       VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR  = 0x7FFFFFFF,
+       VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR  = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoEncodeFlagsKHR;
 
 enum VkVideoEncodeCapabilityFlagBitsKHR
 {
        VK_VIDEO_ENCODE_CAPABILITY_DEFAULT_KHR                                                                  = 0,
        VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR   = 0x00000001,
-       VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR                                               = 0x7FFFFFFF,
+       VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR                                               = 0x7FFFFFFF
+};
+
+enum VkVideoEncodeRateControlFlagBitsKHR
+{
+       VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR                        = 0,
+       VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR         = 0x00000001,
+       VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR     = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoEncodeCapabilityFlagsKHR;
 
 enum VkVideoEncodeRateControlModeFlagBitsKHR
 {
        VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR                          = 0,
        VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR                           = 1,
        VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR                           = 2,
-       VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR        = 0x7FFFFFFF,
-};
-typedef uint32_t VkVideoEncodeRateControlModeFlagsKHR;
-
-enum VkVideoEncodeRateControlFlagBitsKHR
-{
-       VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR                        = 0,
-       VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR         = 0x00000001,
-       VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR     = 0x7FFFFFFF,
+       VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR        = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoEncodeRateControlFlagsKHR;
 
 enum VkVideoEncodeH264CapabilityFlagBitsEXT
 {
@@ -4161,36 +4059,32 @@ enum VkVideoEncodeH264CapabilityFlagBitsEXT
        VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT                             = 0x00400000,
        VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT                    = 0x00800000,
        VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT                              = 0x01000000,
-       VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT                                  = 0x7FFFFFFF,
+       VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT                                  = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoEncodeH264CapabilityFlagsEXT;
 
 enum VkVideoEncodeH264InputModeFlagBitsEXT
 {
        VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT                   = 0x00000001,
        VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT                   = 0x00000002,
        VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT                 = 0x00000004,
-       VK_VIDEO_ENCODE_H264_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT  = 0x7FFFFFFF,
+       VK_VIDEO_ENCODE_H264_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT  = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoEncodeH264InputModeFlagsEXT;
 
 enum VkVideoEncodeH264OutputModeFlagBitsEXT
 {
        VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT                  = 0x00000001,
        VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT                  = 0x00000002,
        VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT                = 0x00000004,
-       VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF,
+       VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoEncodeH264OutputModeFlagsEXT;
 
 enum VkVideoEncodeH264RateControlStructureFlagBitsEXT
 {
        VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT                         = 0,
        VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT                        = 0x00000001,
        VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT                      = 0x00000002,
-       VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT      = 0x7FFFFFFF,
+       VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT      = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoEncodeH264RateControlStructureFlagsEXT;
 
 enum VkVideoEncodeH265CapabilityFlagBitsEXT
 {
@@ -4220,167 +4114,493 @@ enum VkVideoEncodeH265CapabilityFlagBitsEXT
        VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT                         = 0x00800000,
        VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT                            = 0x01000000,
        VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT                                      = 0x02000000,
-       VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT                                          = 0x7FFFFFFF,
+       VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT                                          = 0x7FFFFFFF
+};
+
+enum VkVideoEncodeH265InputModeFlagBitsEXT
+{
+       VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT                   = 0x00000001,
+       VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT   = 0x00000002,
+       VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT                 = 0x00000004,
+       VK_VIDEO_ENCODE_H265_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT  = 0x7FFFFFFF
+};
+
+enum VkVideoEncodeH265OutputModeFlagBitsEXT
+{
+       VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT                  = 0x00000001,
+       VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT  = 0x00000002,
+       VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT                = 0x00000004,
+       VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
+};
+
+enum VkVideoEncodeH265RateControlStructureFlagBitsEXT
+{
+       VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT                         = 0,
+       VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT                        = 0x00000001,
+       VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT                      = 0x00000002,
+       VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT      = 0x7FFFFFFF
+};
+
+enum VkVideoEncodeH265CtbSizeFlagBitsEXT
+{
+       VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT                                = 0x00000001,
+       VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT                                = 0x00000002,
+       VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT                                = 0x00000004,
+       VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_EXT    = 0x7FFFFFFF
+};
+
+enum VkVideoEncodeH265TransformBlockSizeFlagBitsEXT
+{
+       VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT                                     = 0x00000001,
+       VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT                                     = 0x00000002,
+       VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT                            = 0x00000004,
+       VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT                            = 0x00000008,
+       VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_EXT        = 0x7FFFFFFF
+};
+
+enum VkAccelerationStructureMotionInstanceTypeNV
+{
+       VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV                = 0,
+       VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1,
+       VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV    = 2,
+       VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_NV_LAST,
+       VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV              = 0x7FFFFFFF
+};
+
+enum StdVideoH264ChromaFormatIdc
+{
+       STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME     = 0,
+       STD_VIDEO_H264_CHROMA_FORMAT_IDC_420            = 1,
+       STD_VIDEO_H264_CHROMA_FORMAT_IDC_422            = 2,
+       STD_VIDEO_H264_CHROMA_FORMAT_IDC_444            = 3,
+       STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID        = 0x7FFFFFFF,
+       STD_VIDEO_H264_CHROMA_FORMAT_IDC_MAX_ENUM       = 0x7FFFFFFF
+};
+
+enum StdVideoH264ProfileIdc
+{
+       STD_VIDEO_H264_PROFILE_IDC_BASELINE                             = 66,
+       STD_VIDEO_H264_PROFILE_IDC_MAIN                                 = 77,
+       STD_VIDEO_H264_PROFILE_IDC_HIGH                                 = 100,
+       STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE  = 244,
+       STD_VIDEO_H264_PROFILE_IDC_INVALID                              = 0x7FFFFFFF,
+       STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM                             = 0x7FFFFFFF
+};
+
+enum StdVideoH264Level
+{
+       STD_VIDEO_H264_LEVEL_1_0                = 0,
+       STD_VIDEO_H264_LEVEL_1_1                = 1,
+       STD_VIDEO_H264_LEVEL_1_2                = 2,
+       STD_VIDEO_H264_LEVEL_1_3                = 3,
+       STD_VIDEO_H264_LEVEL_2_0                = 4,
+       STD_VIDEO_H264_LEVEL_2_1                = 5,
+       STD_VIDEO_H264_LEVEL_2_2                = 6,
+       STD_VIDEO_H264_LEVEL_3_0                = 7,
+       STD_VIDEO_H264_LEVEL_3_1                = 8,
+       STD_VIDEO_H264_LEVEL_3_2                = 9,
+       STD_VIDEO_H264_LEVEL_4_0                = 10,
+       STD_VIDEO_H264_LEVEL_4_1                = 11,
+       STD_VIDEO_H264_LEVEL_4_2                = 12,
+       STD_VIDEO_H264_LEVEL_5_0                = 13,
+       STD_VIDEO_H264_LEVEL_5_1                = 14,
+       STD_VIDEO_H264_LEVEL_5_2                = 15,
+       STD_VIDEO_H264_LEVEL_6_0                = 16,
+       STD_VIDEO_H264_LEVEL_6_1                = 17,
+       STD_VIDEO_H264_LEVEL_6_2                = 18,
+       STD_VIDEO_H264_LEVEL_INVALID    = 0x7FFFFFFF,
+       STD_VIDEO_H264_LEVEL_MAX_ENUM   = 0x7FFFFFFF
+};
+
+enum StdVideoH264PocType
+{
+       STD_VIDEO_H264_POC_TYPE_0                       = 0,
+       STD_VIDEO_H264_POC_TYPE_1                       = 1,
+       STD_VIDEO_H264_POC_TYPE_2                       = 2,
+       STD_VIDEO_H264_POC_TYPE_INVALID         = 0x7FFFFFFF,
+       STD_VIDEO_H264_POC_TYPE_MAX_ENUM        = 0x7FFFFFFF
+};
+
+enum StdVideoH264AspectRatioIdc
+{
+       STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED             = 0,
+       STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE                  = 1,
+       STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11                   = 2,
+       STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11                   = 3,
+       STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11                   = 4,
+       STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33                   = 5,
+       STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11                   = 6,
+       STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11                   = 7,
+       STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11                   = 8,
+       STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33                   = 9,
+       STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11                   = 10,
+       STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11                   = 11,
+       STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33                   = 12,
+       STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99                  = 13,
+       STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3                             = 14,
+       STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2                             = 15,
+       STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1                             = 16,
+       STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR    = 255,
+       STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID                 = 0x7FFFFFFF,
+       STD_VIDEO_H264_ASPECT_RATIO_IDC_MAX_ENUM                = 0x7FFFFFFF
+};
+
+enum StdVideoH264WeightedBipredIdc
+{
+       STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT      = 0,
+       STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT     = 1,
+       STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT     = 2,
+       STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID      = 0x7FFFFFFF,
+       STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_MAX_ENUM     = 0x7FFFFFFF
+};
+
+enum StdVideoH264ModificationOfPicNumsIdc
+{
+       STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0,
+       STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD              = 1,
+       STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM                   = 2,
+       STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END                                 = 3,
+       STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID                             = 0x7FFFFFFF,
+       STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_MAX_ENUM                    = 0x7FFFFFFF
+};
+
+enum StdVideoH264MemMgmtControlOp
+{
+       STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END                                                  = 0,
+       STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM                    = 1,
+       STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM                             = 2,
+       STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM                               = 3,
+       STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX              = 4,
+       STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL                                   = 5,
+       STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM    = 6,
+       STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID                                              = 0x7FFFFFFF,
+       STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MAX_ENUM                                             = 0x7FFFFFFF
+};
+
+enum StdVideoH264CabacInitIdc
+{
+       STD_VIDEO_H264_CABAC_INIT_IDC_0                 = 0,
+       STD_VIDEO_H264_CABAC_INIT_IDC_1                 = 1,
+       STD_VIDEO_H264_CABAC_INIT_IDC_2                 = 2,
+       STD_VIDEO_H264_CABAC_INIT_IDC_INVALID   = 0x7FFFFFFF,
+       STD_VIDEO_H264_CABAC_INIT_IDC_MAX_ENUM  = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoEncodeH265CapabilityFlagsEXT;
 
-enum VkVideoEncodeH265InputModeFlagBitsEXT
+enum StdVideoH264DisableDeblockingFilterIdc
 {
-       VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT                   = 0x00000001,
-       VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT   = 0x00000002,
-       VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT                 = 0x00000004,
-       VK_VIDEO_ENCODE_H265_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT  = 0x7FFFFFFF,
+       STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED   = 0,
+       STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED    = 1,
+       STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL    = 2,
+       STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID    = 0x7FFFFFFF,
+       STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM   = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoEncodeH265InputModeFlagsEXT;
 
-enum VkVideoEncodeH265OutputModeFlagBitsEXT
+enum StdVideoH264SliceType
 {
-       VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT                  = 0x00000001,
-       VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT  = 0x00000002,
-       VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT                = 0x00000004,
-       VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF,
+       STD_VIDEO_H264_SLICE_TYPE_P                     = 0,
+       STD_VIDEO_H264_SLICE_TYPE_B                     = 1,
+       STD_VIDEO_H264_SLICE_TYPE_I                     = 2,
+       STD_VIDEO_H264_SLICE_TYPE_INVALID       = 0x7FFFFFFF,
+       STD_VIDEO_H264_SLICE_TYPE_MAX_ENUM      = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoEncodeH265OutputModeFlagsEXT;
 
-enum VkVideoEncodeH265CtbSizeFlagBitsEXT
+enum StdVideoH264PictureType
 {
-       VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT                                = 0x00000001,
-       VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT                                = 0x00000002,
-       VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT                                = 0x00000004,
-       VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_EXT    = 0x7FFFFFFF,
+       STD_VIDEO_H264_PICTURE_TYPE_P                   = 0,
+       STD_VIDEO_H264_PICTURE_TYPE_B                   = 1,
+       STD_VIDEO_H264_PICTURE_TYPE_I                   = 2,
+       STD_VIDEO_H264_PICTURE_TYPE_IDR                 = 5,
+       STD_VIDEO_H264_PICTURE_TYPE_INVALID             = 0x7FFFFFFF,
+       STD_VIDEO_H264_PICTURE_TYPE_MAX_ENUM    = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoEncodeH265CtbSizeFlagsEXT;
 
-enum VkVideoEncodeH265TransformBlockSizeFlagBitsEXT
+enum StdVideoH264NonVclNaluType
 {
-       VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT                                     = 0x00000001,
-       VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT                                     = 0x00000002,
-       VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT                            = 0x00000004,
-       VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT                            = 0x00000008,
-       VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_EXT        = 0x7FFFFFFF,
+       STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS                            = 0,
+       STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS                            = 1,
+       STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD                            = 2,
+       STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX                         = 3,
+       STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE        = 4,
+       STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM          = 5,
+       STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED                       = 6,
+       STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID                        = 0x7FFFFFFF,
+       STD_VIDEO_H264_NON_VCL_NALU_TYPE_MAX_ENUM                       = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoEncodeH265TransformBlockSizeFlagsEXT;
 
-enum VkVideoEncodeH265RateControlStructureFlagBitsEXT
+enum StdVideoDecodeH264FieldOrderCount
 {
-       VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT                         = 0,
-       VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT                        = 0x00000001,
-       VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT                      = 0x00000002,
-       VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT      = 0x7FFFFFFF,
+       STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP                     = 0,
+       STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM          = 1,
+       STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID         = 0x7FFFFFFF,
+       STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM        = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoEncodeH265RateControlStructureFlagsEXT;
 
-enum VkVideoDecodeH264PictureLayoutFlagBitsEXT
+enum StdVideoH265ChromaFormatIdc
 {
-       VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT                                                     = 0,
-       VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT        = 0x00000001,
-       VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT          = 0x00000002,
-       VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_EXT                                      = 0x7FFFFFFF,
+       STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME     = 0,
+       STD_VIDEO_H265_CHROMA_FORMAT_IDC_420            = 1,
+       STD_VIDEO_H265_CHROMA_FORMAT_IDC_422            = 2,
+       STD_VIDEO_H265_CHROMA_FORMAT_IDC_444            = 3,
+       STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID        = 0x7FFFFFFF,
+       STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM       = 0x7FFFFFFF
 };
-typedef uint32_t VkVideoDecodeH264PictureLayoutFlagsEXT;
 
-enum VkImageConstraintsInfoFlagBitsFUCHSIA
+enum StdVideoH265ProfileIdc
 {
-       VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA               = 0x00000001,
-       VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA                = 0x00000002,
-       VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA              = 0x00000004,
-       VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA               = 0x00000008,
-       VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA    = 0x00000010,
-       VK_IMAGE_CONSTRAINTS_INFO_FLAG_BITS_MAX_ENUM_FUCHSIA    = 0x7FFFFFFF,
+       STD_VIDEO_H265_PROFILE_IDC_MAIN                                         = 1,
+       STD_VIDEO_H265_PROFILE_IDC_MAIN_10                                      = 2,
+       STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE           = 3,
+       STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS      = 4,
+       STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS                       = 9,
+       STD_VIDEO_H265_PROFILE_IDC_INVALID                                      = 0x7FFFFFFF,
+       STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM                                     = 0x7FFFFFFF
 };
-typedef uint32_t VkImageConstraintsInfoFlagsFUCHSIA;
 
-enum VkExportMetalObjectTypeFlagBitsEXT
+enum StdVideoH265Level
 {
-       VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT                = 0x00000001,
-       VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT = 0x00000002,
-       VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT                = 0x00000004,
-       VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT               = 0x00000008,
-       VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT             = 0x00000010,
-       VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT  = 0x00000020,
-       VK_EXPORT_METAL_OBJECT_TYPE_FLAG_BITS_MAX_ENUM_EXT              = 0x7FFFFFFF,
+       STD_VIDEO_H265_LEVEL_1_0                = 0,
+       STD_VIDEO_H265_LEVEL_2_0                = 1,
+       STD_VIDEO_H265_LEVEL_2_1                = 2,
+       STD_VIDEO_H265_LEVEL_3_0                = 3,
+       STD_VIDEO_H265_LEVEL_3_1                = 4,
+       STD_VIDEO_H265_LEVEL_4_0                = 5,
+       STD_VIDEO_H265_LEVEL_4_1                = 6,
+       STD_VIDEO_H265_LEVEL_5_0                = 7,
+       STD_VIDEO_H265_LEVEL_5_1                = 8,
+       STD_VIDEO_H265_LEVEL_5_2                = 9,
+       STD_VIDEO_H265_LEVEL_6_0                = 10,
+       STD_VIDEO_H265_LEVEL_6_1                = 11,
+       STD_VIDEO_H265_LEVEL_6_2                = 12,
+       STD_VIDEO_H265_LEVEL_INVALID    = 0x7FFFFFFF,
+       STD_VIDEO_H265_LEVEL_MAX_ENUM   = 0x7FFFFFFF
 };
-typedef uint32_t VkExportMetalObjectTypeFlagsEXT;
 
-typedef uint32_t VkDeviceCreateFlags;
+enum StdVideoH265SliceType
+{
+       STD_VIDEO_H265_SLICE_TYPE_B                     = 0,
+       STD_VIDEO_H265_SLICE_TYPE_P                     = 1,
+       STD_VIDEO_H265_SLICE_TYPE_I                     = 2,
+       STD_VIDEO_H265_SLICE_TYPE_INVALID       = 0x7FFFFFFF,
+       STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM      = 0x7FFFFFFF
+};
 
-typedef uint32_t VkMemoryMapFlags;
+enum StdVideoH265PictureType
+{
+       STD_VIDEO_H265_PICTURE_TYPE_P                   = 0,
+       STD_VIDEO_H265_PICTURE_TYPE_B                   = 1,
+       STD_VIDEO_H265_PICTURE_TYPE_I                   = 2,
+       STD_VIDEO_H265_PICTURE_TYPE_IDR                 = 3,
+       STD_VIDEO_H265_PICTURE_TYPE_INVALID             = 0x7FFFFFFF,
+       STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM    = 0x7FFFFFFF
+};
 
-typedef uint32_t VkSemaphoreCreateFlags;
+typedef uint32_t VkFramebufferCreateFlags;
 
 typedef uint32_t VkQueryPoolCreateFlags;
 
+typedef uint32_t VkRenderPassCreateFlags;
+
+typedef uint32_t VkSamplerCreateFlags;
+
+typedef uint32_t VkPipelineLayoutCreateFlags;
+
+typedef uint32_t VkPipelineCacheCreateFlags;
+
+typedef uint32_t VkPipelineDepthStencilStateCreateFlags;
+
+typedef uint32_t VkPipelineDynamicStateCreateFlags;
+
+typedef uint32_t VkPipelineColorBlendStateCreateFlags;
+
+typedef uint32_t VkPipelineMultisampleStateCreateFlags;
+
+typedef uint32_t VkPipelineRasterizationStateCreateFlags;
+
+typedef uint32_t VkPipelineViewportStateCreateFlags;
+
+typedef uint32_t VkPipelineTessellationStateCreateFlags;
+
+typedef uint32_t VkPipelineInputAssemblyStateCreateFlags;
+
+typedef uint32_t VkPipelineVertexInputStateCreateFlags;
+
+typedef uint32_t VkPipelineShaderStageCreateFlags;
+
+typedef uint32_t VkDescriptorSetLayoutCreateFlags;
+
 typedef uint32_t VkBufferViewCreateFlags;
 
+typedef uint32_t VkInstanceCreateFlags;
+
+typedef uint32_t VkDeviceCreateFlags;
+
+typedef uint32_t VkDeviceQueueCreateFlags;
+
+typedef uint32_t VkQueueFlags;
+
+typedef uint32_t VkMemoryPropertyFlags;
+
+typedef uint32_t VkMemoryHeapFlags;
+
+typedef uint32_t VkAccessFlags;
+
+typedef uint32_t VkBufferUsageFlags;
+
+typedef uint32_t VkBufferCreateFlags;
+
+typedef uint32_t VkShaderStageFlags;
+
+typedef uint32_t VkImageUsageFlags;
+
+typedef uint32_t VkImageCreateFlags;
+
+typedef uint32_t VkImageViewCreateFlags;
+
+typedef uint32_t VkPipelineCreateFlags;
+
+typedef uint32_t VkColorComponentFlags;
+
+typedef uint32_t VkFenceCreateFlags;
+
+typedef uint32_t VkSemaphoreCreateFlags;
+
+typedef uint32_t VkFormatFeatureFlags;
+
+typedef uint32_t VkQueryControlFlags;
+
+typedef uint32_t VkQueryResultFlags;
+
 typedef uint32_t VkShaderModuleCreateFlags;
 
-typedef uint32_t VkPipelineVertexInputStateCreateFlags;
+typedef uint32_t VkEventCreateFlags;
+
+typedef uint32_t VkCommandPoolCreateFlags;
+
+typedef uint32_t VkCommandPoolResetFlags;
+
+typedef uint32_t VkCommandBufferResetFlags;
+
+typedef uint32_t VkCommandBufferUsageFlags;
+
+typedef uint32_t VkQueryPipelineStatisticFlags;
+
+typedef uint32_t VkMemoryMapFlags;
+
+typedef uint32_t VkImageAspectFlags;
+
+typedef uint32_t VkSparseMemoryBindFlags;
+
+typedef uint32_t VkSparseImageFormatFlags;
+
+typedef uint32_t VkSubpassDescriptionFlags;
+
+typedef uint32_t VkPipelineStageFlags;
+
+typedef uint32_t VkSampleCountFlags;
+
+typedef uint32_t VkAttachmentDescriptionFlags;
+
+typedef uint32_t VkStencilFaceFlags;
+
+typedef uint32_t VkCullModeFlags;
+
+typedef uint32_t VkDescriptorPoolCreateFlags;
+
+typedef uint32_t VkDescriptorPoolResetFlags;
+
+typedef uint32_t VkDependencyFlags;
+
+typedef uint32_t VkSubgroupFeatureFlags;
+
+typedef uint32_t VkIndirectCommandsLayoutUsageFlagsNV;
+
+typedef uint32_t VkIndirectStateFlagsNV;
+
+typedef uint32_t VkGeometryFlagsKHR;
+
+typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
+
+typedef uint32_t VkGeometryInstanceFlagsKHR;
+
+typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
+
+typedef uint32_t VkBuildAccelerationStructureFlagsKHR;
+
+typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
+
+typedef uint32_t VkPrivateDataSlotCreateFlags;
+
+typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT;
+
+typedef uint32_t VkAccelerationStructureCreateFlagsKHR;
 
-typedef uint32_t VkPipelineInputAssemblyStateCreateFlags;
+typedef uint32_t VkDescriptorUpdateTemplateCreateFlags;
 
-typedef uint32_t VkPipelineTessellationStateCreateFlags;
+typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
 
-typedef uint32_t VkPipelineViewportStateCreateFlags;
+typedef uint32_t VkPipelineCreationFeedbackFlags;
 
-typedef uint32_t VkPipelineRasterizationStateCreateFlags;
+typedef VkPipelineCreationFeedbackFlags VkPipelineCreationFeedbackFlagsEXT;
 
-typedef uint32_t VkPipelineMultisampleStateCreateFlags;
+typedef uint32_t VkPerformanceCounterDescriptionFlagsKHR;
 
-typedef uint32_t VkPipelineDynamicStateCreateFlags;
+typedef uint32_t VkAcquireProfilingLockFlagsKHR;
 
-typedef uint32_t VkDescriptorPoolResetFlags;
+typedef uint32_t VkSemaphoreWaitFlags;
 
-typedef uint32_t VkCommandPoolTrimFlags;
+typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
 
-typedef uint32_t VkDescriptorUpdateTemplateCreateFlags;
+typedef uint32_t VkPipelineCompilerControlFlagsAMD;
 
-typedef uint32_t VkPrivateDataSlotCreateFlags;
+typedef uint32_t VkShaderCorePropertiesFlagsAMD;
 
-typedef uint32_t VkDisplayModeCreateFlagsKHR;
+typedef uint32_t VkDeviceDiagnosticsConfigFlagsNV;
 
-typedef uint32_t VkDisplaySurfaceCreateFlagsKHR;
+typedef uint64_t VkAccessFlags2;
 
-typedef uint32_t VkPipelineRasterizationStateStreamCreateFlagsEXT;
+typedef VkAccessFlags2 VkAccessFlags2KHR;
 
-typedef uint32_t VkPipelineViewportSwizzleStateCreateFlagsNV;
+typedef uint64_t VkPipelineStageFlags2;
 
-typedef uint32_t VkPipelineDiscardRectangleStateCreateFlagsEXT;
+typedef VkPipelineStageFlags2 VkPipelineStageFlags2KHR;
 
-typedef uint32_t VkPipelineRasterizationConservativeStateCreateFlagsEXT;
+typedef uint32_t VkAccelerationStructureMotionInfoFlagsNV;
 
-typedef uint32_t VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
+typedef uint32_t VkAccelerationStructureMotionInstanceFlagsNV;
 
-typedef uint32_t VkDebugUtilsMessengerCallbackDataFlagsEXT;
+typedef uint64_t VkFormatFeatureFlags2;
 
-typedef uint32_t VkDebugUtilsMessengerCreateFlagsEXT;
+typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR;
 
-typedef uint32_t VkPipelineCoverageToColorStateCreateFlagsNV;
+typedef uint32_t VkRenderingFlags;
 
-typedef uint32_t VkPipelineCoverageModulationStateCreateFlagsNV;
+typedef VkRenderingFlags VkRenderingFlagsKHR;
 
-typedef uint32_t VkValidationCacheCreateFlagsEXT;
+typedef uint32_t VkCompositeAlphaFlagsKHR;
 
-typedef uint32_t VkPipelineCoverageReductionStateCreateFlagsNV;
+typedef uint32_t VkDisplayPlaneAlphaFlagsKHR;
 
-typedef uint32_t VkHeadlessSurfaceCreateFlagsEXT;
+typedef uint32_t VkSurfaceTransformFlagsKHR;
 
-typedef uint32_t VkDeviceMemoryReportFlagsEXT;
+typedef uint32_t VkSwapchainCreateFlagsKHR;
 
-typedef uint32_t VkAccelerationStructureMotionInfoFlagsNV;
+typedef uint32_t VkDisplayModeCreateFlagsKHR;
 
-typedef uint32_t VkAccelerationStructureMotionInstanceFlagsNV;
+typedef uint32_t VkDisplaySurfaceCreateFlagsKHR;
 
 typedef uint32_t VkAndroidSurfaceCreateFlagsKHR;
 
-typedef uint32_t VkVideoBeginCodingFlagsKHR;
+typedef uint32_t VkViSurfaceCreateFlagsNN;
 
-typedef uint32_t VkVideoEndCodingFlagsKHR;
+typedef uint32_t VkWaylandSurfaceCreateFlagsKHR;
 
-typedef uint32_t VkImagePipeSurfaceCreateFlagsFUCHSIA;
+typedef uint32_t VkWin32SurfaceCreateFlagsKHR;
 
-typedef uint32_t VkImageFormatConstraintsFlagsFUCHSIA;
+typedef uint32_t VkXlibSurfaceCreateFlagsKHR;
 
-typedef uint32_t VkStreamDescriptorSurfaceCreateFlagsGGP;
+typedef uint32_t VkXcbSurfaceCreateFlagsKHR;
+
+typedef uint32_t VkDirectFBSurfaceCreateFlagsEXT;
 
 typedef uint32_t VkIOSSurfaceCreateFlagsMVK;
 
@@ -4388,605 +4608,793 @@ typedef uint32_t VkMacOSSurfaceCreateFlagsMVK;
 
 typedef uint32_t VkMetalSurfaceCreateFlagsEXT;
 
-typedef uint32_t VkViSurfaceCreateFlagsNN;
+typedef uint32_t VkImagePipeSurfaceCreateFlagsFUCHSIA;
 
-typedef uint32_t VkWaylandSurfaceCreateFlagsKHR;
+typedef uint32_t VkStreamDescriptorSurfaceCreateFlagsGGP;
 
-typedef uint32_t VkWin32SurfaceCreateFlagsKHR;
+typedef uint32_t VkHeadlessSurfaceCreateFlagsEXT;
 
-typedef uint32_t VkXcbSurfaceCreateFlagsKHR;
+typedef uint32_t VkScreenSurfaceCreateFlagsQNX;
 
-typedef uint32_t VkXlibSurfaceCreateFlagsKHR;
+typedef uint32_t VkPeerMemoryFeatureFlags;
 
 typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
 
-typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
-
-typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
-
-typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
+typedef uint32_t VkMemoryAllocateFlags;
 
-typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
+typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
 
-typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
+typedef uint32_t VkDeviceGroupPresentModeFlagsKHR;
 
-typedef VkFenceImportFlags VkFenceImportFlagsKHR;
+typedef uint32_t VkDebugReportFlagsEXT;
 
-typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
+typedef uint32_t VkCommandPoolTrimFlags;
 
-typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
+typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
 
-typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
+typedef uint32_t VkExternalMemoryHandleTypeFlagsNV;
 
-typedef VkResolveModeFlags VkResolveModeFlagsKHR;
+typedef uint32_t VkExternalMemoryFeatureFlagsNV;
 
-typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
+typedef uint32_t VkExternalMemoryHandleTypeFlags;
 
-typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
+typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
 
-typedef VkPipelineCreationFeedbackFlags VkPipelineCreationFeedbackFlagsEXT;
+typedef uint32_t VkExternalMemoryFeatureFlags;
 
-typedef VkToolPurposeFlags VkToolPurposeFlagsEXT;
+typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
 
-typedef VkSubmitFlags VkSubmitFlagsKHR;
+typedef uint32_t VkExternalSemaphoreHandleTypeFlags;
 
-typedef VkRenderingFlags VkRenderingFlagsKHR;
+typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
 
-typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
+typedef uint32_t VkExternalSemaphoreFeatureFlags;
 
-typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
+typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
 
-typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
+typedef uint32_t VkSemaphoreImportFlags;
 
-typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
+typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
 
-typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
+typedef uint32_t VkExternalFenceHandleTypeFlags;
 
-typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT;
+typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
 
-typedef uint64_t VkPipelineStageFlags2;
+typedef uint32_t VkExternalFenceFeatureFlags;
 
-typedef uint64_t VkPipelineStageFlagBits2;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE                                                                         = 0ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR                                                                     = 0ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT                                                      = 0x00000001ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR                                          = 0x00000001ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT                                                    = 0x00000002ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR                                                = 0x00000002ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT                                                     = 0x00000004ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR                                         = 0x00000004ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT                                                    = 0x00000008ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR                                                = 0x00000008ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT                      = 0x00000010ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR          = 0x00000010ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT           = 0x00000020ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR       = 0x00000020ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT                                          = 0x00000040ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR                                      = 0x00000040ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT                                          = 0x00000080ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR                                      = 0x00000080ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT                                     = 0x00000100ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR                         = 0x00000100ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT                                      = 0x00000200ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR                          = 0x00000200ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT                          = 0x00000400ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR                      = 0x00000400ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT                                           = 0x00000800ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR                                       = 0x00000800ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT                                                     = 0x00001000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR                                         = 0x00001000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT                                                         = 0x00001000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR                                                     = 0x00001000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT                                           = 0x00002000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR                                       = 0x00002000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT                                                                     = 0x00004000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR                                                         = 0x00004000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT                                                     = 0x00008000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR                                         = 0x00008000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT                                                     = 0x00010000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR                                         = 0x00010000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT                                                                     = 0x100000000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR                                                         = 0x100000000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT                                                          = 0x200000000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR                                                      = 0x200000000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT                                                                     = 0x400000000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR                                                         = 0x400000000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT                                                                    = 0x800000000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR                                                                = 0x800000000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT                                                      = 0x1000000000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR                                          = 0x1000000000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT                           = 0x2000000000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR                       = 0x2000000000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT                                = 0x4000000000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR                    = 0x4000000000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR                                         = 0x04000000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR                                         = 0x08000000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT                           = 0x01000000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT                                = 0x00040000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV                                    = 0x00020000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR     = 0x00400000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV                                    = 0x00400000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR         = 0x02000000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR                           = 0x00200000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV                                    = 0x00200000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV          = 0x02000000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT                     = 0x00800000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV                                           = 0x00080000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV                                           = 0x00100000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI                           = 0x8000000000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI                           = 0x10000000000ULL;
-static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR          = 0x10000000ULL;
+typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
 
+typedef uint32_t VkFenceImportFlags;
 
-typedef uint64_t VkAccessFlags2;
+typedef VkFenceImportFlags VkFenceImportFlagsKHR;
 
-typedef uint64_t VkAccessFlagBits2;
-static const VkAccessFlagBits2 VK_ACCESS_2_NONE                                                                                                = 0ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR                                                                                    = 0ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT                                           = 0x00000001ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR                                       = 0x00000001ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT                                                                      = 0x00000002ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR                                                          = 0x00000002ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT                                           = 0x00000004ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR                                       = 0x00000004ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT                                                                    = 0x00000008ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR                                                                = 0x00000008ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT                                           = 0x00000010ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR                                       = 0x00000010ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT                                                                     = 0x00000020ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR                                                         = 0x00000020ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT                                                                    = 0x00000040ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR                                                                = 0x00000040ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT                                           = 0x00000080ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR                                       = 0x00000080ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT                                          = 0x00000100ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR                                      = 0x00000100ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT                           = 0x00000200ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR                       = 0x00000200ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT                          = 0x00000400ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR                      = 0x00000400ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT                                                           = 0x00000800ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR                                                       = 0x00000800ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT                                                          = 0x00001000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR                                                      = 0x00001000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT                                                                       = 0x00002000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR                                                           = 0x00002000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT                                                                      = 0x00004000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR                                                          = 0x00004000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT                                                                     = 0x00008000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR                                                         = 0x00008000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT                                                                    = 0x00010000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR                                                                = 0x00010000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT                                                     = 0x100000000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR                                         = 0x100000000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT                                                     = 0x200000000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR                                         = 0x200000000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT                                                    = 0x400000000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR                                                = 0x400000000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR                                           = 0x800000000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR                                          = 0x1000000000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR                                           = 0x2000000000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR                                          = 0x4000000000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT                                    = 0x02000000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT                     = 0x04000000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT                    = 0x08000000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT                          = 0x00100000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV                                      = 0x00020000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV                                     = 0x00040000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR       = 0x00800000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV                                      = 0x00800000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR                         = 0x00200000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR                                = 0x00400000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV                          = 0x00200000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV                         = 0x00400000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT                           = 0x01000000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT           = 0x00080000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI                                     = 0x8000000000ULL;
-static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR                           = 0x10000000000ULL;
+typedef uint32_t VkSurfaceCounterFlagsEXT;
 
+typedef uint32_t VkPipelineViewportSwizzleStateCreateFlagsNV;
 
-typedef uint64_t VkFormatFeatureFlags2;
+typedef uint32_t VkPipelineDiscardRectangleStateCreateFlagsEXT;
 
-typedef uint64_t VkFormatFeatureFlagBits2;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT                                                                                                                                    = 0x00000001ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR                                                                                                                                = 0x00000001ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT                                                                                                                                    = 0x00000002ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR                                                                                                                                = 0x00000002ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT                                                                                                                     = 0x00000004ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR                                                                                                         = 0x00000004ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT                                                                                                                     = 0x00000008ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR                                                                                                         = 0x00000008ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT                                                                                                                     = 0x00000010ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR                                                                                                         = 0x00000010ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT                                                                                                      = 0x00000020ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR                                                                                          = 0x00000020ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT                                                                                                                                    = 0x00000040ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR                                                                                                                                = 0x00000040ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT                                                                                                                         = 0x00000080ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR                                                                                                                     = 0x00000080ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT                                                                                                           = 0x00000100ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR                                                                                                       = 0x00000100ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT                                                                                                         = 0x00000200ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR                                                                                                     = 0x00000200ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT                                                                                                                                         = 0x00000400ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR                                                                                                                                     = 0x00000400ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT                                                                                                                                         = 0x00000800ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR                                                                                                                                     = 0x00000800ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT                                                                                                      = 0x00001000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR                                                                                          = 0x00001000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT                                                                                                       = 0x00002000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT                                                                                           = 0x00002000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT                                                                                                                                     = 0x00004000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR                                                                                                                         = 0x00004000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT                                                                                                                                     = 0x00008000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR                                                                                                                         = 0x00008000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT                                                                                                      = 0x00010000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR                                                                                          = 0x00010000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT                                                                                                          = 0x00020000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR                                                                                                      = 0x00020000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT                                                                     = 0x00040000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR                                                         = 0x00040000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT                                    = 0x00080000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR                                = 0x00080000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT                                    = 0x00100000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR                                = 0x00100000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT          = 0x00200000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR      = 0x00200000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT                                                                                                                                         = 0x00400000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR                                                                                                                                     = 0x00400000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT                                                                                                           = 0x00800000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR                                                                                                       = 0x00800000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT                                                                                                      = 0x80000000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR                                                                                          = 0x80000000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT                                                                                                     = 0x100000000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR                                                                                         = 0x100000000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT                                                                                           = 0x200000000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR                                                                                       = 0x200000000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR                                                                                                          = 0x02000000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR                                                                                                                     = 0x04000000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR                                                                         = 0x20000000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT                                                                                                         = 0x01000000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR                                                                                     = 0x40000000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR                                                                                                           = 0x08000000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR                                                                                                                     = 0x10000000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV                                                                                                       = 0x4000000000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM                                                                                                                                = 0x400000000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM                                                                                                                = 0x800000000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM                                                                                                                      = 0x1000000000ULL;
-static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM                                                                                                          = 0x2000000000ULL;
+typedef uint32_t VkPipelineCoverageToColorStateCreateFlagsNV;
 
+typedef uint32_t VkPipelineCoverageModulationStateCreateFlagsNV;
 
-typedef VkPipelineStageFlags2 VkPipelineStageFlags2KHR;
+typedef uint32_t VkPipelineCoverageReductionStateCreateFlagsNV;
 
-typedef VkPipelineStageFlagBits2 VkPipelineStageFlagBits2KHR;
+typedef uint32_t VkValidationCacheCreateFlagsEXT;
 
-typedef VkAccessFlags2 VkAccessFlags2KHR;
+typedef uint32_t VkDebugUtilsMessageSeverityFlagsEXT;
 
-typedef VkAccessFlagBits2 VkAccessFlagBits2KHR;
+typedef uint32_t VkDebugUtilsMessageTypeFlagsEXT;
 
-typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR;
+typedef uint32_t VkDebugUtilsMessengerCreateFlagsEXT;
 
-typedef VkFormatFeatureFlagBits2 VkFormatFeatureFlagBits2KHR;
+typedef uint32_t VkDebugUtilsMessengerCallbackDataFlagsEXT;
 
-VK_DEFINE_PLATFORM_TYPE(XlibDisplayPtr,                                void*)
-VK_DEFINE_PLATFORM_TYPE(XlibWindow,                                    uintptr_t)
-VK_DEFINE_PLATFORM_TYPE(XlibVisualID,                          uint32_t)
-VK_DEFINE_PLATFORM_TYPE(XcbConnectionPtr,                      void*)
-VK_DEFINE_PLATFORM_TYPE(XcbWindow,                                     uintptr_t)
-VK_DEFINE_PLATFORM_TYPE(XcbVisualid,                           uint32_t)
-VK_DEFINE_PLATFORM_TYPE(WaylandDisplayPtr,                     void*)
-VK_DEFINE_PLATFORM_TYPE(WaylandSurfacePtr,                     void*)
-VK_DEFINE_PLATFORM_TYPE(MirConnectionPtr,                      void*)
-VK_DEFINE_PLATFORM_TYPE(MirSurfacePtr,                         void*)
-VK_DEFINE_PLATFORM_TYPE(AndroidNativeWindowPtr,                void*)
-VK_DEFINE_PLATFORM_TYPE(Win32InstanceHandle,           void*)
-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(Win32MonitorHandle,                    void*)
-VK_DEFINE_PLATFORM_TYPE(Win32LPCWSTR,                          const void*)
-VK_DEFINE_PLATFORM_TYPE(RROutput,                                      void*)
-VK_DEFINE_PLATFORM_TYPE(zx_handle_t,                           uint32_t)
-VK_DEFINE_PLATFORM_TYPE(GgpFrameToken,                         int32_t)
-VK_DEFINE_PLATFORM_TYPE(GgpStreamDescriptor,           int32_t)
-VK_DEFINE_PLATFORM_TYPE(CAMetalLayer,                          void*)
-VK_DEFINE_PLATFORM_TYPE(MTLDevice_id,                          void*)
-VK_DEFINE_PLATFORM_TYPE(MTLCommandQueue_id,                    void*)
-VK_DEFINE_PLATFORM_TYPE(MTLBuffer_id,                          void*)
-VK_DEFINE_PLATFORM_TYPE(MTLTexture_id,                         void*)
-VK_DEFINE_PLATFORM_TYPE(IOSurfaceRef,                          void*)
-VK_DEFINE_PLATFORM_TYPE(MTLSharedEvent_id,                     void*)
-#define VK_KHR_SURFACE_SPEC_VERSION 25
-#define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
-#define VK_KHR_DISPLAY_SPEC_VERSION 23
-#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
-#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
-#define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
-#define VK_KHR_MULTIVIEW_SPEC_VERSION 1
-#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
-#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
-#define VK_KHR_DEVICE_GROUP_SPEC_VERSION 4
-#define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
-#define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2
-#define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1"
-#define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
-#define VK_MAX_DEVICE_GROUP_SIZE_KHR VK_MAX_DEVICE_GROUP_SIZE
-#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
-#define VK_LUID_SIZE_KHR VK_LUID_SIZE
-#define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
-#define VK_QUEUE_FAMILY_EXTERNAL_KHR VK_QUEUE_FAMILY_EXTERNAL
-#define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
-#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
-#define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
-#define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
-#define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
-#define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
-#define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
-#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2
-#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
-#define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
-#define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
-#define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
-#define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
-#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
-#define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
-#define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
-#define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
-#define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1
-#define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2"
-#define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
-#define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
-#define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
-#define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
-#define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
-#define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
-#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
-#define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 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"
-#define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
-#define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
-#define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
-#define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
-#define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1
-#define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3"
-#define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
-#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
-#define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
-#define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
-#define VK_KHR_SHADER_CLOCK_SPEC_VERSION 1
-#define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR 16U
-#define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1
-#define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
-#define VK_MAX_DRIVER_NAME_SIZE_KHR VK_MAX_DRIVER_NAME_SIZE
-#define VK_MAX_DRIVER_INFO_SIZE_KHR VK_MAX_DRIVER_INFO_SIZE
-#define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
-#define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
-#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
-#define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
-#define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
-#define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1
-#define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2
-#define VK_KHR_SPIRV_1_4_SPEC_VERSION 1
-#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
-#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
-#define VK_KHR_PRESENT_WAIT_SPEC_VERSION 1
-#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
-#define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
-#define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4
-#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
-#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
-#define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
-#define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
-#define VK_KHR_PRESENT_ID_SPEC_VERSION 1
-#define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1
-#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
-#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1
-#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1
-#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1
-#define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
-#define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
-#define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 1
-#define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2"
-#define VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION 1
-#define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1"
-#define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1
-#define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2
-#define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4"
+typedef uint32_t VkDeviceMemoryReportFlagsEXT;
+
+typedef uint32_t VkPipelineRasterizationConservativeStateCreateFlagsEXT;
+
+typedef uint32_t VkDescriptorBindingFlags;
+
+typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
+
+typedef uint32_t VkConditionalRenderingFlagsEXT;
+
+typedef uint32_t VkResolveModeFlags;
+
+typedef VkResolveModeFlags VkResolveModeFlagsKHR;
+
+typedef uint32_t VkPipelineRasterizationStateStreamCreateFlagsEXT;
+
+typedef uint32_t VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
+
+typedef uint32_t VkSwapchainImageUsageFlagsANDROID;
+
+typedef uint32_t VkToolPurposeFlags;
+
+typedef VkToolPurposeFlags VkToolPurposeFlagsEXT;
+
+typedef uint32_t VkSubmitFlags;
+
+typedef VkSubmitFlags VkSubmitFlagsKHR;
+
+typedef uint32_t VkImageFormatConstraintsFlagsFUCHSIA;
+
+typedef uint32_t VkImageConstraintsInfoFlagsFUCHSIA;
+
+typedef uint32_t VkGraphicsPipelineLibraryFlagsEXT;
+
+typedef uint32_t VkImageCompressionFlagsEXT;
+
+typedef uint32_t VkImageCompressionFixedRateFlagsEXT;
+
+typedef uint32_t VkExportMetalObjectTypeFlagsEXT;
+
+typedef uint32_t VkVideoCodecOperationFlagsKHR;
+
+typedef uint32_t VkVideoCapabilityFlagsKHR;
+
+typedef uint32_t VkVideoSessionCreateFlagsKHR;
+
+typedef uint32_t VkVideoBeginCodingFlagsKHR;
+
+typedef uint32_t VkVideoEndCodingFlagsKHR;
+
+typedef uint32_t VkVideoCodingQualityPresetFlagsKHR;
+
+typedef uint32_t VkVideoCodingControlFlagsKHR;
+
+typedef uint32_t VkVideoDecodeCapabilityFlagsKHR;
+
+typedef uint32_t VkVideoDecodeFlagsKHR;
+
+typedef uint32_t VkVideoDecodeH264PictureLayoutFlagsEXT;
+
+typedef uint32_t VkVideoEncodeFlagsKHR;
+
+typedef uint32_t VkVideoEncodeCapabilityFlagsKHR;
+
+typedef uint32_t VkVideoEncodeRateControlFlagsKHR;
+
+typedef uint32_t VkVideoEncodeRateControlModeFlagsKHR;
+
+typedef uint32_t VkVideoChromaSubsamplingFlagsKHR;
+
+typedef uint32_t VkVideoComponentBitDepthFlagsKHR;
+
+typedef uint32_t VkVideoEncodeH264CapabilityFlagsEXT;
+
+typedef uint32_t VkVideoEncodeH264InputModeFlagsEXT;
+
+typedef uint32_t VkVideoEncodeH264OutputModeFlagsEXT;
+
+typedef uint32_t VkVideoEncodeH264RateControlStructureFlagsEXT;
+
+typedef uint32_t VkVideoEncodeH265CapabilityFlagsEXT;
+
+typedef uint32_t VkVideoEncodeH265InputModeFlagsEXT;
+
+typedef uint32_t VkVideoEncodeH265OutputModeFlagsEXT;
+
+typedef uint32_t VkVideoEncodeH265RateControlStructureFlagsEXT;
+
+typedef uint32_t VkVideoEncodeH265CtbSizeFlagsEXT;
+
+typedef uint32_t VkVideoEncodeH265TransformBlockSizeFlagsEXT;
+
+
+VK_DEFINE_PLATFORM_TYPE(XlibDisplayPtr,                                void*)
+VK_DEFINE_PLATFORM_TYPE(XlibWindow,                                    uintptr_t)
+VK_DEFINE_PLATFORM_TYPE(XlibVisualID,                          uint32_t)
+VK_DEFINE_PLATFORM_TYPE(XcbConnectionPtr,                      void*)
+VK_DEFINE_PLATFORM_TYPE(XcbWindow,                                     uintptr_t)
+VK_DEFINE_PLATFORM_TYPE(XcbVisualid,                           uint32_t)
+VK_DEFINE_PLATFORM_TYPE(WaylandDisplayPtr,                     void*)
+VK_DEFINE_PLATFORM_TYPE(WaylandSurfacePtr,                     void*)
+VK_DEFINE_PLATFORM_TYPE(MirConnectionPtr,                      void*)
+VK_DEFINE_PLATFORM_TYPE(MirSurfacePtr,                         void*)
+VK_DEFINE_PLATFORM_TYPE(AndroidNativeWindowPtr,                void*)
+VK_DEFINE_PLATFORM_TYPE(Win32InstanceHandle,           void*)
+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(Win32MonitorHandle,                    void*)
+VK_DEFINE_PLATFORM_TYPE(Win32LPCWSTR,                          const void*)
+VK_DEFINE_PLATFORM_TYPE(RROutput,                                      void*)
+VK_DEFINE_PLATFORM_TYPE(zx_handle_t,                           uint32_t)
+VK_DEFINE_PLATFORM_TYPE(GgpFrameToken,                         int32_t)
+VK_DEFINE_PLATFORM_TYPE(GgpStreamDescriptor,           int32_t)
+VK_DEFINE_PLATFORM_TYPE(CAMetalLayer,                          void*)
+VK_DEFINE_PLATFORM_TYPE(QNXScreenContextPtr,           void*)
+VK_DEFINE_PLATFORM_TYPE(QNXScreenWindowPtr,                    void*)
+VK_DEFINE_PLATFORM_TYPE(MTLDevice_id,                          void*)
+VK_DEFINE_PLATFORM_TYPE(MTLCommandQueue_id,                    void*)
+VK_DEFINE_PLATFORM_TYPE(MTLBuffer_id,                          void*)
+VK_DEFINE_PLATFORM_TYPE(MTLTexture_id,                         void*)
+VK_DEFINE_PLATFORM_TYPE(IOSurfaceRef,                          void*)
+VK_DEFINE_PLATFORM_TYPE(MTLSharedEvent_id,                     void*)
+
+#define VK_KHR_SURFACE_SPEC_VERSION 25
+#define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
+#define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
+#define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
+#define VK_KHR_DISPLAY_SPEC_VERSION 23
+#define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display"
+#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
+#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
+#define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6
+#define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface"
+#define VK_KHR_XCB_SURFACE_SPEC_VERSION 6
+#define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface"
+#define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6
+#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface"
+#define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
+#define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface"
+#define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6
+#define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"
 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION 10
+#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
 #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_SPEC_VERSION 1
+#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
+#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
+#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
 #define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1
+#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
 #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
+#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
 #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_SPEC_VERSION 1
+#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
 #define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4
+#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
+#define VK_KHR_VIDEO_QUEUE_SPEC_VERSION 4
+#define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue"
+#define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 4
+#define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue"
 #define VK_AMD_GCN_SHADER_SPEC_VERSION 1
+#define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader"
 #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
+#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
 #define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
+#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
 #define VK_NVX_BINARY_IMPORT_SPEC_VERSION 1
+#define VK_NVX_BINARY_IMPORT_EXTENSION_NAME "VK_NVX_binary_import"
 #define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2
+#define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
+#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
+#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
 #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
+#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
 #define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
+#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
+#define VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION 7
+#define VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_EXT_video_encode_h264"
+#define VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION 7
+#define VK_EXT_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_EXT_video_encode_h265"
+#define VK_EXT_VIDEO_DECODE_H264_SPEC_VERSION 5
+#define VK_EXT_VIDEO_DECODE_H264_EXTENSION_NAME "VK_EXT_video_decode_h264"
 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
+#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
 #define VK_AMD_SHADER_INFO_SPEC_VERSION 1
+#define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
+#define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
+#define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
+#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
+#define VK_GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION 1
+#define VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME "VK_GGP_stream_descriptor_surface"
 #define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
+#define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
+#define VK_KHR_MULTIVIEW_SPEC_VERSION 1
+#define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
 #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_SPEC_VERSION 1
+#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
 #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
+#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
+#define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
+#define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
+#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 2
+#define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
+#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
+#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
+#define VK_KHR_DEVICE_GROUP_SPEC_VERSION 4
+#define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
 #define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 2
+#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
+#define VK_NN_VI_SURFACE_SPEC_VERSION 1
+#define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface"
+#define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
+#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
 #define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
+#define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
 #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_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
+#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
 #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
+#define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
 #define VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION 1
+#define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness"
+#define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2
+#define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1"
+#define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
+#define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
+#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_EXTERNAL_MEMORY_SPEC_VERSION 1
+#define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
+#define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
+#define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32"
+#define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
+#define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
+#define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1
+#define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex"
+#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
+#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
+#define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
+#define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
+#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1
+#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32"
+#define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
+#define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
+#define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
+#define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
 #define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
+#define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
+#define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
+#define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
+#define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
+#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
+#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2
+#define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
+#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
+#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
 #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
+#define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
 #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
+#define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
+#define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
+#define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display"
 #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
+#define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
 #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
+#define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
 #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
+#define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
 #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"
 #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_ARRAY_2_SPEC_VERSION 1
 #define VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME "VK_NV_viewport_array2"
 #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"
 #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
+#define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
 #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
+#define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
 #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
+#define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
 #define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
+#define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 4
 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
 #define VK_EXT_HDR_METADATA_SPEC_VERSION 2
+#define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
+#define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
+#define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
+#define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
+#define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
+#define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
+#define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
+#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
+#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
+#define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
+#define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
+#define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1
+#define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32"
+#define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
+#define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
+#define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
+#define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
+#define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1
+#define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2"
+#define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
+#define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
+#define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
+#define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
+#define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
+#define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
+#define VK_MVK_IOS_SURFACE_SPEC_VERSION 3
+#define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
+#define VK_MVK_MACOS_SURFACE_SPEC_VERSION 3
+#define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
+#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
 #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
-#define VK_QUEUE_FAMILY_FOREIGN_EXT (~2U)
+#define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
+#define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
+#define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
 #define VK_EXT_DEBUG_UTILS_SPEC_VERSION 2
+#define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
+#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 5
+#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer"
 #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
+#define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
+#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_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
+#define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
+#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
 #define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
+#define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
 #define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
+#define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
 #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
+#define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
 #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
+#define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
+#define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
+#define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
+#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
+#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
+#define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
+#define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
 #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
+#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
 #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"
+#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
+#define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
+#define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
+#define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
+#define VK_KHR_RAY_QUERY_SPEC_VERSION 1
+#define VK_KHR_RAY_QUERY_EXTENSION_NAME "VK_KHR_ray_query"
 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
+#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
 #define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
+#define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
 #define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
+#define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
 #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
+#define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
+#define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
+#define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
+#define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
+#define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2
+#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
 #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
+#define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
 #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
+#define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
 #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_KHR_PORTABILITY_SUBSET_SPEC_VERSION 1
+#define VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME "VK_KHR_portability_subset"
 #define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
+#define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
 #define VK_NV_RAY_TRACING_SPEC_VERSION 3
-#define VK_SHADER_UNUSED_KHR (~0U)
-#define VK_SHADER_UNUSED_NV VK_SHADER_UNUSED_KHR
+#define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing"
 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
+#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
+#define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1
+#define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3"
+#define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
+#define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
 #define VK_EXT_FILTER_CUBIC_SPEC_VERSION 3
+#define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
 #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
+#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
+#define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
+#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
+#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
+#define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
+#define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
 #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
+#define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
 #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
+#define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
+#define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
+#define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
+#define VK_KHR_SHADER_CLOCK_SPEC_VERSION 1
+#define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
 #define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
+#define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
 #define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2
+#define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
 #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
+#define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
+#define VK_EXT_VIDEO_DECODE_H265_SPEC_VERSION 3
+#define VK_EXT_VIDEO_DECODE_H265_EXTENSION_NAME "VK_EXT_video_decode_h265"
+#define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1
+#define VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME "VK_KHR_global_priority"
 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
+#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
+#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
+#define VK_GGP_FRAME_TOKEN_SPEC_VERSION 1
+#define VK_GGP_FRAME_TOKEN_EXTENSION_NAME "VK_GGP_frame_token"
 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
+#define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
+#define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
+#define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
+#define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
+#define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
+#define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
+#define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
+#define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
+#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
+#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
+#define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
 #define VK_NV_MESH_SHADER_SPEC_VERSION 1
+#define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader"
 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
+#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
 #define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
+#define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
 #define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1
+#define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
+#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
+#define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
+#define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
+#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
 #define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
+#define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
+#define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
+#define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
 #define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 2
+#define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
 #define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
+#define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
+#define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1
+#define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface"
+#define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1
+#define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
+#define VK_EXT_METAL_SURFACE_SPEC_VERSION 1
+#define VK_EXT_METAL_SURFACE_EXTENSION_NAME "VK_EXT_metal_surface"
 #define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 2
+#define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
 #define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
+#define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
 #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION 1
 #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
 #define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
+#define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
 #define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
+#define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
+#define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2
+#define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
 #define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
+#define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
 #define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
+#define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1
+#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64"
+#define VK_KHR_SPIRV_1_4_SPEC_VERSION 1
+#define VK_KHR_SPIRV_1_4_EXTENSION_NAME "VK_KHR_spirv_1_4"
 #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
+#define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
 #define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
+#define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
+#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
+#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
+#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
+#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
+#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
 #define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
+#define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
 #define VK_EXT_TOOLING_INFO_SPEC_VERSION 1
+#define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info"
 #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
+#define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
 #define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 5
+#define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
+#define VK_KHR_PRESENT_WAIT_SPEC_VERSION 1
+#define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait"
 #define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
+#define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
 #define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
+#define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
+#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
 #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
+#define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
+#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
+#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
 #define VK_EXT_PROVOKING_VERTEX_SPEC_VERSION 1
+#define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex"
+#define VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION 4
+#define VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME "VK_EXT_full_screen_exclusive"
 #define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
+#define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
+#define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
+#define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
 #define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
+#define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
 #define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1
+#define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float"
 #define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
+#define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
 #define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
+#define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
 #define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
+#define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
+#define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4
+#define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
+#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
+#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
 #define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1
+#define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2"
 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
+#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
 #define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
+#define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
 #define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1
+#define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor"
+#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
+#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
+#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
 #define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 2
+#define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
 #define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 2
+#define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
 #define VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION 1
+#define VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_drm_display"
 #define VK_EXT_ROBUSTNESS_2_SPEC_VERSION 1
+#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
 #define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
+#define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
 #define VK_GOOGLE_USER_TYPE_SPEC_VERSION 1
+#define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
+#define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
+#define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
+#define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
+#define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
+#define VK_KHR_PRESENT_ID_SPEC_VERSION 1
+#define VK_KHR_PRESENT_ID_EXTENSION_NAME "VK_KHR_present_id"
 #define VK_EXT_PRIVATE_DATA_SPEC_VERSION 1
+#define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
 #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
+#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
+#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 5
+#define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"
 #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 2
+#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
 #define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2
+#define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
+#define VK_EXT_METAL_OBJECTS_SPEC_VERSION 1
+#define VK_EXT_METAL_OBJECTS_EXTENSION_NAME "VK_EXT_metal_objects"
+#define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1
+#define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2"
 #define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1
+#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
 #define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION 1
+#define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests"
+#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
+#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric"
+#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1
+#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow"
+#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1
+#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory"
 #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1
+#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
 #define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1
+#define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur"
 #define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1
+#define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats"
 #define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
+#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
 #define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 1
+#define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands"
 #define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1
+#define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
+#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1
+#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout"
+#define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
+#define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION 1
+#define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control"
 #define VK_EXT_4444_FORMATS_SPEC_VERSION 1
+#define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
 #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
+#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access"
 #define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1
+#define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats"
 #define VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION 1
+#define VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME "VK_NV_acquire_winrt_display"
 #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
+#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type"
 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2
+#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state"
 #define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1
+#define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm"
 #define VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION 1
+#define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control"
 #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1
+#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
+#define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 1
+#define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2"
+#define VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION 1
+#define VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME "VK_FUCHSIA_external_memory"
+#define VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
+#define VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_FUCHSIA_external_semaphore"
+#define VK_FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION 2
+#define VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME "VK_FUCHSIA_buffer_collection"
 #define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 2
+#define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
 #define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1
+#define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask"
 #define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
+#define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
 #define VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION 1
+#define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties"
 #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION 1
+#define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME "VK_EXT_multisampled_render_to_single_sampled"
 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
+#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
+#define VK_QNX_SCREEN_SURFACE_SPEC_VERSION 1
+#define VK_QNX_SCREEN_SURFACE_EXTENSION_NAME "VK_QNX_screen_surface"
 #define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1
+#define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable"
 #define VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION 1
+#define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query"
+#define VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION 1
+#define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1"
 #define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1
-#define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT VK_MAX_GLOBAL_PRIORITY_SIZE_KHR
+#define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query"
 #define VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION 1
+#define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod"
 #define VK_EXT_MULTI_DRAW_SPEC_VERSION 1
+#define VK_EXT_MULTI_DRAW_EXTENSION_NAME "VK_EXT_multi_draw"
 #define VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION 1
+#define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d"
+#define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1
+#define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration"
 #define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1
+#define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
 #define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1
+#define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle"
 #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1
+#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
+#define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2
+#define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4"
 #define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1
+#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping"
 #define VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION 1
+#define VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME "VK_EXT_non_seamless_cube_map"
 #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 1
+#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
 #define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1
+#define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment"
 #define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 1
+#define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query"
 #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION 1
+#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain"
 #define VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION 1
+#define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing"
 #define VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION 2
-#define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT 32U
+#define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback"
 #define VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION 1
+#define VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME "VK_EXT_shader_module_identifier"
 #define VK_QCOM_TILE_PROPERTIES_SPEC_VERSION 1
-#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
-#define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
-#define VK_KHR_RAY_QUERY_SPEC_VERSION 1
-#define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
-#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 5
-#define VK_KHR_VIDEO_QUEUE_SPEC_VERSION 4
-#define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 4
-#define VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION 1
-#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 5
-#define vulkan_video_codec_h264std 1
+#define VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME "VK_QCOM_tile_properties"
 #define STD_VIDEO_H264_CPB_CNT_LIST_SIZE 32
 #define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS 6
 #define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS 16
@@ -4994,14 +5402,14 @@ VK_DEFINE_PLATFORM_TYPE(MTLSharedEvent_id,                      void*)
 #define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS 64
 #define STD_VIDEO_H264_MAX_NUM_LIST_REF 32
 #define STD_VIDEO_H264_MAX_CHROMA_PLANES 2
-#define vulkan_video_codec_h264std_encode 1
-#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_6 VK_MAKE_VIDEO_STD_VERSION(0, 9, 6)
+#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_6
+#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_decode"
+#define STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE 15
+#define STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE 2
 #define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_6
 #define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_encode"
-#define VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION 7
-#define vulkan_video_codec_h265std 1
-#define STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE 7
 #define STD_VIDEO_H265_CPB_CNT_LIST_SIZE 32
+#define STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE 7
 #define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS 6
 #define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS 16
 #define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS 6
@@ -5010,51 +5418,15 @@ VK_DEFINE_PLATFORM_TYPE(MTLSharedEvent_id,                      void*)
 #define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS 64
 #define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS 2
 #define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS 64
-#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE 3
-#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE 128
+#define STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE 6
 #define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE 19
 #define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE 21
-#define STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE 6
+#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE 3
+#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE 128
 #define STD_VIDEO_H265_MAX_NUM_LIST_REF 15
 #define STD_VIDEO_H265_MAX_CHROMA_PLANES 2
-#define vulkan_video_codec_h265std_encode 1
-#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_7 VK_MAKE_VIDEO_STD_VERSION(0, 9, 7)
-#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_7
-#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265_encode"
-#define VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION 7
-#define vulkan_video_codec_h264std_decode 1
-#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_6 VK_MAKE_VIDEO_STD_VERSION(0, 9, 6)
-#define STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE 2
-#define STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE 15
-#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_6
-#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_decode"
-#define VK_EXT_VIDEO_DECODE_H264_SPEC_VERSION 5
-#define vulkan_video_codec_h265std_decode 1
-#define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_0_9_7 VK_MAKE_VIDEO_STD_VERSION(0, 9, 7)
-#define STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE 8
 #define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_0_9_7
 #define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265_decode"
-#define VK_EXT_VIDEO_DECODE_H265_SPEC_VERSION 3
-#define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1
-#define VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION 1
-#define VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
-#define VK_FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION 2
-#define VK_GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION 1
-#define VK_GGP_FRAME_TOKEN_SPEC_VERSION 1
-#define VK_MVK_IOS_SURFACE_SPEC_VERSION 3
-#define VK_MVK_MACOS_SURFACE_SPEC_VERSION 3
-#define VK_EXT_METAL_SURFACE_SPEC_VERSION 1
-#define VK_EXT_METAL_OBJECTS_SPEC_VERSION 1
-#define VK_NN_VI_SURFACE_SPEC_VERSION 1
-#define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6
-#define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6
-#define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
-#define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1
-#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1
-#define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1
-#define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
-#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 2
-#define VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION 4
-#define VK_KHR_XCB_SURFACE_SPEC_VERSION 6
-#define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6
-#define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
+#define STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE 8
+#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_7
+#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265_encode"
index e2bf97c..b619ee0 100644 (file)
@@ -16,10 +16,10 @@ virtual void                                unmapMemory                                                                             (VkDevice device, VkDeviceMemory memory) co
 virtual VkResult                       flushMappedMemoryRanges                                                 (VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const;
 virtual VkResult                       invalidateMappedMemoryRanges                                    (VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const;
 virtual void                           getDeviceMemoryCommitment                                               (VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) const;
-virtual VkResult                       bindBufferMemory                                                                (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) const;
-virtual VkResult                       bindImageMemory                                                                 (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) const;
 virtual void                           getBufferMemoryRequirements                                             (VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) const;
+virtual VkResult                       bindBufferMemory                                                                (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) const;
 virtual void                           getImageMemoryRequirements                                              (VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) const;
+virtual VkResult                       bindImageMemory                                                                 (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) const;
 virtual void                           getImageSparseMemoryRequirements                                (VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) const;
 virtual VkResult                       queueBindSparse                                                                 (VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) const;
 virtual VkResult                       createFence                                                                             (VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const;
@@ -37,6 +37,7 @@ virtual VkResult                      resetEvent                                                                              (VkDevice device, VkEvent event) const;
 virtual VkResult                       createQueryPool                                                                 (VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) const;
 virtual void                           destroyQueryPool                                                                (VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator) const;
 virtual VkResult                       getQueryPoolResults                                                             (VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) const;
+virtual void                           resetQueryPool                                                                  (VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) const;
 virtual VkResult                       createBuffer                                                                    (VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) const;
 virtual void                           destroyBuffer                                                                   (VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator) const;
 virtual VkResult                       createBufferView                                                                (VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView) const;
@@ -54,6 +55,7 @@ virtual VkResult                      getPipelineCacheData                                                    (VkDevice device, VkPipelineCache
 virtual VkResult                       mergePipelineCaches                                                             (VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches) const;
 virtual VkResult                       createGraphicsPipelines                                                 (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const;
 virtual VkResult                       createComputePipelines                                                  (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const;
+virtual VkResult                       getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI   (VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize) const;
 virtual void                           destroyPipeline                                                                 (VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) const;
 virtual VkResult                       createPipelineLayout                                                    (VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) const;
 virtual void                           destroyPipelineLayout                                                   (VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) const;
@@ -95,10 +97,13 @@ virtual void                                cmdBindIndexBuffer                                                              (VkCommandBuffer commandBuffer, VkBuff
 virtual void                           cmdBindVertexBuffers                                                    (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) const;
 virtual void                           cmdDraw                                                                                 (VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) const;
 virtual void                           cmdDrawIndexed                                                                  (VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) const;
+virtual void                           cmdDrawMultiEXT                                                                 (VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride) const;
+virtual void                           cmdDrawMultiIndexedEXT                                                  (VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawIndexedInfoEXT* pIndexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride, const int32_t* pVertexOffset) const;
 virtual void                           cmdDrawIndirect                                                                 (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) const;
 virtual void                           cmdDrawIndexedIndirect                                                  (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) const;
 virtual void                           cmdDispatch                                                                             (VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) const;
 virtual void                           cmdDispatchIndirect                                                             (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) const;
+virtual void                           cmdSubpassShadingHUAWEI                                                 (VkCommandBuffer commandBuffer) const;
 virtual void                           cmdCopyBuffer                                                                   (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions) const;
 virtual void                           cmdCopyImage                                                                    (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions) const;
 virtual void                           cmdBlitImage                                                                    (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter) const;
@@ -116,6 +121,8 @@ virtual void                                cmdWaitEvents                                                                   (VkCommandBuffer commandBuffer, uint32_t e
 virtual void                           cmdPipelineBarrier                                                              (VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) const;
 virtual void                           cmdBeginQuery                                                                   (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) const;
 virtual void                           cmdEndQuery                                                                             (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query) const;
+virtual void                           cmdBeginConditionalRenderingEXT                                 (VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) const;
+virtual void                           cmdEndConditionalRenderingEXT                                   (VkCommandBuffer commandBuffer) const;
 virtual void                           cmdResetQueryPool                                                               (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) const;
 virtual void                           cmdWriteTimestamp                                                               (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query) const;
 virtual void                           cmdCopyQueryPoolResults                                                 (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) const;
@@ -124,136 +131,83 @@ virtual void                             cmdBeginRenderPass                                                              (VkCommandBuffer commandBuffer, const
 virtual void                           cmdNextSubpass                                                                  (VkCommandBuffer commandBuffer, VkSubpassContents contents) const;
 virtual void                           cmdEndRenderPass                                                                (VkCommandBuffer commandBuffer) const;
 virtual void                           cmdExecuteCommands                                                              (VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) const;
-virtual VkResult                       bindBufferMemory2                                                               (VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos) const;
-virtual VkResult                       bindImageMemory2                                                                (VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) const;
-virtual void                           getDeviceGroupPeerMemoryFeatures                                (VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) const;
-virtual void                           cmdSetDeviceMask                                                                (VkCommandBuffer commandBuffer, uint32_t deviceMask) const;
-virtual void                           cmdDispatchBase                                                                 (VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) const;
-virtual void                           getImageMemoryRequirements2                                             (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const;
-virtual void                           getBufferMemoryRequirements2                                    (VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const;
-virtual void                           getImageSparseMemoryRequirements2                               (VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) const;
-virtual void                           trimCommandPool                                                                 (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags) const;
-virtual void                           getDeviceQueue2                                                                 (VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue) const;
-virtual VkResult                       createSamplerYcbcrConversion                                    (VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) const;
-virtual void                           destroySamplerYcbcrConversion                                   (VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult                       createDescriptorUpdateTemplate                                  (VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) const;
-virtual void                           destroyDescriptorUpdateTemplate                                 (VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator) const;
-virtual void                           updateDescriptorSetWithTemplate                                 (VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData) const;
-virtual void                           getDescriptorSetLayoutSupport                                   (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport) const;
-virtual void                           cmdDrawIndirectCount                                                    (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const;
-virtual void                           cmdDrawIndexedIndirectCount                                             (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const;
-virtual VkResult                       createRenderPass2                                                               (VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) const;
-virtual void                           cmdBeginRenderPass2                                                             (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo) const;
-virtual void                           cmdNextSubpass2                                                                 (VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo) const;
-virtual void                           cmdEndRenderPass2                                                               (VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo) const;
-virtual void                           resetQueryPool                                                                  (VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) const;
-virtual VkResult                       getSemaphoreCounterValue                                                (VkDevice device, VkSemaphore semaphore, uint64_t* pValue) const;
-virtual VkResult                       waitSemaphores                                                                  (VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout) const;
-virtual VkResult                       signalSemaphore                                                                 (VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo) const;
-virtual VkDeviceAddress                getBufferDeviceAddress                                                  (VkDevice device, const VkBufferDeviceAddressInfo* pInfo) const;
-virtual uint64_t                       getBufferOpaqueCaptureAddress                                   (VkDevice device, const VkBufferDeviceAddressInfo* pInfo) const;
-virtual uint64_t                       getDeviceMemoryOpaqueCaptureAddress                             (VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) const;
-virtual VkResult                       createPrivateDataSlot                                                   (VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot) const;
-virtual void                           destroyPrivateDataSlot                                                  (VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult                       setPrivateData                                                                  (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data) const;
-virtual void                           getPrivateData                                                                  (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData) const;
-virtual void                           cmdSetEvent2                                                                    (VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo) const;
-virtual void                           cmdResetEvent2                                                                  (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask) const;
-virtual void                           cmdWaitEvents2                                                                  (VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos) const;
-virtual void                           cmdPipelineBarrier2                                                             (VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo) const;
-virtual void                           cmdWriteTimestamp2                                                              (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query) const;
-virtual VkResult                       queueSubmit2                                                                    (VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence) const;
-virtual void                           cmdCopyBuffer2                                                                  (VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo) const;
-virtual void                           cmdCopyImage2                                                                   (VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo) const;
-virtual void                           cmdCopyBufferToImage2                                                   (VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) const;
-virtual void                           cmdCopyImageToBuffer2                                                   (VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) const;
-virtual void                           cmdBlitImage2                                                                   (VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo) const;
-virtual void                           cmdResolveImage2                                                                (VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo) const;
-virtual void                           cmdBeginRendering                                                               (VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo) const;
-virtual void                           cmdEndRendering                                                                 (VkCommandBuffer commandBuffer) const;
-virtual void                           cmdSetCullMode                                                                  (VkCommandBuffer commandBuffer, VkCullModeFlags cullMode) const;
-virtual void                           cmdSetFrontFace                                                                 (VkCommandBuffer commandBuffer, VkFrontFace frontFace) const;
-virtual void                           cmdSetPrimitiveTopology                                                 (VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology) const;
-virtual void                           cmdSetViewportWithCount                                                 (VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports) const;
-virtual void                           cmdSetScissorWithCount                                                  (VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors) const;
-virtual void                           cmdBindVertexBuffers2                                                   (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides) const;
-virtual void                           cmdSetDepthTestEnable                                                   (VkCommandBuffer commandBuffer, VkBool32 depthTestEnable) const;
-virtual void                           cmdSetDepthWriteEnable                                                  (VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable) const;
-virtual void                           cmdSetDepthCompareOp                                                    (VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp) const;
-virtual void                           cmdSetDepthBoundsTestEnable                                             (VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable) const;
-virtual void                           cmdSetStencilTestEnable                                                 (VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable) const;
-virtual void                           cmdSetStencilOp                                                                 (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp) const;
-virtual void                           cmdSetRasterizerDiscardEnable                                   (VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable) const;
-virtual void                           cmdSetDepthBiasEnable                                                   (VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable) const;
-virtual void                           cmdSetPrimitiveRestartEnable                                    (VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable) const;
-virtual void                           getDeviceBufferMemoryRequirements                               (VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) const;
-virtual void                           getDeviceImageMemoryRequirements                                (VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) const;
-virtual void                           getDeviceImageSparseMemoryRequirements                  (VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) const;
+virtual VkResult                       createSharedSwapchainsKHR                                               (VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const;
 virtual VkResult                       createSwapchainKHR                                                              (VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) const;
 virtual void                           destroySwapchainKHR                                                             (VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) const;
 virtual VkResult                       getSwapchainImagesKHR                                                   (VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages) const;
 virtual VkResult                       acquireNextImageKHR                                                             (VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex) const;
 virtual VkResult                       queuePresentKHR                                                                 (VkQueue queue, const VkPresentInfoKHR* pPresentInfo) 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, uint32_t* pImageIndex) const;
-virtual VkResult                       createSharedSwapchainsKHR                                               (VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const;
-virtual VkResult                       getMemoryFdKHR                                                                  (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) const;
-virtual VkResult                       getMemoryFdPropertiesKHR                                                (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) 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, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites) const;
-virtual void                           cmdPushDescriptorSetWithTemplateKHR                             (VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData) const;
-virtual VkResult                       getSwapchainStatusKHR                                                   (VkDevice device, VkSwapchainKHR swapchain) const;
-virtual VkResult                       importFenceFdKHR                                                                (VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo) const;
-virtual VkResult                       getFenceFdKHR                                                                   (VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd) const;
-virtual VkResult                       acquireProfilingLockKHR                                                 (VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo) const;
-virtual void                           releaseProfilingLockKHR                                                 (VkDevice device) const;
-virtual void                           cmdSetFragmentShadingRateKHR                                    (VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const;
-virtual VkResult                       waitForPresentKHR                                                               (VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout) const;
-virtual VkResult                       createDeferredOperationKHR                                              (VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation) const;
-virtual void                           destroyDeferredOperationKHR                                             (VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator) const;
-virtual uint32_t                       getDeferredOperationMaxConcurrencyKHR                   (VkDevice device, VkDeferredOperationKHR operation) const;
-virtual VkResult                       getDeferredOperationResultKHR                                   (VkDevice device, VkDeferredOperationKHR operation) const;
-virtual VkResult                       deferredOperationJoinKHR                                                (VkDevice device, VkDeferredOperationKHR operation) const;
-virtual VkResult                       getPipelineExecutablePropertiesKHR                              (VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties) const;
-virtual VkResult                       getPipelineExecutableStatisticsKHR                              (VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics) const;
-virtual VkResult                       getPipelineExecutableInternalRepresentationsKHR (VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) const;
-virtual void                           cmdWriteBufferMarker2AMD                                                (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker) const;
-virtual void                           getQueueCheckpointData2NV                                               (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData) const;
-virtual void                           cmdTraceRaysIndirect2KHR                                                (VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress) const;
-virtual VkResult                       debugMarkerSetObjectTagEXT                                              (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo) const;
 virtual VkResult                       debugMarkerSetObjectNameEXT                                             (VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo) const;
+virtual VkResult                       debugMarkerSetObjectTagEXT                                              (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo) 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                           cmdBindTransformFeedbackBuffersEXT                              (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes) const;
-virtual void                           cmdBeginTransformFeedbackEXT                                    (VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) const;
-virtual void                           cmdEndTransformFeedbackEXT                                              (VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) const;
-virtual void                           cmdBeginQueryIndexedEXT                                                 (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index) const;
-virtual void                           cmdEndQueryIndexedEXT                                                   (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index) const;
-virtual void                           cmdDrawIndirectByteCountEXT                                             (VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride) const;
-virtual VkResult                       createCuModuleNVX                                                               (VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule) const;
-virtual VkResult                       createCuFunctionNVX                                                             (VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction) const;
-virtual void                           destroyCuModuleNVX                                                              (VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator) const;
-virtual void                           destroyCuFunctionNVX                                                    (VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator) const;
-virtual void                           cmdCuLaunchKernelNVX                                                    (VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo) const;
-virtual uint32_t                       getImageViewHandleNVX                                                   (VkDevice device, const VkImageViewHandleInfoNVX* pInfo) const;
-virtual VkResult                       getImageViewAddressNVX                                                  (VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties) const;
-virtual void                           cmdDrawIndirectCountAMD                                                 (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const;
-virtual void                           cmdDrawIndexedIndirectCountAMD                                  (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const;
-virtual VkResult                       getShaderInfoAMD                                                                (VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo) const;
-virtual void                           cmdBeginConditionalRenderingEXT                                 (VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) const;
-virtual void                           cmdEndConditionalRenderingEXT                                   (VkCommandBuffer commandBuffer) const;
-virtual void                           cmdSetViewportWScalingNV                                                (VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings) const;
+virtual VkResult                       getMemoryWin32HandleNV                                                  (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle) const;
+virtual void                           cmdExecuteGeneratedCommandsNV                                   (VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) const;
+virtual void                           cmdPreprocessGeneratedCommandsNV                                (VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) const;
+virtual void                           cmdBindPipelineShaderGroupNV                                    (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex) const;
+virtual void                           getGeneratedCommandsMemoryRequirementsNV                (VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements) const;
+virtual VkResult                       createIndirectCommandsLayoutNV                                  (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout) const;
+virtual void                           destroyIndirectCommandsLayoutNV                                 (VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) const;
+virtual void                           cmdPushDescriptorSetKHR                                                 (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites) const;
+virtual void                           trimCommandPool                                                                 (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags) const;
+virtual VkResult                       getMemoryWin32HandleKHR                                                 (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const;
+virtual VkResult                       getMemoryWin32HandlePropertiesKHR                               (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) const;
+virtual VkResult                       getMemoryFdKHR                                                                  (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) const;
+virtual VkResult                       getMemoryFdPropertiesKHR                                                (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) const;
+virtual VkResult                       getMemoryZirconHandleFUCHSIA                                    (VkDevice device, const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, pt::zx_handle_t* pZirconHandle) const;
+virtual VkResult                       getMemoryZirconHandlePropertiesFUCHSIA                  (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties) const;
+virtual VkResult                       getMemoryRemoteAddressNV                                                (VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress) const;
+virtual VkResult                       getSemaphoreWin32HandleKHR                                              (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const;
+virtual VkResult                       importSemaphoreWin32HandleKHR                                   (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) const;
+virtual VkResult                       getSemaphoreFdKHR                                                               (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) const;
+virtual VkResult                       importSemaphoreFdKHR                                                    (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) const;
+virtual VkResult                       getSemaphoreZirconHandleFUCHSIA                                 (VkDevice device, const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, pt::zx_handle_t* pZirconHandle) const;
+virtual VkResult                       importSemaphoreZirconHandleFUCHSIA                              (VkDevice device, const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo) const;
+virtual VkResult                       getFenceWin32HandleKHR                                                  (VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const;
+virtual VkResult                       importFenceWin32HandleKHR                                               (VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) const;
+virtual VkResult                       getFenceFdKHR                                                                   (VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd) const;
+virtual VkResult                       importFenceFdKHR                                                                (VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo) 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, uint64_t* pCounterValue) const;
+virtual void                           getDeviceGroupPeerMemoryFeatures                                (VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) const;
+virtual VkResult                       bindBufferMemory2                                                               (VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos) const;
+virtual VkResult                       bindImageMemory2                                                                (VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) const;
+virtual void                           cmdSetDeviceMask                                                                (VkCommandBuffer commandBuffer, uint32_t deviceMask) 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, uint32_t* pImageIndex) const;
+virtual void                           cmdDispatchBase                                                                 (VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) const;
+virtual VkResult                       createDescriptorUpdateTemplate                                  (VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) const;
+virtual void                           destroyDescriptorUpdateTemplate                                 (VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator) const;
+virtual void                           updateDescriptorSetWithTemplate                                 (VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData) const;
+virtual void                           cmdPushDescriptorSetWithTemplateKHR                             (VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData) const;
+virtual void                           setHdrMetadataEXT                                                               (VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata) const;
+virtual VkResult                       getSwapchainStatusKHR                                                   (VkDevice device, VkSwapchainKHR swapchain) const;
 virtual VkResult                       getRefreshCycleDurationGOOGLE                                   (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) const;
 virtual VkResult                       getPastPresentationTimingGOOGLE                                 (VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings) const;
+virtual void                           cmdSetViewportWScalingNV                                                (VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings) const;
 virtual void                           cmdSetDiscardRectangleEXT                                               (VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles) const;
-virtual void                           setHdrMetadataEXT                                                               (VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata) const;
+virtual void                           cmdSetSampleLocationsEXT                                                (VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo) const;
+virtual void                           getBufferMemoryRequirements2                                    (VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const;
+virtual void                           getImageMemoryRequirements2                                             (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const;
+virtual void                           getImageSparseMemoryRequirements2                               (VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) const;
+virtual void                           getDeviceBufferMemoryRequirements                               (VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) const;
+virtual void                           getDeviceImageMemoryRequirements                                (VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) const;
+virtual void                           getDeviceImageSparseMemoryRequirements                  (VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) const;
+virtual VkResult                       createSamplerYcbcrConversion                                    (VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) const;
+virtual void                           destroySamplerYcbcrConversion                                   (VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator) const;
+virtual void                           getDeviceQueue2                                                                 (VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue) const;
+virtual VkResult                       createValidationCacheEXT                                                (VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache) const;
+virtual void                           destroyValidationCacheEXT                                               (VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult                       getValidationCacheDataEXT                                               (VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData) const;
+virtual VkResult                       mergeValidationCachesEXT                                                (VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches) const;
+virtual void                           getDescriptorSetLayoutSupport                                   (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport) const;
+virtual VkResult                       getShaderInfoAMD                                                                (VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo) const;
+virtual void                           setLocalDimmingAMD                                                              (VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable) const;
+virtual VkResult                       getCalibratedTimestampsEXT                                              (VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation) const;
 virtual VkResult                       setDebugUtilsObjectNameEXT                                              (VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo) const;
 virtual VkResult                       setDebugUtilsObjectTagEXT                                               (VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo) const;
 virtual void                           queueBeginDebugUtilsLabelEXT                                    (VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo) const;
@@ -262,37 +216,74 @@ virtual void                              queueInsertDebugUtilsLabelEXT                                   (VkQueue queue, const VkDebugU
 virtual void                           cmdBeginDebugUtilsLabelEXT                                              (VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo) const;
 virtual void                           cmdEndDebugUtilsLabelEXT                                                (VkCommandBuffer commandBuffer) const;
 virtual void                           cmdInsertDebugUtilsLabelEXT                                             (VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo) const;
-virtual void                           cmdSetSampleLocationsEXT                                                (VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo) const;
-virtual VkResult                       getImageDrmFormatModifierPropertiesEXT                  (VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties) const;
-virtual VkResult                       createValidationCacheEXT                                                (VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache) const;
-virtual void                           destroyValidationCacheEXT                                               (VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult                       mergeValidationCachesEXT                                                (VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches) const;
-virtual VkResult                       getValidationCacheDataEXT                                               (VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData) const;
+virtual VkResult                       getMemoryHostPointerPropertiesEXT                               (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) const;
+virtual void                           cmdWriteBufferMarkerAMD                                                 (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker) const;
+virtual VkResult                       createRenderPass2                                                               (VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) const;
+virtual void                           cmdBeginRenderPass2                                                             (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo) const;
+virtual void                           cmdNextSubpass2                                                                 (VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo) const;
+virtual void                           cmdEndRenderPass2                                                               (VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo) const;
+virtual VkResult                       getSemaphoreCounterValue                                                (VkDevice device, VkSemaphore semaphore, uint64_t* pValue) const;
+virtual VkResult                       waitSemaphores                                                                  (VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout) const;
+virtual VkResult                       signalSemaphore                                                                 (VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo) const;
+virtual VkResult                       getAndroidHardwareBufferPropertiesANDROID               (VkDevice device, const struct pt::AndroidHardwareBufferPtr buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties) const;
+virtual VkResult                       getMemoryAndroidHardwareBufferANDROID                   (VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct pt::AndroidHardwareBufferPtr* pBuffer) const;
+virtual void                           cmdDrawIndirectCount                                                    (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const;
+virtual void                           cmdDrawIndexedIndirectCount                                             (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const;
+virtual void                           cmdSetCheckpointNV                                                              (VkCommandBuffer commandBuffer, const void* pCheckpointMarker) const;
+virtual void                           getQueueCheckpointDataNV                                                (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData) const;
+virtual void                           cmdBindTransformFeedbackBuffersEXT                              (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes) const;
+virtual void                           cmdBeginTransformFeedbackEXT                                    (VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) const;
+virtual void                           cmdEndTransformFeedbackEXT                                              (VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) const;
+virtual void                           cmdBeginQueryIndexedEXT                                                 (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index) const;
+virtual void                           cmdEndQueryIndexedEXT                                                   (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index) const;
+virtual void                           cmdDrawIndirectByteCountEXT                                             (VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride) const;
+virtual void                           cmdSetExclusiveScissorNV                                                (VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors) const;
 virtual void                           cmdBindShadingRateImageNV                                               (VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout) const;
 virtual void                           cmdSetViewportShadingRatePaletteNV                              (VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes) const;
 virtual void                           cmdSetCoarseSampleOrderNV                                               (VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) const;
+virtual void                           cmdDrawMeshTasksNV                                                              (VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask) const;
+virtual void                           cmdDrawMeshTasksIndirectNV                                              (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) const;
+virtual void                           cmdDrawMeshTasksIndirectCountNV                                 (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const;
+virtual VkResult                       compileDeferredNV                                                               (VkDevice device, VkPipeline pipeline, uint32_t shader) const;
 virtual VkResult                       createAccelerationStructureNV                                   (VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure) const;
+virtual void                           cmdBindInvocationMaskHUAWEI                                             (VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout) const;
+virtual void                           destroyAccelerationStructureKHR                                 (VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator) const;
 virtual void                           destroyAccelerationStructureNV                                  (VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator) const;
 virtual void                           getAccelerationStructureMemoryRequirementsNV    (VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements) const;
 virtual VkResult                       bindAccelerationStructureMemoryNV                               (VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) const;
-virtual void                           cmdBuildAccelerationStructureNV                                 (VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset) const;
 virtual void                           cmdCopyAccelerationStructureNV                                  (VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode) const;
+virtual void                           cmdCopyAccelerationStructureKHR                                 (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo) const;
+virtual VkResult                       copyAccelerationStructureKHR                                    (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo) const;
+virtual void                           cmdCopyAccelerationStructureToMemoryKHR                 (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) const;
+virtual VkResult                       copyAccelerationStructureToMemoryKHR                    (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) const;
+virtual void                           cmdCopyMemoryToAccelerationStructureKHR                 (VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) const;
+virtual VkResult                       copyMemoryToAccelerationStructureKHR                    (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) const;
+virtual void                           cmdWriteAccelerationStructuresPropertiesKHR             (VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery) const;
+virtual void                           cmdWriteAccelerationStructuresPropertiesNV              (VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery) const;
+virtual void                           cmdBuildAccelerationStructureNV                                 (VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset) const;
+virtual VkResult                       writeAccelerationStructuresPropertiesKHR                (VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride) const;
+virtual void                           cmdTraceRaysKHR                                                                 (VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth) const;
 virtual void                           cmdTraceRaysNV                                                                  (VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth) const;
-virtual VkResult                       createRayTracingPipelinesNV                                             (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const;
 virtual VkResult                       getRayTracingShaderGroupHandlesKHR                              (VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData) const;
-virtual VkResult                       getRayTracingShaderGroupHandlesNV                               (VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData) const;
+virtual VkResult                       getRayTracingCaptureReplayShaderGroupHandlesKHR (VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData) const;
 virtual VkResult                       getAccelerationStructureHandleNV                                (VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData) const;
-virtual void                           cmdWriteAccelerationStructuresPropertiesNV              (VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery) const;
-virtual VkResult                       compileDeferredNV                                                               (VkDevice device, VkPipeline pipeline, uint32_t shader) const;
-virtual VkResult                       getMemoryHostPointerPropertiesEXT                               (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) const;
-virtual void                           cmdWriteBufferMarkerAMD                                                 (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker) const;
-virtual VkResult                       getCalibratedTimestampsEXT                                              (VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation) const;
-virtual void                           cmdDrawMeshTasksNV                                                              (VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask) const;
-virtual void                           cmdDrawMeshTasksIndirectNV                                              (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) const;
-virtual void                           cmdDrawMeshTasksIndirectCountNV                                 (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const;
-virtual void                           cmdSetExclusiveScissorNV                                                (VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors) const;
-virtual void                           cmdSetCheckpointNV                                                              (VkCommandBuffer commandBuffer, const void* pCheckpointMarker) const;
-virtual void                           getQueueCheckpointDataNV                                                (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData) const;
+virtual VkResult                       createRayTracingPipelinesNV                                             (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const;
+virtual VkResult                       createRayTracingPipelinesKHR                                    (VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const;
+virtual void                           cmdTraceRaysIndirectKHR                                                 (VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress) const;
+virtual void                           cmdTraceRaysIndirect2KHR                                                (VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress) const;
+virtual void                           getDeviceAccelerationStructureCompatibilityKHR  (VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility) const;
+virtual VkDeviceSize           getRayTracingShaderGroupStackSizeKHR                    (VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader) const;
+virtual void                           cmdSetRayTracingPipelineStackSizeKHR                    (VkCommandBuffer commandBuffer, uint32_t pipelineStackSize) const;
+virtual uint32_t                       getImageViewHandleNVX                                                   (VkDevice device, const VkImageViewHandleInfoNVX* pInfo) const;
+virtual VkResult                       getImageViewAddressNVX                                                  (VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties) const;
+virtual VkResult                       getDeviceGroupSurfacePresentModes2EXT                   (VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes) const;
+virtual VkResult                       acquireFullScreenExclusiveModeEXT                               (VkDevice device, VkSwapchainKHR swapchain) const;
+virtual VkResult                       releaseFullScreenExclusiveModeEXT                               (VkDevice device, VkSwapchainKHR swapchain) const;
+virtual VkResult                       acquireProfilingLockKHR                                                 (VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo) const;
+virtual void                           releaseProfilingLockKHR                                                 (VkDevice device) const;
+virtual VkResult                       getImageDrmFormatModifierPropertiesEXT                  (VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties) const;
+virtual uint64_t                       getBufferOpaqueCaptureAddress                                   (VkDevice device, const VkBufferDeviceAddressInfo* pInfo) const;
+virtual VkDeviceAddress                getBufferDeviceAddress                                                  (VkDevice device, const VkBufferDeviceAddressInfo* pInfo) const;
 virtual VkResult                       initializePerformanceApiINTEL                                   (VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo) const;
 virtual void                           uninitializePerformanceApiINTEL                                 (VkDevice device) const;
 virtual VkResult                       cmdSetPerformanceMarkerINTEL                                    (VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo) const;
@@ -302,88 +293,93 @@ virtual VkResult                  acquirePerformanceConfigurationINTEL                    (VkDevice device, cons
 virtual VkResult                       releasePerformanceConfigurationINTEL                    (VkDevice device, VkPerformanceConfigurationINTEL configuration) const;
 virtual VkResult                       queueSetPerformanceConfigurationINTEL                   (VkQueue queue, VkPerformanceConfigurationINTEL configuration) const;
 virtual VkResult                       getPerformanceParameterINTEL                                    (VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue) const;
-virtual void                           setLocalDimmingAMD                                                              (VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable) const;
-virtual VkDeviceAddress                getBufferDeviceAddressEXT                                               (VkDevice device, const VkBufferDeviceAddressInfo* pInfo) const;
+virtual uint64_t                       getDeviceMemoryOpaqueCaptureAddress                             (VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) const;
+virtual VkResult                       getPipelineExecutablePropertiesKHR                              (VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties) const;
+virtual VkResult                       getPipelineExecutableStatisticsKHR                              (VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics) const;
+virtual VkResult                       getPipelineExecutableInternalRepresentationsKHR (VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) const;
 virtual void                           cmdSetLineStippleEXT                                                    (VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern) const;
-virtual void                           getGeneratedCommandsMemoryRequirementsNV                (VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements) const;
-virtual void                           cmdPreprocessGeneratedCommandsNV                                (VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) const;
-virtual void                           cmdExecuteGeneratedCommandsNV                                   (VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) const;
-virtual void                           cmdBindPipelineShaderGroupNV                                    (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex) const;
-virtual VkResult                       createIndirectCommandsLayoutNV                                  (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout) const;
-virtual void                           destroyIndirectCommandsLayoutNV                                 (VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) const;
-virtual void                           cmdSetFragmentShadingRateEnumNV                                 (VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const;
-virtual void                           getImageSubresourceLayout2EXT                                   (VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout) const;
-virtual void                           cmdSetVertexInputEXT                                                    (VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions) const;
-virtual VkResult                       getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI   (VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize) const;
-virtual void                           cmdSubpassShadingHUAWEI                                                 (VkCommandBuffer commandBuffer) const;
-virtual void                           cmdBindInvocationMaskHUAWEI                                             (VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout) const;
-virtual VkResult                       getMemoryRemoteAddressNV                                                (VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress) const;
-virtual VkResult                       getPipelinePropertiesEXT                                                (VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties) const;
-virtual void                           cmdSetPatchControlPointsEXT                                             (VkCommandBuffer commandBuffer, uint32_t patchControlPoints) const;
-virtual void                           cmdSetLogicOpEXT                                                                (VkCommandBuffer commandBuffer, VkLogicOp logicOp) const;
-virtual void                           cmdSetColorWriteEnableEXT                                               (VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables) const;
-virtual void                           cmdDrawMultiEXT                                                                 (VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride) const;
-virtual void                           cmdDrawMultiIndexedEXT                                                  (VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawIndexedInfoEXT* pIndexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride, const int32_t* pVertexOffset) const;
-virtual void                           setDeviceMemoryPriorityEXT                                              (VkDevice device, VkDeviceMemory memory, float priority) const;
-virtual void                           getDescriptorSetLayoutHostMappingInfoVALVE              (VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping) const;
-virtual void                           getDescriptorSetHostMappingVALVE                                (VkDevice device, VkDescriptorSet descriptorSet, void** ppData) const;
-virtual void                           getShaderModuleIdentifierEXT                                    (VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier) const;
-virtual void                           getShaderModuleCreateInfoIdentifierEXT                  (VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier) const;
-virtual VkResult                       getFramebufferTilePropertiesQCOM                                (VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties) const;
-virtual VkResult                       getDynamicRenderingTilePropertiesQCOM                   (VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties) const;
 virtual VkResult                       createAccelerationStructureKHR                                  (VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure) const;
-virtual void                           destroyAccelerationStructureKHR                                 (VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator) const;
 virtual void                           cmdBuildAccelerationStructuresKHR                               (VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) const;
 virtual void                           cmdBuildAccelerationStructuresIndirectKHR               (VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const* ppMaxPrimitiveCounts) const;
 virtual VkResult                       buildAccelerationStructuresKHR                                  (VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) const;
-virtual VkResult                       copyAccelerationStructureKHR                                    (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo) const;
-virtual VkResult                       copyAccelerationStructureToMemoryKHR                    (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) const;
-virtual VkResult                       copyMemoryToAccelerationStructureKHR                    (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) const;
-virtual VkResult                       writeAccelerationStructuresPropertiesKHR                (VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride) const;
-virtual void                           cmdCopyAccelerationStructureKHR                                 (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo) const;
-virtual void                           cmdCopyAccelerationStructureToMemoryKHR                 (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) const;
-virtual void                           cmdCopyMemoryToAccelerationStructureKHR                 (VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) const;
 virtual VkDeviceAddress                getAccelerationStructureDeviceAddressKHR                (VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo) const;
-virtual void                           cmdWriteAccelerationStructuresPropertiesKHR             (VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery) const;
-virtual void                           getDeviceAccelerationStructureCompatibilityKHR  (VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility) const;
+virtual VkResult                       createDeferredOperationKHR                                              (VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation) const;
+virtual void                           destroyDeferredOperationKHR                                             (VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator) const;
+virtual uint32_t                       getDeferredOperationMaxConcurrencyKHR                   (VkDevice device, VkDeferredOperationKHR operation) const;
+virtual VkResult                       getDeferredOperationResultKHR                                   (VkDevice device, VkDeferredOperationKHR operation) const;
+virtual VkResult                       deferredOperationJoinKHR                                                (VkDevice device, VkDeferredOperationKHR operation) const;
+virtual void                           cmdSetCullMode                                                                  (VkCommandBuffer commandBuffer, VkCullModeFlags cullMode) const;
+virtual void                           cmdSetFrontFace                                                                 (VkCommandBuffer commandBuffer, VkFrontFace frontFace) const;
+virtual void                           cmdSetPrimitiveTopology                                                 (VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology) const;
+virtual void                           cmdSetViewportWithCount                                                 (VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports) const;
+virtual void                           cmdSetScissorWithCount                                                  (VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors) const;
+virtual void                           cmdBindVertexBuffers2                                                   (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides) const;
+virtual void                           cmdSetDepthTestEnable                                                   (VkCommandBuffer commandBuffer, VkBool32 depthTestEnable) const;
+virtual void                           cmdSetDepthWriteEnable                                                  (VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable) const;
+virtual void                           cmdSetDepthCompareOp                                                    (VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp) const;
+virtual void                           cmdSetDepthBoundsTestEnable                                             (VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable) const;
+virtual void                           cmdSetStencilTestEnable                                                 (VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable) const;
+virtual void                           cmdSetStencilOp                                                                 (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp) const;
+virtual void                           cmdSetPatchControlPointsEXT                                             (VkCommandBuffer commandBuffer, uint32_t patchControlPoints) const;
+virtual void                           cmdSetRasterizerDiscardEnable                                   (VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable) const;
+virtual void                           cmdSetDepthBiasEnable                                                   (VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable) const;
+virtual void                           cmdSetLogicOpEXT                                                                (VkCommandBuffer commandBuffer, VkLogicOp logicOp) const;
+virtual void                           cmdSetPrimitiveRestartEnable                                    (VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable) const;
+virtual VkResult                       createPrivateDataSlot                                                   (VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot) const;
+virtual void                           destroyPrivateDataSlot                                                  (VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult                       setPrivateData                                                                  (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data) const;
+virtual void                           getPrivateData                                                                  (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData) const;
+virtual void                           cmdCopyBuffer2                                                                  (VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo) const;
+virtual void                           cmdCopyImage2                                                                   (VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo) const;
+virtual void                           cmdBlitImage2                                                                   (VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo) const;
+virtual void                           cmdCopyBufferToImage2                                                   (VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) const;
+virtual void                           cmdCopyImageToBuffer2                                                   (VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) const;
+virtual void                           cmdResolveImage2                                                                (VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo) const;
+virtual void                           cmdSetFragmentShadingRateKHR                                    (VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const;
+virtual void                           cmdSetFragmentShadingRateEnumNV                                 (VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const;
 virtual void                           getAccelerationStructureBuildSizesKHR                   (VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) const;
-virtual void                           cmdTraceRaysKHR                                                                 (VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth) const;
-virtual VkResult                       createRayTracingPipelinesKHR                                    (VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const;
-virtual VkResult                       getRayTracingCaptureReplayShaderGroupHandlesKHR (VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData) const;
-virtual void                           cmdTraceRaysIndirectKHR                                                 (VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress) const;
-virtual VkDeviceSize           getRayTracingShaderGroupStackSizeKHR                    (VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader) const;
-virtual void                           cmdSetRayTracingPipelineStackSizeKHR                    (VkCommandBuffer commandBuffer, uint32_t pipelineStackSize) const;
-virtual VkResult                       getAndroidHardwareBufferPropertiesANDROID               (VkDevice device, const struct pt::AndroidHardwareBufferPtr buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties) const;
-virtual VkResult                       getMemoryAndroidHardwareBufferANDROID                   (VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct pt::AndroidHardwareBufferPtr* pBuffer) const;
+virtual void                           cmdSetVertexInputEXT                                                    (VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions) const;
+virtual void                           cmdSetColorWriteEnableEXT                                               (VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables) const;
+virtual void                           cmdSetEvent2                                                                    (VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo) const;
+virtual void                           cmdResetEvent2                                                                  (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask) const;
+virtual void                           cmdWaitEvents2                                                                  (VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos) const;
+virtual void                           cmdPipelineBarrier2                                                             (VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo) const;
+virtual VkResult                       queueSubmit2                                                                    (VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence) const;
+virtual void                           cmdWriteTimestamp2                                                              (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query) const;
+virtual void                           cmdWriteBufferMarker2AMD                                                (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker) const;
+virtual void                           getQueueCheckpointData2NV                                               (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData) const;
 virtual VkResult                       createVideoSessionKHR                                                   (VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession) const;
 virtual void                           destroyVideoSessionKHR                                                  (VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult                       getVideoSessionMemoryRequirementsKHR                    (VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pVideoSessionMemoryRequirementsCount, VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements) const;
-virtual VkResult                       bindVideoSessionMemoryKHR                                               (VkDevice device, VkVideoSessionKHR videoSession, uint32_t videoSessionBindMemoryCount, const VkVideoBindMemoryKHR* pVideoSessionBindMemories) const;
 virtual VkResult                       createVideoSessionParametersKHR                                 (VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters) const;
 virtual VkResult                       updateVideoSessionParametersKHR                                 (VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo) const;
 virtual void                           destroyVideoSessionParametersKHR                                (VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult                       getVideoSessionMemoryRequirementsKHR                    (VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pVideoSessionMemoryRequirementsCount, VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements) const;
+virtual VkResult                       bindVideoSessionMemoryKHR                                               (VkDevice device, VkVideoSessionKHR videoSession, uint32_t videoSessionBindMemoryCount, const VkVideoBindMemoryKHR* pVideoSessionBindMemories) const;
+virtual void                           cmdDecodeVideoKHR                                                               (VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pFrameInfo) const;
 virtual void                           cmdBeginVideoCodingKHR                                                  (VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo) const;
-virtual void                           cmdEndVideoCodingKHR                                                    (VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo) const;
 virtual void                           cmdControlVideoCodingKHR                                                (VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo) const;
-virtual void                           cmdDecodeVideoKHR                                                               (VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pFrameInfo) const;
+virtual void                           cmdEndVideoCodingKHR                                                    (VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo) const;
 virtual void                           cmdEncodeVideoKHR                                                               (VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo) const;
-virtual VkResult                       getMemoryZirconHandleFUCHSIA                                    (VkDevice device, const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, pt::zx_handle_t* pZirconHandle) const;
-virtual VkResult                       getMemoryZirconHandlePropertiesFUCHSIA                  (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties) const;
-virtual VkResult                       importSemaphoreZirconHandleFUCHSIA                              (VkDevice device, const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo) const;
-virtual VkResult                       getSemaphoreZirconHandleFUCHSIA                                 (VkDevice device, const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, pt::zx_handle_t* pZirconHandle) const;
+virtual VkResult                       createCuModuleNVX                                                               (VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule) const;
+virtual VkResult                       createCuFunctionNVX                                                             (VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction) const;
+virtual void                           destroyCuModuleNVX                                                              (VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator) const;
+virtual void                           destroyCuFunctionNVX                                                    (VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator) const;
+virtual void                           cmdCuLaunchKernelNVX                                                    (VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo) const;
+virtual void                           setDeviceMemoryPriorityEXT                                              (VkDevice device, VkDeviceMemory memory, float priority) const;
+virtual VkResult                       waitForPresentKHR                                                               (VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout) const;
 virtual VkResult                       createBufferCollectionFUCHSIA                                   (VkDevice device, const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferCollectionFUCHSIA* pCollection) const;
-virtual VkResult                       setBufferCollectionImageConstraintsFUCHSIA              (VkDevice device, VkBufferCollectionFUCHSIA collection, const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo) const;
 virtual VkResult                       setBufferCollectionBufferConstraintsFUCHSIA             (VkDevice device, VkBufferCollectionFUCHSIA collection, const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo) const;
+virtual VkResult                       setBufferCollectionImageConstraintsFUCHSIA              (VkDevice device, VkBufferCollectionFUCHSIA collection, const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo) const;
 virtual void                           destroyBufferCollectionFUCHSIA                                  (VkDevice device, VkBufferCollectionFUCHSIA collection, const VkAllocationCallbacks* pAllocator) const;
 virtual VkResult                       getBufferCollectionPropertiesFUCHSIA                    (VkDevice device, VkBufferCollectionFUCHSIA collection, VkBufferCollectionPropertiesFUCHSIA* pProperties) const;
+virtual void                           cmdBeginRendering                                                               (VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo) const;
+virtual void                           cmdEndRendering                                                                 (VkCommandBuffer commandBuffer) const;
+virtual void                           getDescriptorSetLayoutHostMappingInfoVALVE              (VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping) const;
+virtual void                           getDescriptorSetHostMappingVALVE                                (VkDevice device, VkDescriptorSet descriptorSet, void** ppData) const;
+virtual void                           getShaderModuleIdentifierEXT                                    (VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier) const;
+virtual void                           getShaderModuleCreateInfoIdentifierEXT                  (VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier) const;
+virtual void                           getImageSubresourceLayout2EXT                                   (VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout) const;
+virtual VkResult                       getPipelinePropertiesEXT                                                (VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties) const;
 virtual void                           exportMetalObjectsEXT                                                   (VkDevice device, VkExportMetalObjectsInfoEXT* pMetalObjectsInfo) const;
-virtual VkResult                       getMemoryWin32HandleKHR                                                 (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const;
-virtual VkResult                       getMemoryWin32HandlePropertiesKHR                               (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) const;
-virtual VkResult                       importSemaphoreWin32HandleKHR                                   (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) const;
-virtual VkResult                       getSemaphoreWin32HandleKHR                                              (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const;
-virtual VkResult                       importFenceWin32HandleKHR                                               (VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) const;
-virtual VkResult                       getFenceWin32HandleKHR                                                  (VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const;
-virtual VkResult                       getMemoryWin32HandleNV                                                  (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle) const;
-virtual VkResult                       acquireFullScreenExclusiveModeEXT                               (VkDevice device, VkSwapchainKHR swapchain) const;
-virtual VkResult                       releaseFullScreenExclusiveModeEXT                               (VkDevice device, VkSwapchainKHR swapchain) const;
-virtual VkResult                       getDeviceGroupSurfacePresentModes2EXT                   (VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes) const;
+virtual VkResult                       getFramebufferTilePropertiesQCOM                                (VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties) const;
+virtual VkResult                       getDynamicRenderingTilePropertiesQCOM                   (VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties) const;
index b5ab661..1ec79d2 100644 (file)
@@ -5,17 +5,46 @@
 
 virtual void           destroyInstance                                                                                                 (VkInstance instance, const VkAllocationCallbacks* pAllocator) const;
 virtual VkResult       enumeratePhysicalDevices                                                                                (VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices) const;
-virtual void           getPhysicalDeviceFeatures                                                                               (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures) const;
-virtual void           getPhysicalDeviceFormatProperties                                                               (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties) const;
-virtual VkResult       getPhysicalDeviceImageFormatProperties                                                  (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties) const;
 virtual void           getPhysicalDeviceProperties                                                                             (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties) const;
 virtual void           getPhysicalDeviceQueueFamilyProperties                                                  (VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties) const;
 virtual void           getPhysicalDeviceMemoryProperties                                                               (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) const;
+virtual void           getPhysicalDeviceFeatures                                                                               (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures) const;
+virtual void           getPhysicalDeviceFormatProperties                                                               (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties) const;
+virtual VkResult       getPhysicalDeviceImageFormatProperties                                                  (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties) const;
 virtual VkResult       createDevice                                                                                                    (VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice) const;
-virtual VkResult       enumerateDeviceExtensionProperties                                                              (VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) const;
 virtual VkResult       enumerateDeviceLayerProperties                                                                  (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties) const;
+virtual VkResult       enumerateDeviceExtensionProperties                                                              (VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) const;
 virtual void           getPhysicalDeviceSparseImageFormatProperties                                    (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties) const;
-virtual VkResult       enumeratePhysicalDeviceGroups                                                                   (VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) const;
+virtual VkResult       createAndroidSurfaceKHR                                                                                 (VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
+virtual VkResult       getPhysicalDeviceDisplayPropertiesKHR                                                   (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties) const;
+virtual VkResult       getPhysicalDeviceDisplayPlanePropertiesKHR                                              (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties) const;
+virtual VkResult       getDisplayPlaneSupportedDisplaysKHR                                                             (VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays) const;
+virtual VkResult       getDisplayModePropertiesKHR                                                                             (VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties) const;
+virtual VkResult       createDisplayModeKHR                                                                                    (VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode) const;
+virtual VkResult       getDisplayPlaneCapabilitiesKHR                                                                  (VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities) const;
+virtual VkResult       createDisplayPlaneSurfaceKHR                                                                    (VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
+virtual void           destroySurfaceKHR                                                                                               (VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       getPhysicalDeviceSurfaceSupportKHR                                                              (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported) const;
+virtual VkResult       getPhysicalDeviceSurfaceCapabilitiesKHR                                                 (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) const;
+virtual VkResult       getPhysicalDeviceSurfaceFormatsKHR                                                              (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) const;
+virtual VkResult       getPhysicalDeviceSurfacePresentModesKHR                                                 (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) const;
+virtual VkResult       createViSurfaceNN                                                                                               (VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
+virtual VkResult       createWaylandSurfaceKHR                                                                                 (VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
+virtual VkBool32       getPhysicalDeviceWaylandPresentationSupportKHR                                  (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::WaylandDisplayPtr display) const;
+virtual VkResult       createWin32SurfaceKHR                                                                                   (VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
+virtual VkBool32       getPhysicalDeviceWin32PresentationSupportKHR                                    (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex) const;
+virtual VkResult       createXlibSurfaceKHR                                                                                    (VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
+virtual VkBool32       getPhysicalDeviceXlibPresentationSupportKHR                                             (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::XlibDisplayPtr dpy, pt::XlibVisualID visualID) const;
+virtual VkResult       createXcbSurfaceKHR                                                                                             (VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
+virtual VkBool32       getPhysicalDeviceXcbPresentationSupportKHR                                              (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::XcbConnectionPtr connection, pt::XcbVisualid visual_id) const;
+virtual VkResult       createImagePipeSurfaceFUCHSIA                                                                   (VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
+virtual VkResult       createStreamDescriptorSurfaceGGP                                                                (VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
+virtual VkResult       createScreenSurfaceQNX                                                                                  (VkInstance instance, const VkScreenSurfaceCreateInfoQNX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
+virtual VkBool32       getPhysicalDeviceScreenPresentationSupportQNX                                   (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::QNXScreenWindowPtr window) 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, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage) const;
+virtual VkResult       getPhysicalDeviceExternalImageFormatPropertiesNV                                (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) const;
 virtual void           getPhysicalDeviceFeatures2                                                                              (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures) const;
 virtual void           getPhysicalDeviceProperties2                                                                    (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties) const;
 virtual void           getPhysicalDeviceFormatProperties2                                                              (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties) const;
@@ -24,66 +53,39 @@ virtual void                getPhysicalDeviceQueueFamilyProperties2                                                 (VkPhysicalDevice ph
 virtual void           getPhysicalDeviceMemoryProperties2                                                              (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties) const;
 virtual void           getPhysicalDeviceSparseImageFormatProperties2                                   (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties) const;
 virtual void           getPhysicalDeviceExternalBufferProperties                                               (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties) const;
-virtual void           getPhysicalDeviceExternalFenceProperties                                                (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties) const;
 virtual void           getPhysicalDeviceExternalSemaphoreProperties                                    (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties) const;
-virtual VkResult       getPhysicalDeviceToolProperties                                                                 (VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties) const;
-virtual void           destroySurfaceKHR                                                                                               (VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       getPhysicalDeviceSurfaceSupportKHR                                                              (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported) const;
-virtual VkResult       getPhysicalDeviceSurfaceCapabilitiesKHR                                                 (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) const;
-virtual VkResult       getPhysicalDeviceSurfaceFormatsKHR                                                              (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) const;
-virtual VkResult       getPhysicalDeviceSurfacePresentModesKHR                                                 (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) const;
+virtual void           getPhysicalDeviceExternalFenceProperties                                                (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties) 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::RROutput rrOutput, VkDisplayKHR* pDisplay) const;
+virtual VkResult       acquireWinrtDisplayNV                                                                                   (VkPhysicalDevice physicalDevice, VkDisplayKHR display) const;
+virtual VkResult       getWinrtDisplayNV                                                                                               (VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay) const;
+virtual VkResult       getPhysicalDeviceSurfaceCapabilities2EXT                                                (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities) const;
+virtual VkResult       enumeratePhysicalDeviceGroups                                                                   (VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) const;
 virtual VkResult       getPhysicalDevicePresentRectanglesKHR                                                   (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects) const;
-virtual VkResult       getPhysicalDeviceDisplayPropertiesKHR                                                   (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties) const;
-virtual VkResult       getPhysicalDeviceDisplayPlanePropertiesKHR                                              (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties) const;
-virtual VkResult       getDisplayPlaneSupportedDisplaysKHR                                                             (VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays) const;
-virtual VkResult       getDisplayModePropertiesKHR                                                                             (VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties) const;
-virtual VkResult       createDisplayModeKHR                                                                                    (VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode) const;
-virtual VkResult       getDisplayPlaneCapabilitiesKHR                                                                  (VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities) const;
-virtual VkResult       createDisplayPlaneSurfaceKHR                                                                    (VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
-virtual VkResult       enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR   (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions) const;
-virtual void           getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR                   (VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses) const;
+virtual VkResult       createIOSSurfaceMVK                                                                                             (VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
+virtual VkResult       createMacOSSurfaceMVK                                                                                   (VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
+virtual VkResult       createMetalSurfaceEXT                                                                                   (VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
+virtual void           getPhysicalDeviceMultisamplePropertiesEXT                                               (VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties) const;
 virtual VkResult       getPhysicalDeviceSurfaceCapabilities2KHR                                                (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities) const;
 virtual VkResult       getPhysicalDeviceSurfaceFormats2KHR                                                             (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats) const;
 virtual VkResult       getPhysicalDeviceDisplayProperties2KHR                                                  (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties) const;
 virtual VkResult       getPhysicalDeviceDisplayPlaneProperties2KHR                                             (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties) const;
 virtual VkResult       getDisplayModeProperties2KHR                                                                    (VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties) const;
 virtual VkResult       getDisplayPlaneCapabilities2KHR                                                                 (VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities) const;
-virtual VkResult       getPhysicalDeviceFragmentShadingRatesKHR                                                (VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates) 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, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage) 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       getPhysicalDeviceSurfaceCapabilities2EXT                                                (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities) const;
+virtual VkResult       getPhysicalDeviceCalibrateableTimeDomainsEXT                                    (VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains) const;
 virtual VkResult       createDebugUtilsMessengerEXT                                                                    (VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger) const;
 virtual void           destroyDebugUtilsMessengerEXT                                                                   (VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator) const;
 virtual void           submitDebugUtilsMessageEXT                                                                              (VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) const;
-virtual void           getPhysicalDeviceMultisamplePropertiesEXT                                               (VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties) const;
-virtual VkResult       getPhysicalDeviceCalibrateableTimeDomainsEXT                                    (VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains) const;
 virtual VkResult       getPhysicalDeviceCooperativeMatrixPropertiesNV                                  (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties) const;
-virtual VkResult       getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV (VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations) const;
+virtual VkResult       getPhysicalDeviceSurfacePresentModes2EXT                                                (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) const;
+virtual VkResult       enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR   (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions) const;
+virtual void           getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR                   (VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses) const;
 virtual VkResult       createHeadlessSurfaceEXT                                                                                (VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
-virtual VkResult       acquireDrmDisplayEXT                                                                                    (VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display) const;
-virtual VkResult       getDrmDisplayEXT                                                                                                (VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display) const;
-virtual VkResult       acquireWinrtDisplayNV                                                                                   (VkPhysicalDevice physicalDevice, VkDisplayKHR display) const;
-virtual VkResult       getWinrtDisplayNV                                                                                               (VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay) const;
-virtual VkResult       createAndroidSurfaceKHR                                                                                 (VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
+virtual VkResult       getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV (VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations) const;
+virtual VkResult       getPhysicalDeviceToolProperties                                                                 (VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties) const;
+virtual VkResult       getPhysicalDeviceFragmentShadingRatesKHR                                                (VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates) const;
 virtual VkResult       getPhysicalDeviceVideoCapabilitiesKHR                                                   (VkPhysicalDevice physicalDevice, const VkVideoProfileKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities) const;
 virtual VkResult       getPhysicalDeviceVideoFormatPropertiesKHR                                               (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties) const;
-virtual VkResult       createImagePipeSurfaceFUCHSIA                                                                   (VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
-virtual VkResult       createStreamDescriptorSurfaceGGP                                                                (VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
-virtual VkResult       createIOSSurfaceMVK                                                                                             (VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
-virtual VkResult       createMacOSSurfaceMVK                                                                                   (VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
-virtual VkResult       createMetalSurfaceEXT                                                                                   (VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
-virtual VkResult       createViSurfaceNN                                                                                               (VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
-virtual VkResult       createWaylandSurfaceKHR                                                                                 (VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
-virtual VkBool32       getPhysicalDeviceWaylandPresentationSupportKHR                                  (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::WaylandDisplayPtr display) const;
-virtual VkResult       createWin32SurfaceKHR                                                                                   (VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
-virtual VkBool32       getPhysicalDeviceWin32PresentationSupportKHR                                    (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex) const;
-virtual VkResult       getPhysicalDeviceSurfacePresentModes2EXT                                                (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) const;
-virtual VkResult       createXcbSurfaceKHR                                                                                             (VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
-virtual VkBool32       getPhysicalDeviceXcbPresentationSupportKHR                                              (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::XcbConnectionPtr connection, pt::XcbVisualid visual_id) const;
-virtual VkResult       createXlibSurfaceKHR                                                                                    (VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
-virtual VkBool32       getPhysicalDeviceXlibPresentationSupportKHR                                             (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::XlibDisplayPtr dpy, pt::XlibVisualID visualID) const;
-virtual VkResult       acquireXlibDisplayEXT                                                                                   (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, VkDisplayKHR display) const;
-virtual VkResult       getRandROutputDisplayEXT                                                                                (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, pt::RROutput rrOutput, VkDisplayKHR* pDisplay) const;
+virtual VkResult       acquireDrmDisplayEXT                                                                                    (VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display) const;
+virtual VkResult       getDrmDisplayEXT                                                                                                (VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display) const;
index be6965c..83fe404 100644 (file)
@@ -5,6 +5,6 @@
 
 virtual VkResult                       createInstance                                                  (const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance) const;
 virtual PFN_vkVoidFunction     getInstanceProcAddr                                             (VkInstance instance, const char* pName) const;
-virtual VkResult                       enumerateInstanceExtensionProperties    (const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) const;
-virtual VkResult                       enumerateInstanceLayerProperties                (uint32_t* pPropertyCount, VkLayerProperties* pProperties) const;
 virtual VkResult                       enumerateInstanceVersion                                (uint32_t* pApiVersion) const;
+virtual VkResult                       enumerateInstanceLayerProperties                (uint32_t* pPropertyCount, VkLayerProperties* pProperties) const;
+virtual VkResult                       enumerateInstanceExtensionProperties    (const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) const;
index c055054..f18bad0 100644 (file)
@@ -723,4 +723,3 @@ void initApisMap (ApisMap& apis)
        apis[VK_API_VERSION_1_3].push_back(FunctionInfo("vkGetDeviceImageSparseMemoryRequirements",                     FUNCTIONORIGIN_DEVICE));
 
 }
-
index 677029a..405d7b1 100644 (file)
@@ -69,24 +69,24 @@ void DeviceDriver::getDeviceMemoryCommitment (VkDevice device, VkDeviceMemory me
        m_vk.getDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes);
 }
 
-VkResult DeviceDriver::bindBufferMemory (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) const
+void DeviceDriver::getBufferMemoryRequirements (VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) const
 {
-       return m_vk.bindBufferMemory(device, buffer, memory, memoryOffset);
+       m_vk.getBufferMemoryRequirements(device, buffer, pMemoryRequirements);
 }
 
-VkResult DeviceDriver::bindImageMemory (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) const
+VkResult DeviceDriver::bindBufferMemory (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) const
 {
-       return m_vk.bindImageMemory(device, image, memory, memoryOffset);
+       return m_vk.bindBufferMemory(device, buffer, memory, memoryOffset);
 }
 
-void DeviceDriver::getBufferMemoryRequirements (VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) const
+void DeviceDriver::getImageMemoryRequirements (VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) const
 {
-       m_vk.getBufferMemoryRequirements(device, buffer, pMemoryRequirements);
+       m_vk.getImageMemoryRequirements(device, image, pMemoryRequirements);
 }
 
-void DeviceDriver::getImageMemoryRequirements (VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) const
+VkResult DeviceDriver::bindImageMemory (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) const
 {
-       m_vk.getImageMemoryRequirements(device, image, pMemoryRequirements);
+       return m_vk.bindImageMemory(device, image, memory, memoryOffset);
 }
 
 void DeviceDriver::getImageSparseMemoryRequirements (VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) const
@@ -174,6 +174,11 @@ VkResult DeviceDriver::getQueryPoolResults (VkDevice device, VkQueryPool queryPo
        return m_vk.getQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags);
 }
 
+void DeviceDriver::resetQueryPool (VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) const
+{
+       m_vk.resetQueryPool(device, queryPool, firstQuery, queryCount);
+}
+
 VkResult DeviceDriver::createBuffer (VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) const
 {
        return m_vk.createBuffer(device, pCreateInfo, pAllocator, pBuffer);
@@ -259,6 +264,11 @@ VkResult DeviceDriver::createComputePipelines (VkDevice device, VkPipelineCache
        return m_vk.createComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
 }
 
+VkResult DeviceDriver::getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI (VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize) const
+{
+       return m_vk.getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize);
+}
+
 void DeviceDriver::destroyPipeline (VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) const
 {
        m_vk.destroyPipeline(device, pipeline, pAllocator);
@@ -464,6 +474,16 @@ void DeviceDriver::cmdDrawIndexed (VkCommandBuffer commandBuffer, uint32_t index
        m_vk.cmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
 }
 
+void DeviceDriver::cmdDrawMultiEXT (VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride) const
+{
+       m_vk.cmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride);
+}
+
+void DeviceDriver::cmdDrawMultiIndexedEXT (VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawIndexedInfoEXT* pIndexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride, const int32_t* pVertexOffset) const
+{
+       m_vk.cmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset);
+}
+
 void DeviceDriver::cmdDrawIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) const
 {
        m_vk.cmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride);
@@ -484,6 +504,11 @@ void DeviceDriver::cmdDispatchIndirect (VkCommandBuffer commandBuffer, VkBuffer
        m_vk.cmdDispatchIndirect(commandBuffer, buffer, offset);
 }
 
+void DeviceDriver::cmdSubpassShadingHUAWEI (VkCommandBuffer commandBuffer) const
+{
+       m_vk.cmdSubpassShadingHUAWEI(commandBuffer);
+}
+
 void DeviceDriver::cmdCopyBuffer (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions) const
 {
        m_vk.cmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions);
@@ -569,6 +594,16 @@ void DeviceDriver::cmdEndQuery (VkCommandBuffer commandBuffer, VkQueryPool query
        m_vk.cmdEndQuery(commandBuffer, queryPool, query);
 }
 
+void DeviceDriver::cmdBeginConditionalRenderingEXT (VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) const
+{
+       m_vk.cmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin);
+}
+
+void DeviceDriver::cmdEndConditionalRenderingEXT (VkCommandBuffer commandBuffer) const
+{
+       m_vk.cmdEndConditionalRenderingEXT(commandBuffer);
+}
+
 void DeviceDriver::cmdResetQueryPool (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) const
 {
        m_vk.cmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount);
@@ -609,314 +644,319 @@ void DeviceDriver::cmdExecuteCommands (VkCommandBuffer commandBuffer, uint32_t c
        m_vk.cmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers);
 }
 
-VkResult DeviceDriver::bindBufferMemory2 (VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos) const
+VkResult DeviceDriver::createSharedSwapchainsKHR (VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const
 {
-       return m_vk.bindBufferMemory2(device, bindInfoCount, pBindInfos);
+       return m_vk.createSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains);
 }
 
-VkResult DeviceDriver::bindImageMemory2 (VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) const
+VkResult DeviceDriver::createSwapchainKHR (VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) const
 {
-       return m_vk.bindImageMemory2(device, bindInfoCount, pBindInfos);
+       return m_vk.createSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
 }
 
-void DeviceDriver::getDeviceGroupPeerMemoryFeatures (VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) const
+void DeviceDriver::destroySwapchainKHR (VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) const
 {
-       m_vk.getDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
+       m_vk.destroySwapchainKHR(device, swapchain, pAllocator);
 }
 
-void DeviceDriver::cmdSetDeviceMask (VkCommandBuffer commandBuffer, uint32_t deviceMask) const
+VkResult DeviceDriver::getSwapchainImagesKHR (VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages) const
 {
-       m_vk.cmdSetDeviceMask(commandBuffer, deviceMask);
+       return m_vk.getSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
 }
 
-void DeviceDriver::cmdDispatchBase (VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) const
+VkResult DeviceDriver::acquireNextImageKHR (VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex) const
 {
-       m_vk.cmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
+       return m_vk.acquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
 }
 
-void DeviceDriver::getImageMemoryRequirements2 (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const
+VkResult DeviceDriver::queuePresentKHR (VkQueue queue, const VkPresentInfoKHR* pPresentInfo) const
 {
-       m_vk.getImageMemoryRequirements2(device, pInfo, pMemoryRequirements);
+       return m_vk.queuePresentKHR(queue, pPresentInfo);
 }
 
-void DeviceDriver::getBufferMemoryRequirements2 (VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const
+VkResult DeviceDriver::debugMarkerSetObjectNameEXT (VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo) const
 {
-       m_vk.getBufferMemoryRequirements2(device, pInfo, pMemoryRequirements);
+       return m_vk.debugMarkerSetObjectNameEXT(device, pNameInfo);
 }
 
-void DeviceDriver::getImageSparseMemoryRequirements2 (VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) const
+VkResult DeviceDriver::debugMarkerSetObjectTagEXT (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo) const
 {
-       m_vk.getImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
+       return m_vk.debugMarkerSetObjectTagEXT(device, pTagInfo);
 }
 
-void DeviceDriver::trimCommandPool (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags) const
+void DeviceDriver::cmdDebugMarkerBeginEXT (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const
 {
-       m_vk.trimCommandPool(device, commandPool, flags);
+       m_vk.cmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
 }
 
-void DeviceDriver::getDeviceQueue2 (VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue) const
+void DeviceDriver::cmdDebugMarkerEndEXT (VkCommandBuffer commandBuffer) const
 {
-       m_vk.getDeviceQueue2(device, pQueueInfo, pQueue);
+       m_vk.cmdDebugMarkerEndEXT(commandBuffer);
 }
 
-VkResult DeviceDriver::createSamplerYcbcrConversion (VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) const
+void DeviceDriver::cmdDebugMarkerInsertEXT (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const
 {
-       return m_vk.createSamplerYcbcrConversion(device, pCreateInfo, pAllocator, pYcbcrConversion);
+       m_vk.cmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
 }
 
-void DeviceDriver::destroySamplerYcbcrConversion (VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator) const
+VkResult DeviceDriver::getMemoryWin32HandleNV (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle) const
 {
-       m_vk.destroySamplerYcbcrConversion(device, ycbcrConversion, pAllocator);
+       return m_vk.getMemoryWin32HandleNV(device, memory, handleType, pHandle);
 }
 
-VkResult DeviceDriver::createDescriptorUpdateTemplate (VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) const
+void DeviceDriver::cmdExecuteGeneratedCommandsNV (VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) const
 {
-       return m_vk.createDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
+       m_vk.cmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo);
 }
 
-void DeviceDriver::destroyDescriptorUpdateTemplate (VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator) const
+void DeviceDriver::cmdPreprocessGeneratedCommandsNV (VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) const
 {
-       m_vk.destroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator);
+       m_vk.cmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo);
 }
 
-void DeviceDriver::updateDescriptorSetWithTemplate (VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData) const
+void DeviceDriver::cmdBindPipelineShaderGroupNV (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex) const
 {
-       m_vk.updateDescriptorSetWithTemplate(device, descriptorSet, descriptorUpdateTemplate, pData);
+       m_vk.cmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex);
 }
 
-void DeviceDriver::getDescriptorSetLayoutSupport (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport) const
+void DeviceDriver::getGeneratedCommandsMemoryRequirementsNV (VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements) const
 {
-       m_vk.getDescriptorSetLayoutSupport(device, pCreateInfo, pSupport);
+       m_vk.getGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements);
 }
 
-void DeviceDriver::cmdDrawIndirectCount (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const
+VkResult DeviceDriver::createIndirectCommandsLayoutNV (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout) const
 {
-       m_vk.cmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
+       return m_vk.createIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
 }
 
-void DeviceDriver::cmdDrawIndexedIndirectCount (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const
+void DeviceDriver::destroyIndirectCommandsLayoutNV (VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) const
 {
-       m_vk.cmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
+       m_vk.destroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator);
 }
 
-VkResult DeviceDriver::createRenderPass2 (VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) const
+void DeviceDriver::cmdPushDescriptorSetKHR (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites) const
 {
-       return m_vk.createRenderPass2(device, pCreateInfo, pAllocator, pRenderPass);
+       m_vk.cmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
 }
 
-void DeviceDriver::cmdBeginRenderPass2 (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo) const
+void DeviceDriver::trimCommandPool (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags) const
 {
-       m_vk.cmdBeginRenderPass2(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
+       m_vk.trimCommandPool(device, commandPool, flags);
 }
 
-void DeviceDriver::cmdNextSubpass2 (VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo) const
+VkResult DeviceDriver::getMemoryWin32HandleKHR (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const
 {
-       m_vk.cmdNextSubpass2(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
+       return m_vk.getMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
 }
 
-void DeviceDriver::cmdEndRenderPass2 (VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo) const
+VkResult DeviceDriver::getMemoryWin32HandlePropertiesKHR (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) const
 {
-       m_vk.cmdEndRenderPass2(commandBuffer, pSubpassEndInfo);
+       return m_vk.getMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
 }
 
-void DeviceDriver::resetQueryPool (VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) const
+VkResult DeviceDriver::getMemoryFdKHR (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) const
 {
-       m_vk.resetQueryPool(device, queryPool, firstQuery, queryCount);
+       return m_vk.getMemoryFdKHR(device, pGetFdInfo, pFd);
 }
 
-VkResult DeviceDriver::getSemaphoreCounterValue (VkDevice device, VkSemaphore semaphore, uint64_t* pValue) const
+VkResult DeviceDriver::getMemoryFdPropertiesKHR (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) const
 {
-       return m_vk.getSemaphoreCounterValue(device, semaphore, pValue);
+       return m_vk.getMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
 }
 
-VkResult DeviceDriver::waitSemaphores (VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout) const
+VkResult DeviceDriver::getMemoryZirconHandleFUCHSIA (VkDevice device, const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, pt::zx_handle_t* pZirconHandle) const
 {
-       return m_vk.waitSemaphores(device, pWaitInfo, timeout);
+       return m_vk.getMemoryZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle);
 }
 
-VkResult DeviceDriver::signalSemaphore (VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo) const
+VkResult DeviceDriver::getMemoryZirconHandlePropertiesFUCHSIA (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties) const
 {
-       return m_vk.signalSemaphore(device, pSignalInfo);
+       return m_vk.getMemoryZirconHandlePropertiesFUCHSIA(device, handleType, zirconHandle, pMemoryZirconHandleProperties);
 }
 
-VkDeviceAddress DeviceDriver::getBufferDeviceAddress (VkDevice device, const VkBufferDeviceAddressInfo* pInfo) const
+VkResult DeviceDriver::getMemoryRemoteAddressNV (VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress) const
 {
-       return m_vk.getBufferDeviceAddress(device, pInfo);
+       return m_vk.getMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress);
 }
 
-uint64_t DeviceDriver::getBufferOpaqueCaptureAddress (VkDevice device, const VkBufferDeviceAddressInfo* pInfo) const
+VkResult DeviceDriver::getSemaphoreWin32HandleKHR (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const
 {
-       return m_vk.getBufferOpaqueCaptureAddress(device, pInfo);
+       return m_vk.getSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
 }
 
-uint64_t DeviceDriver::getDeviceMemoryOpaqueCaptureAddress (VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) const
+VkResult DeviceDriver::importSemaphoreWin32HandleKHR (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) const
 {
-       return m_vk.getDeviceMemoryOpaqueCaptureAddress(device, pInfo);
+       return m_vk.importSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
 }
 
-VkResult DeviceDriver::createPrivateDataSlot (VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot) const
+VkResult DeviceDriver::getSemaphoreFdKHR (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) const
 {
-       return m_vk.createPrivateDataSlot(device, pCreateInfo, pAllocator, pPrivateDataSlot);
+       return m_vk.getSemaphoreFdKHR(device, pGetFdInfo, pFd);
 }
 
-void DeviceDriver::destroyPrivateDataSlot (VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator) const
+VkResult DeviceDriver::importSemaphoreFdKHR (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) const
 {
-       m_vk.destroyPrivateDataSlot(device, privateDataSlot, pAllocator);
+       return m_vk.importSemaphoreFdKHR(device, pImportSemaphoreFdInfo);
 }
 
-VkResult DeviceDriver::setPrivateData (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data) const
+VkResult DeviceDriver::getSemaphoreZirconHandleFUCHSIA (VkDevice device, const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, pt::zx_handle_t* pZirconHandle) const
 {
-       return m_vk.setPrivateData(device, objectType, objectHandle, privateDataSlot, data);
+       return m_vk.getSemaphoreZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle);
 }
 
-void DeviceDriver::getPrivateData (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData) const
+VkResult DeviceDriver::importSemaphoreZirconHandleFUCHSIA (VkDevice device, const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo) const
 {
-       m_vk.getPrivateData(device, objectType, objectHandle, privateDataSlot, pData);
+       return m_vk.importSemaphoreZirconHandleFUCHSIA(device, pImportSemaphoreZirconHandleInfo);
 }
 
-void DeviceDriver::cmdSetEvent2 (VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo) const
+VkResult DeviceDriver::getFenceWin32HandleKHR (VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const
 {
-       m_vk.cmdSetEvent2(commandBuffer, event, pDependencyInfo);
+       return m_vk.getFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
 }
 
-void DeviceDriver::cmdResetEvent2 (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask) const
+VkResult DeviceDriver::importFenceWin32HandleKHR (VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) const
 {
-       m_vk.cmdResetEvent2(commandBuffer, event, stageMask);
+       return m_vk.importFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
 }
 
-void DeviceDriver::cmdWaitEvents2 (VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos) const
+VkResult DeviceDriver::getFenceFdKHR (VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd) const
 {
-       m_vk.cmdWaitEvents2(commandBuffer, eventCount, pEvents, pDependencyInfos);
+       return m_vk.getFenceFdKHR(device, pGetFdInfo, pFd);
 }
 
-void DeviceDriver::cmdPipelineBarrier2 (VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo) const
+VkResult DeviceDriver::importFenceFdKHR (VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo) const
 {
-       m_vk.cmdPipelineBarrier2(commandBuffer, pDependencyInfo);
+       return m_vk.importFenceFdKHR(device, pImportFenceFdInfo);
 }
 
-void DeviceDriver::cmdWriteTimestamp2 (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query) const
+VkResult DeviceDriver::displayPowerControlEXT (VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo) const
 {
-       m_vk.cmdWriteTimestamp2(commandBuffer, stage, queryPool, query);
+       return m_vk.displayPowerControlEXT(device, display, pDisplayPowerInfo);
 }
 
-VkResult DeviceDriver::queueSubmit2 (VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence) const
+VkResult DeviceDriver::registerDeviceEventEXT (VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const
 {
-       return m_vk.queueSubmit2(queue, submitCount, pSubmits, fence);
+       return m_vk.registerDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
 }
 
-void DeviceDriver::cmdCopyBuffer2 (VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo) const
+VkResult DeviceDriver::registerDisplayEventEXT (VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const
 {
-       m_vk.cmdCopyBuffer2(commandBuffer, pCopyBufferInfo);
+       return m_vk.registerDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
 }
 
-void DeviceDriver::cmdCopyImage2 (VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo) const
+VkResult DeviceDriver::getSwapchainCounterEXT (VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue) const
 {
-       m_vk.cmdCopyImage2(commandBuffer, pCopyImageInfo);
+       return m_vk.getSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
 }
 
-void DeviceDriver::cmdCopyBufferToImage2 (VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) const
+void DeviceDriver::getDeviceGroupPeerMemoryFeatures (VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) const
 {
-       m_vk.cmdCopyBufferToImage2(commandBuffer, pCopyBufferToImageInfo);
+       m_vk.getDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
 }
 
-void DeviceDriver::cmdCopyImageToBuffer2 (VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) const
+VkResult DeviceDriver::bindBufferMemory2 (VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos) const
 {
-       m_vk.cmdCopyImageToBuffer2(commandBuffer, pCopyImageToBufferInfo);
+       return m_vk.bindBufferMemory2(device, bindInfoCount, pBindInfos);
 }
 
-void DeviceDriver::cmdBlitImage2 (VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo) const
+VkResult DeviceDriver::bindImageMemory2 (VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) const
 {
-       m_vk.cmdBlitImage2(commandBuffer, pBlitImageInfo);
+       return m_vk.bindImageMemory2(device, bindInfoCount, pBindInfos);
 }
 
-void DeviceDriver::cmdResolveImage2 (VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo) const
+void DeviceDriver::cmdSetDeviceMask (VkCommandBuffer commandBuffer, uint32_t deviceMask) const
 {
-       m_vk.cmdResolveImage2(commandBuffer, pResolveImageInfo);
+       m_vk.cmdSetDeviceMask(commandBuffer, deviceMask);
 }
 
-void DeviceDriver::cmdBeginRendering (VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo) const
+VkResult DeviceDriver::getDeviceGroupPresentCapabilitiesKHR (VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) const
 {
-       m_vk.cmdBeginRendering(commandBuffer, pRenderingInfo);
+       return m_vk.getDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities);
 }
 
-void DeviceDriver::cmdEndRendering (VkCommandBuffer commandBuffer) const
+VkResult DeviceDriver::getDeviceGroupSurfacePresentModesKHR (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes) const
 {
-       m_vk.cmdEndRendering(commandBuffer);
+       return m_vk.getDeviceGroupSurfacePresentModesKHR(device, surface, pModes);
 }
 
-void DeviceDriver::cmdSetCullMode (VkCommandBuffer commandBuffer, VkCullModeFlags cullMode) const
+VkResult DeviceDriver::acquireNextImage2KHR (VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex) const
 {
-       m_vk.cmdSetCullMode(commandBuffer, cullMode);
+       return m_vk.acquireNextImage2KHR(device, pAcquireInfo, pImageIndex);
 }
 
-void DeviceDriver::cmdSetFrontFace (VkCommandBuffer commandBuffer, VkFrontFace frontFace) const
+void DeviceDriver::cmdDispatchBase (VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) const
 {
-       m_vk.cmdSetFrontFace(commandBuffer, frontFace);
+       m_vk.cmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
 }
 
-void DeviceDriver::cmdSetPrimitiveTopology (VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology) const
+VkResult DeviceDriver::createDescriptorUpdateTemplate (VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) const
 {
-       m_vk.cmdSetPrimitiveTopology(commandBuffer, primitiveTopology);
+       return m_vk.createDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
 }
 
-void DeviceDriver::cmdSetViewportWithCount (VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports) const
+void DeviceDriver::destroyDescriptorUpdateTemplate (VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator) const
 {
-       m_vk.cmdSetViewportWithCount(commandBuffer, viewportCount, pViewports);
+       m_vk.destroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator);
 }
 
-void DeviceDriver::cmdSetScissorWithCount (VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors) const
+void DeviceDriver::updateDescriptorSetWithTemplate (VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData) const
 {
-       m_vk.cmdSetScissorWithCount(commandBuffer, scissorCount, pScissors);
+       m_vk.updateDescriptorSetWithTemplate(device, descriptorSet, descriptorUpdateTemplate, pData);
 }
 
-void DeviceDriver::cmdBindVertexBuffers2 (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides) const
+void DeviceDriver::cmdPushDescriptorSetWithTemplateKHR (VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData) const
 {
-       m_vk.cmdBindVertexBuffers2(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides);
+       m_vk.cmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData);
 }
 
-void DeviceDriver::cmdSetDepthTestEnable (VkCommandBuffer commandBuffer, VkBool32 depthTestEnable) const
+void DeviceDriver::setHdrMetadataEXT (VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata) const
 {
-       m_vk.cmdSetDepthTestEnable(commandBuffer, depthTestEnable);
+       m_vk.setHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
 }
 
-void DeviceDriver::cmdSetDepthWriteEnable (VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable) const
+VkResult DeviceDriver::getSwapchainStatusKHR (VkDevice device, VkSwapchainKHR swapchain) const
 {
-       m_vk.cmdSetDepthWriteEnable(commandBuffer, depthWriteEnable);
+       return m_vk.getSwapchainStatusKHR(device, swapchain);
 }
 
-void DeviceDriver::cmdSetDepthCompareOp (VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp) const
+VkResult DeviceDriver::getRefreshCycleDurationGOOGLE (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) const
 {
-       m_vk.cmdSetDepthCompareOp(commandBuffer, depthCompareOp);
+       return m_vk.getRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
 }
 
-void DeviceDriver::cmdSetDepthBoundsTestEnable (VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable) const
+VkResult DeviceDriver::getPastPresentationTimingGOOGLE (VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings) const
 {
-       m_vk.cmdSetDepthBoundsTestEnable(commandBuffer, depthBoundsTestEnable);
+       return m_vk.getPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
 }
 
-void DeviceDriver::cmdSetStencilTestEnable (VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable) const
+void DeviceDriver::cmdSetViewportWScalingNV (VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings) const
 {
-       m_vk.cmdSetStencilTestEnable(commandBuffer, stencilTestEnable);
+       m_vk.cmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
 }
 
-void DeviceDriver::cmdSetStencilOp (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp) const
+void DeviceDriver::cmdSetDiscardRectangleEXT (VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles) const
 {
-       m_vk.cmdSetStencilOp(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp);
+       m_vk.cmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
 }
 
-void DeviceDriver::cmdSetRasterizerDiscardEnable (VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable) const
+void DeviceDriver::cmdSetSampleLocationsEXT (VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo) const
 {
-       m_vk.cmdSetRasterizerDiscardEnable(commandBuffer, rasterizerDiscardEnable);
+       m_vk.cmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
 }
 
-void DeviceDriver::cmdSetDepthBiasEnable (VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable) const
+void DeviceDriver::getBufferMemoryRequirements2 (VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const
 {
-       m_vk.cmdSetDepthBiasEnable(commandBuffer, depthBiasEnable);
+       m_vk.getBufferMemoryRequirements2(device, pInfo, pMemoryRequirements);
 }
 
-void DeviceDriver::cmdSetPrimitiveRestartEnable (VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable) const
+void DeviceDriver::getImageMemoryRequirements2 (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const
 {
-       m_vk.cmdSetPrimitiveRestartEnable(commandBuffer, primitiveRestartEnable);
+       m_vk.getImageMemoryRequirements2(device, pInfo, pMemoryRequirements);
+}
+
+void DeviceDriver::getImageSparseMemoryRequirements2 (VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) const
+{
+       m_vk.getImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
 }
 
 void DeviceDriver::getDeviceBufferMemoryRequirements (VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) const
@@ -934,194 +974,174 @@ void DeviceDriver::getDeviceImageSparseMemoryRequirements (VkDevice device, cons
        m_vk.getDeviceImageSparseMemoryRequirements(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
 }
 
-VkResult DeviceDriver::createSwapchainKHR (VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) const
-{
-       return m_vk.createSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
-}
-
-void DeviceDriver::destroySwapchainKHR (VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) const
-{
-       m_vk.destroySwapchainKHR(device, swapchain, pAllocator);
-}
-
-VkResult DeviceDriver::getSwapchainImagesKHR (VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages) const
-{
-       return m_vk.getSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
-}
-
-VkResult DeviceDriver::acquireNextImageKHR (VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex) const
-{
-       return m_vk.acquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
-}
-
-VkResult DeviceDriver::queuePresentKHR (VkQueue queue, const VkPresentInfoKHR* pPresentInfo) const
+VkResult DeviceDriver::createSamplerYcbcrConversion (VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) const
 {
-       return m_vk.queuePresentKHR(queue, pPresentInfo);
+       return m_vk.createSamplerYcbcrConversion(device, pCreateInfo, pAllocator, pYcbcrConversion);
 }
 
-VkResult DeviceDriver::getDeviceGroupPresentCapabilitiesKHR (VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) const
+void DeviceDriver::destroySamplerYcbcrConversion (VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator) const
 {
-       return m_vk.getDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities);
+       m_vk.destroySamplerYcbcrConversion(device, ycbcrConversion, pAllocator);
 }
 
-VkResult DeviceDriver::getDeviceGroupSurfacePresentModesKHR (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes) const
+void DeviceDriver::getDeviceQueue2 (VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue) const
 {
-       return m_vk.getDeviceGroupSurfacePresentModesKHR(device, surface, pModes);
+       m_vk.getDeviceQueue2(device, pQueueInfo, pQueue);
 }
 
-VkResult DeviceDriver::acquireNextImage2KHR (VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex) const
+VkResult DeviceDriver::createValidationCacheEXT (VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache) const
 {
-       return m_vk.acquireNextImage2KHR(device, pAcquireInfo, pImageIndex);
+       return m_vk.createValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache);
 }
 
-VkResult DeviceDriver::createSharedSwapchainsKHR (VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const
+void DeviceDriver::destroyValidationCacheEXT (VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator) const
 {
-       return m_vk.createSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains);
+       m_vk.destroyValidationCacheEXT(device, validationCache, pAllocator);
 }
 
-VkResult DeviceDriver::getMemoryFdKHR (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) const
+VkResult DeviceDriver::getValidationCacheDataEXT (VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData) const
 {
-       return m_vk.getMemoryFdKHR(device, pGetFdInfo, pFd);
+       return m_vk.getValidationCacheDataEXT(device, validationCache, pDataSize, pData);
 }
 
-VkResult DeviceDriver::getMemoryFdPropertiesKHR (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) const
+VkResult DeviceDriver::mergeValidationCachesEXT (VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches) const
 {
-       return m_vk.getMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
+       return m_vk.mergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches);
 }
 
-VkResult DeviceDriver::importSemaphoreFdKHR (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) const
+void DeviceDriver::getDescriptorSetLayoutSupport (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport) const
 {
-       return m_vk.importSemaphoreFdKHR(device, pImportSemaphoreFdInfo);
+       m_vk.getDescriptorSetLayoutSupport(device, pCreateInfo, pSupport);
 }
 
-VkResult DeviceDriver::getSemaphoreFdKHR (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) const
+VkResult DeviceDriver::getShaderInfoAMD (VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo) const
 {
-       return m_vk.getSemaphoreFdKHR(device, pGetFdInfo, pFd);
+       return m_vk.getShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
 }
 
-void DeviceDriver::cmdPushDescriptorSetKHR (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites) const
+void DeviceDriver::setLocalDimmingAMD (VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable) const
 {
-       m_vk.cmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
+       m_vk.setLocalDimmingAMD(device, swapChain, localDimmingEnable);
 }
 
-void DeviceDriver::cmdPushDescriptorSetWithTemplateKHR (VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData) const
+VkResult DeviceDriver::getCalibratedTimestampsEXT (VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation) const
 {
-       m_vk.cmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData);
+       return m_vk.getCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation);
 }
 
-VkResult DeviceDriver::getSwapchainStatusKHR (VkDevice device, VkSwapchainKHR swapchain) const
+VkResult DeviceDriver::setDebugUtilsObjectNameEXT (VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo) const
 {
-       return m_vk.getSwapchainStatusKHR(device, swapchain);
+       return m_vk.setDebugUtilsObjectNameEXT(device, pNameInfo);
 }
 
-VkResult DeviceDriver::importFenceFdKHR (VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo) const
+VkResult DeviceDriver::setDebugUtilsObjectTagEXT (VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo) const
 {
-       return m_vk.importFenceFdKHR(device, pImportFenceFdInfo);
+       return m_vk.setDebugUtilsObjectTagEXT(device, pTagInfo);
 }
 
-VkResult DeviceDriver::getFenceFdKHR (VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd) const
+void DeviceDriver::queueBeginDebugUtilsLabelEXT (VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo) const
 {
-       return m_vk.getFenceFdKHR(device, pGetFdInfo, pFd);
+       m_vk.queueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
 }
 
-VkResult DeviceDriver::acquireProfilingLockKHR (VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo) const
+void DeviceDriver::queueEndDebugUtilsLabelEXT (VkQueue queue) const
 {
-       return m_vk.acquireProfilingLockKHR(device, pInfo);
+       m_vk.queueEndDebugUtilsLabelEXT(queue);
 }
 
-void DeviceDriver::releaseProfilingLockKHR (VkDevice device) const
+void DeviceDriver::queueInsertDebugUtilsLabelEXT (VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo) const
 {
-       m_vk.releaseProfilingLockKHR(device);
+       m_vk.queueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
 }
 
-void DeviceDriver::cmdSetFragmentShadingRateKHR (VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const
+void DeviceDriver::cmdBeginDebugUtilsLabelEXT (VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo) const
 {
-       m_vk.cmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps);
+       m_vk.cmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
 }
 
-VkResult DeviceDriver::waitForPresentKHR (VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout) const
+void DeviceDriver::cmdEndDebugUtilsLabelEXT (VkCommandBuffer commandBuffer) const
 {
-       return m_vk.waitForPresentKHR(device, swapchain, presentId, timeout);
+       m_vk.cmdEndDebugUtilsLabelEXT(commandBuffer);
 }
 
-VkResult DeviceDriver::createDeferredOperationKHR (VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation) const
+void DeviceDriver::cmdInsertDebugUtilsLabelEXT (VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo) const
 {
-       return m_vk.createDeferredOperationKHR(device, pAllocator, pDeferredOperation);
+       m_vk.cmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
 }
 
-void DeviceDriver::destroyDeferredOperationKHR (VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator) const
+VkResult DeviceDriver::getMemoryHostPointerPropertiesEXT (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) const
 {
-       m_vk.destroyDeferredOperationKHR(device, operation, pAllocator);
+       return m_vk.getMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
 }
 
-uint32_t DeviceDriver::getDeferredOperationMaxConcurrencyKHR (VkDevice device, VkDeferredOperationKHR operation) const
+void DeviceDriver::cmdWriteBufferMarkerAMD (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker) const
 {
-       return m_vk.getDeferredOperationMaxConcurrencyKHR(device, operation);
+       m_vk.cmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker);
 }
 
-VkResult DeviceDriver::getDeferredOperationResultKHR (VkDevice device, VkDeferredOperationKHR operation) const
+VkResult DeviceDriver::createRenderPass2 (VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) const
 {
-       return m_vk.getDeferredOperationResultKHR(device, operation);
+       return m_vk.createRenderPass2(device, pCreateInfo, pAllocator, pRenderPass);
 }
 
-VkResult DeviceDriver::deferredOperationJoinKHR (VkDevice device, VkDeferredOperationKHR operation) const
+void DeviceDriver::cmdBeginRenderPass2 (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo) const
 {
-       return m_vk.deferredOperationJoinKHR(device, operation);
+       m_vk.cmdBeginRenderPass2(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
 }
 
-VkResult DeviceDriver::getPipelineExecutablePropertiesKHR (VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties) const
+void DeviceDriver::cmdNextSubpass2 (VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo) const
 {
-       return m_vk.getPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties);
+       m_vk.cmdNextSubpass2(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
 }
 
-VkResult DeviceDriver::getPipelineExecutableStatisticsKHR (VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics) const
+void DeviceDriver::cmdEndRenderPass2 (VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo) const
 {
-       return m_vk.getPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics);
+       m_vk.cmdEndRenderPass2(commandBuffer, pSubpassEndInfo);
 }
 
-VkResult DeviceDriver::getPipelineExecutableInternalRepresentationsKHR (VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) const
+VkResult DeviceDriver::getSemaphoreCounterValue (VkDevice device, VkSemaphore semaphore, uint64_t* pValue) const
 {
-       return m_vk.getPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations);
+       return m_vk.getSemaphoreCounterValue(device, semaphore, pValue);
 }
 
-void DeviceDriver::cmdWriteBufferMarker2AMD (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker) const
+VkResult DeviceDriver::waitSemaphores (VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout) const
 {
-       m_vk.cmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker);
+       return m_vk.waitSemaphores(device, pWaitInfo, timeout);
 }
 
-void DeviceDriver::getQueueCheckpointData2NV (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData) const
+VkResult DeviceDriver::signalSemaphore (VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo) const
 {
-       m_vk.getQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData);
+       return m_vk.signalSemaphore(device, pSignalInfo);
 }
 
-void DeviceDriver::cmdTraceRaysIndirect2KHR (VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress) const
+VkResult DeviceDriver::getAndroidHardwareBufferPropertiesANDROID (VkDevice device, const struct pt::AndroidHardwareBufferPtr buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties) const
 {
-       m_vk.cmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress);
+       return m_vk.getAndroidHardwareBufferPropertiesANDROID(device, buffer, pProperties);
 }
 
-VkResult DeviceDriver::debugMarkerSetObjectTagEXT (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo) const
+VkResult DeviceDriver::getMemoryAndroidHardwareBufferANDROID (VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct pt::AndroidHardwareBufferPtr* pBuffer) const
 {
-       return m_vk.debugMarkerSetObjectTagEXT(device, pTagInfo);
+       return m_vk.getMemoryAndroidHardwareBufferANDROID(device, pInfo, pBuffer);
 }
 
-VkResult DeviceDriver::debugMarkerSetObjectNameEXT (VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo) const
+void DeviceDriver::cmdDrawIndirectCount (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const
 {
-       return m_vk.debugMarkerSetObjectNameEXT(device, pNameInfo);
+       m_vk.cmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
 }
 
-void DeviceDriver::cmdDebugMarkerBeginEXT (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const
+void DeviceDriver::cmdDrawIndexedIndirectCount (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const
 {
-       m_vk.cmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
+       m_vk.cmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
 }
 
-void DeviceDriver::cmdDebugMarkerEndEXT (VkCommandBuffer commandBuffer) const
+void DeviceDriver::cmdSetCheckpointNV (VkCommandBuffer commandBuffer, const void* pCheckpointMarker) const
 {
-       m_vk.cmdDebugMarkerEndEXT(commandBuffer);
+       m_vk.cmdSetCheckpointNV(commandBuffer, pCheckpointMarker);
 }
 
-void DeviceDriver::cmdDebugMarkerInsertEXT (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const
+void DeviceDriver::getQueueCheckpointDataNV (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData) const
 {
-       m_vk.cmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
+       m_vk.getQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData);
 }
 
 void DeviceDriver::cmdBindTransformFeedbackBuffersEXT (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes) const
@@ -1154,304 +1174,239 @@ void DeviceDriver::cmdDrawIndirectByteCountEXT (VkCommandBuffer commandBuffer, u
        m_vk.cmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride);
 }
 
-VkResult DeviceDriver::createCuModuleNVX (VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule) const
+void DeviceDriver::cmdSetExclusiveScissorNV (VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors) const
 {
-       return m_vk.createCuModuleNVX(device, pCreateInfo, pAllocator, pModule);
+       m_vk.cmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors);
 }
 
-VkResult DeviceDriver::createCuFunctionNVX (VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction) const
+void DeviceDriver::cmdBindShadingRateImageNV (VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout) const
 {
-       return m_vk.createCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction);
+       m_vk.cmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout);
 }
 
-void DeviceDriver::destroyCuModuleNVX (VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator) const
+void DeviceDriver::cmdSetViewportShadingRatePaletteNV (VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes) const
 {
-       m_vk.destroyCuModuleNVX(device, module, pAllocator);
+       m_vk.cmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes);
 }
 
-void DeviceDriver::destroyCuFunctionNVX (VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator) const
+void DeviceDriver::cmdSetCoarseSampleOrderNV (VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) const
 {
-       m_vk.destroyCuFunctionNVX(device, function, pAllocator);
+       m_vk.cmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders);
 }
 
-void DeviceDriver::cmdCuLaunchKernelNVX (VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo) const
+void DeviceDriver::cmdDrawMeshTasksNV (VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask) const
 {
-       m_vk.cmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo);
+       m_vk.cmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask);
 }
 
-uint32_t DeviceDriver::getImageViewHandleNVX (VkDevice device, const VkImageViewHandleInfoNVX* pInfo) const
+void DeviceDriver::cmdDrawMeshTasksIndirectNV (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) const
 {
-       return m_vk.getImageViewHandleNVX(device, pInfo);
+       m_vk.cmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride);
 }
 
-VkResult DeviceDriver::getImageViewAddressNVX (VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties) const
+void DeviceDriver::cmdDrawMeshTasksIndirectCountNV (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const
 {
-       return m_vk.getImageViewAddressNVX(device, imageView, pProperties);
+       m_vk.cmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
 }
 
-void DeviceDriver::cmdDrawIndirectCountAMD (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const
+VkResult DeviceDriver::compileDeferredNV (VkDevice device, VkPipeline pipeline, uint32_t shader) const
 {
-       m_vk.cmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
+       return m_vk.compileDeferredNV(device, pipeline, shader);
 }
 
-void DeviceDriver::cmdDrawIndexedIndirectCountAMD (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const
+VkResult DeviceDriver::createAccelerationStructureNV (VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure) const
 {
-       m_vk.cmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
+       return m_vk.createAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure);
 }
 
-VkResult DeviceDriver::getShaderInfoAMD (VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo) const
+void DeviceDriver::cmdBindInvocationMaskHUAWEI (VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout) const
 {
-       return m_vk.getShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
+       m_vk.cmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout);
 }
 
-void DeviceDriver::cmdBeginConditionalRenderingEXT (VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) const
+void DeviceDriver::destroyAccelerationStructureKHR (VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator) const
 {
-       m_vk.cmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin);
+       m_vk.destroyAccelerationStructureKHR(device, accelerationStructure, pAllocator);
 }
 
-void DeviceDriver::cmdEndConditionalRenderingEXT (VkCommandBuffer commandBuffer) const
+void DeviceDriver::destroyAccelerationStructureNV (VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator) const
 {
-       m_vk.cmdEndConditionalRenderingEXT(commandBuffer);
+       m_vk.destroyAccelerationStructureNV(device, accelerationStructure, pAllocator);
 }
 
-void DeviceDriver::cmdSetViewportWScalingNV (VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings) const
+void DeviceDriver::getAccelerationStructureMemoryRequirementsNV (VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements) const
 {
-       m_vk.cmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
+       m_vk.getAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements);
 }
 
-VkResult DeviceDriver::displayPowerControlEXT (VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo) const
+VkResult DeviceDriver::bindAccelerationStructureMemoryNV (VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) const
 {
-       return m_vk.displayPowerControlEXT(device, display, pDisplayPowerInfo);
+       return m_vk.bindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos);
 }
 
-VkResult DeviceDriver::registerDeviceEventEXT (VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const
-{
-       return m_vk.registerDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
-}
-
-VkResult DeviceDriver::registerDisplayEventEXT (VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const
-{
-       return m_vk.registerDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
-}
-
-VkResult DeviceDriver::getSwapchainCounterEXT (VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue) const
-{
-       return m_vk.getSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
-}
-
-VkResult DeviceDriver::getRefreshCycleDurationGOOGLE (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) const
-{
-       return m_vk.getRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
-}
-
-VkResult DeviceDriver::getPastPresentationTimingGOOGLE (VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings) const
-{
-       return m_vk.getPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
-}
-
-void DeviceDriver::cmdSetDiscardRectangleEXT (VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles) const
-{
-       m_vk.cmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
-}
-
-void DeviceDriver::setHdrMetadataEXT (VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata) const
-{
-       m_vk.setHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
-}
-
-VkResult DeviceDriver::setDebugUtilsObjectNameEXT (VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo) const
-{
-       return m_vk.setDebugUtilsObjectNameEXT(device, pNameInfo);
-}
-
-VkResult DeviceDriver::setDebugUtilsObjectTagEXT (VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo) const
-{
-       return m_vk.setDebugUtilsObjectTagEXT(device, pTagInfo);
-}
-
-void DeviceDriver::queueBeginDebugUtilsLabelEXT (VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo) const
-{
-       m_vk.queueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
-}
-
-void DeviceDriver::queueEndDebugUtilsLabelEXT (VkQueue queue) const
-{
-       m_vk.queueEndDebugUtilsLabelEXT(queue);
-}
-
-void DeviceDriver::queueInsertDebugUtilsLabelEXT (VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo) const
-{
-       m_vk.queueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
-}
-
-void DeviceDriver::cmdBeginDebugUtilsLabelEXT (VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo) const
-{
-       m_vk.cmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
-}
-
-void DeviceDriver::cmdEndDebugUtilsLabelEXT (VkCommandBuffer commandBuffer) const
+void DeviceDriver::cmdCopyAccelerationStructureNV (VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode) const
 {
-       m_vk.cmdEndDebugUtilsLabelEXT(commandBuffer);
+       m_vk.cmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode);
 }
 
-void DeviceDriver::cmdInsertDebugUtilsLabelEXT (VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo) const
+void DeviceDriver::cmdCopyAccelerationStructureKHR (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo) const
 {
-       m_vk.cmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
+       m_vk.cmdCopyAccelerationStructureKHR(commandBuffer, pInfo);
 }
 
-void DeviceDriver::cmdSetSampleLocationsEXT (VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo) const
+VkResult DeviceDriver::copyAccelerationStructureKHR (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo) const
 {
-       m_vk.cmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
+       return m_vk.copyAccelerationStructureKHR(device, deferredOperation, pInfo);
 }
 
-VkResult DeviceDriver::getImageDrmFormatModifierPropertiesEXT (VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties) const
+void DeviceDriver::cmdCopyAccelerationStructureToMemoryKHR (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) const
 {
-       return m_vk.getImageDrmFormatModifierPropertiesEXT(device, image, pProperties);
+       m_vk.cmdCopyAccelerationStructureToMemoryKHR(commandBuffer, pInfo);
 }
 
-VkResult DeviceDriver::createValidationCacheEXT (VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache) const
+VkResult DeviceDriver::copyAccelerationStructureToMemoryKHR (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) const
 {
-       return m_vk.createValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache);
+       return m_vk.copyAccelerationStructureToMemoryKHR(device, deferredOperation, pInfo);
 }
 
-void DeviceDriver::destroyValidationCacheEXT (VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator) const
+void DeviceDriver::cmdCopyMemoryToAccelerationStructureKHR (VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) const
 {
-       m_vk.destroyValidationCacheEXT(device, validationCache, pAllocator);
+       m_vk.cmdCopyMemoryToAccelerationStructureKHR(commandBuffer, pInfo);
 }
 
-VkResult DeviceDriver::mergeValidationCachesEXT (VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches) const
+VkResult DeviceDriver::copyMemoryToAccelerationStructureKHR (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) const
 {
-       return m_vk.mergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches);
+       return m_vk.copyMemoryToAccelerationStructureKHR(device, deferredOperation, pInfo);
 }
 
-VkResult DeviceDriver::getValidationCacheDataEXT (VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData) const
+void DeviceDriver::cmdWriteAccelerationStructuresPropertiesKHR (VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery) const
 {
-       return m_vk.getValidationCacheDataEXT(device, validationCache, pDataSize, pData);
+       m_vk.cmdWriteAccelerationStructuresPropertiesKHR(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery);
 }
 
-void DeviceDriver::cmdBindShadingRateImageNV (VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout) const
+void DeviceDriver::cmdWriteAccelerationStructuresPropertiesNV (VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery) const
 {
-       m_vk.cmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout);
+       m_vk.cmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery);
 }
 
-void DeviceDriver::cmdSetViewportShadingRatePaletteNV (VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes) const
+void DeviceDriver::cmdBuildAccelerationStructureNV (VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset) const
 {
-       m_vk.cmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes);
+       m_vk.cmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset);
 }
 
-void DeviceDriver::cmdSetCoarseSampleOrderNV (VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) const
+VkResult DeviceDriver::writeAccelerationStructuresPropertiesKHR (VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride) const
 {
-       m_vk.cmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders);
+       return m_vk.writeAccelerationStructuresPropertiesKHR(device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride);
 }
 
-VkResult DeviceDriver::createAccelerationStructureNV (VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure) const
+void DeviceDriver::cmdTraceRaysKHR (VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth) const
 {
-       return m_vk.createAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure);
+       m_vk.cmdTraceRaysKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth);
 }
 
-void DeviceDriver::destroyAccelerationStructureNV (VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator) const
+void DeviceDriver::cmdTraceRaysNV (VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth) const
 {
-       m_vk.destroyAccelerationStructureNV(device, accelerationStructure, pAllocator);
+       m_vk.cmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth);
 }
 
-void DeviceDriver::getAccelerationStructureMemoryRequirementsNV (VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements) const
+VkResult DeviceDriver::getRayTracingShaderGroupHandlesKHR (VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData) const
 {
-       m_vk.getAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements);
+       return m_vk.getRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData);
 }
 
-VkResult DeviceDriver::bindAccelerationStructureMemoryNV (VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) const
+VkResult DeviceDriver::getRayTracingCaptureReplayShaderGroupHandlesKHR (VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData) const
 {
-       return m_vk.bindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos);
+       return m_vk.getRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData);
 }
 
-void DeviceDriver::cmdBuildAccelerationStructureNV (VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset) const
+VkResult DeviceDriver::getAccelerationStructureHandleNV (VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData) const
 {
-       m_vk.cmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset);
+       return m_vk.getAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData);
 }
 
-void DeviceDriver::cmdCopyAccelerationStructureNV (VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode) const
+VkResult DeviceDriver::createRayTracingPipelinesNV (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const
 {
-       m_vk.cmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode);
+       return m_vk.createRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
 }
 
-void DeviceDriver::cmdTraceRaysNV (VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth) const
+VkResult DeviceDriver::createRayTracingPipelinesKHR (VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const
 {
-       m_vk.cmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth);
+       return m_vk.createRayTracingPipelinesKHR(device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
 }
 
-VkResult DeviceDriver::createRayTracingPipelinesNV (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const
+void DeviceDriver::cmdTraceRaysIndirectKHR (VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress) const
 {
-       return m_vk.createRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
+       m_vk.cmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress);
 }
 
-VkResult DeviceDriver::getRayTracingShaderGroupHandlesKHR (VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData) const
+void DeviceDriver::cmdTraceRaysIndirect2KHR (VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress) const
 {
-       return m_vk.getRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData);
+       m_vk.cmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress);
 }
 
-VkResult DeviceDriver::getRayTracingShaderGroupHandlesNV (VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData) const
+void DeviceDriver::getDeviceAccelerationStructureCompatibilityKHR (VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility) const
 {
-       return m_vk.getRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData);
+       m_vk.getDeviceAccelerationStructureCompatibilityKHR(device, pVersionInfo, pCompatibility);
 }
 
-VkResult DeviceDriver::getAccelerationStructureHandleNV (VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData) const
+VkDeviceSize DeviceDriver::getRayTracingShaderGroupStackSizeKHR (VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader) const
 {
-       return m_vk.getAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData);
+       return m_vk.getRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader);
 }
 
-void DeviceDriver::cmdWriteAccelerationStructuresPropertiesNV (VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery) const
+void DeviceDriver::cmdSetRayTracingPipelineStackSizeKHR (VkCommandBuffer commandBuffer, uint32_t pipelineStackSize) const
 {
-       m_vk.cmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery);
+       m_vk.cmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize);
 }
 
-VkResult DeviceDriver::compileDeferredNV (VkDevice device, VkPipeline pipeline, uint32_t shader) const
+uint32_t DeviceDriver::getImageViewHandleNVX (VkDevice device, const VkImageViewHandleInfoNVX* pInfo) const
 {
-       return m_vk.compileDeferredNV(device, pipeline, shader);
+       return m_vk.getImageViewHandleNVX(device, pInfo);
 }
 
-VkResult DeviceDriver::getMemoryHostPointerPropertiesEXT (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) const
+VkResult DeviceDriver::getImageViewAddressNVX (VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties) const
 {
-       return m_vk.getMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
+       return m_vk.getImageViewAddressNVX(device, imageView, pProperties);
 }
 
-void DeviceDriver::cmdWriteBufferMarkerAMD (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker) const
+VkResult DeviceDriver::getDeviceGroupSurfacePresentModes2EXT (VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes) const
 {
-       m_vk.cmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker);
+       return m_vk.getDeviceGroupSurfacePresentModes2EXT(device, pSurfaceInfo, pModes);
 }
 
-VkResult DeviceDriver::getCalibratedTimestampsEXT (VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation) const
+VkResult DeviceDriver::acquireFullScreenExclusiveModeEXT (VkDevice device, VkSwapchainKHR swapchain) const
 {
-       return m_vk.getCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation);
+       return m_vk.acquireFullScreenExclusiveModeEXT(device, swapchain);
 }
 
-void DeviceDriver::cmdDrawMeshTasksNV (VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask) const
+VkResult DeviceDriver::releaseFullScreenExclusiveModeEXT (VkDevice device, VkSwapchainKHR swapchain) const
 {
-       m_vk.cmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask);
+       return m_vk.releaseFullScreenExclusiveModeEXT(device, swapchain);
 }
 
-void DeviceDriver::cmdDrawMeshTasksIndirectNV (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) const
+VkResult DeviceDriver::acquireProfilingLockKHR (VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo) const
 {
-       m_vk.cmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride);
+       return m_vk.acquireProfilingLockKHR(device, pInfo);
 }
 
-void DeviceDriver::cmdDrawMeshTasksIndirectCountNV (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const
+void DeviceDriver::releaseProfilingLockKHR (VkDevice device) const
 {
-       m_vk.cmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
+       m_vk.releaseProfilingLockKHR(device);
 }
 
-void DeviceDriver::cmdSetExclusiveScissorNV (VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors) const
+VkResult DeviceDriver::getImageDrmFormatModifierPropertiesEXT (VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties) const
 {
-       m_vk.cmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors);
+       return m_vk.getImageDrmFormatModifierPropertiesEXT(device, image, pProperties);
 }
 
-void DeviceDriver::cmdSetCheckpointNV (VkCommandBuffer commandBuffer, const void* pCheckpointMarker) const
+uint64_t DeviceDriver::getBufferOpaqueCaptureAddress (VkDevice device, const VkBufferDeviceAddressInfo* pInfo) const
 {
-       m_vk.cmdSetCheckpointNV(commandBuffer, pCheckpointMarker);
+       return m_vk.getBufferOpaqueCaptureAddress(device, pInfo);
 }
 
-void DeviceDriver::getQueueCheckpointDataNV (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData) const
+VkDeviceAddress DeviceDriver::getBufferDeviceAddress (VkDevice device, const VkBufferDeviceAddressInfo* pInfo) const
 {
-       m_vk.getQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData);
+       return m_vk.getBufferDeviceAddress(device, pInfo);
 }
 
 VkResult DeviceDriver::initializePerformanceApiINTEL (VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo) const
@@ -1499,224 +1454,224 @@ VkResult DeviceDriver::getPerformanceParameterINTEL (VkDevice device, VkPerforma
        return m_vk.getPerformanceParameterINTEL(device, parameter, pValue);
 }
 
-void DeviceDriver::setLocalDimmingAMD (VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable) const
+uint64_t DeviceDriver::getDeviceMemoryOpaqueCaptureAddress (VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) const
 {
-       m_vk.setLocalDimmingAMD(device, swapChain, localDimmingEnable);
+       return m_vk.getDeviceMemoryOpaqueCaptureAddress(device, pInfo);
 }
 
-VkDeviceAddress DeviceDriver::getBufferDeviceAddressEXT (VkDevice device, const VkBufferDeviceAddressInfo* pInfo) const
+VkResult DeviceDriver::getPipelineExecutablePropertiesKHR (VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties) const
 {
-       return m_vk.getBufferDeviceAddressEXT(device, pInfo);
+       return m_vk.getPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties);
 }
 
-void DeviceDriver::cmdSetLineStippleEXT (VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern) const
+VkResult DeviceDriver::getPipelineExecutableStatisticsKHR (VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics) const
 {
-       m_vk.cmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern);
+       return m_vk.getPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics);
 }
 
-void DeviceDriver::getGeneratedCommandsMemoryRequirementsNV (VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements) const
+VkResult DeviceDriver::getPipelineExecutableInternalRepresentationsKHR (VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) const
 {
-       m_vk.getGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements);
+       return m_vk.getPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations);
 }
 
-void DeviceDriver::cmdPreprocessGeneratedCommandsNV (VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) const
+void DeviceDriver::cmdSetLineStippleEXT (VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern) const
 {
-       m_vk.cmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo);
+       m_vk.cmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern);
 }
 
-void DeviceDriver::cmdExecuteGeneratedCommandsNV (VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) const
+VkResult DeviceDriver::createAccelerationStructureKHR (VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure) const
 {
-       m_vk.cmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo);
+       return m_vk.createAccelerationStructureKHR(device, pCreateInfo, pAllocator, pAccelerationStructure);
 }
 
-void DeviceDriver::cmdBindPipelineShaderGroupNV (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex) const
+void DeviceDriver::cmdBuildAccelerationStructuresKHR (VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) const
 {
-       m_vk.cmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex);
+       m_vk.cmdBuildAccelerationStructuresKHR(commandBuffer, infoCount, pInfos, ppBuildRangeInfos);
 }
 
-VkResult DeviceDriver::createIndirectCommandsLayoutNV (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout) const
+void DeviceDriver::cmdBuildAccelerationStructuresIndirectKHR (VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const* ppMaxPrimitiveCounts) const
 {
-       return m_vk.createIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
+       m_vk.cmdBuildAccelerationStructuresIndirectKHR(commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts);
 }
 
-void DeviceDriver::destroyIndirectCommandsLayoutNV (VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) const
+VkResult DeviceDriver::buildAccelerationStructuresKHR (VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) const
 {
-       m_vk.destroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator);
+       return m_vk.buildAccelerationStructuresKHR(device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos);
 }
 
-void DeviceDriver::cmdSetFragmentShadingRateEnumNV (VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const
+VkDeviceAddress DeviceDriver::getAccelerationStructureDeviceAddressKHR (VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo) const
 {
-       m_vk.cmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps);
+       return m_vk.getAccelerationStructureDeviceAddressKHR(device, pInfo);
 }
 
-void DeviceDriver::getImageSubresourceLayout2EXT (VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout) const
+VkResult DeviceDriver::createDeferredOperationKHR (VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation) const
 {
-       m_vk.getImageSubresourceLayout2EXT(device, image, pSubresource, pLayout);
+       return m_vk.createDeferredOperationKHR(device, pAllocator, pDeferredOperation);
 }
 
-void DeviceDriver::cmdSetVertexInputEXT (VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions) const
+void DeviceDriver::destroyDeferredOperationKHR (VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator) const
 {
-       m_vk.cmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions);
+       m_vk.destroyDeferredOperationKHR(device, operation, pAllocator);
 }
 
-VkResult DeviceDriver::getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI (VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize) const
+uint32_t DeviceDriver::getDeferredOperationMaxConcurrencyKHR (VkDevice device, VkDeferredOperationKHR operation) const
 {
-       return m_vk.getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize);
+       return m_vk.getDeferredOperationMaxConcurrencyKHR(device, operation);
 }
 
-void DeviceDriver::cmdSubpassShadingHUAWEI (VkCommandBuffer commandBuffer) const
+VkResult DeviceDriver::getDeferredOperationResultKHR (VkDevice device, VkDeferredOperationKHR operation) const
 {
-       m_vk.cmdSubpassShadingHUAWEI(commandBuffer);
+       return m_vk.getDeferredOperationResultKHR(device, operation);
 }
 
-void DeviceDriver::cmdBindInvocationMaskHUAWEI (VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout) const
+VkResult DeviceDriver::deferredOperationJoinKHR (VkDevice device, VkDeferredOperationKHR operation) const
 {
-       m_vk.cmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout);
+       return m_vk.deferredOperationJoinKHR(device, operation);
 }
 
-VkResult DeviceDriver::getMemoryRemoteAddressNV (VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress) const
+void DeviceDriver::cmdSetCullMode (VkCommandBuffer commandBuffer, VkCullModeFlags cullMode) const
 {
-       return m_vk.getMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress);
+       m_vk.cmdSetCullMode(commandBuffer, cullMode);
 }
 
-VkResult DeviceDriver::getPipelinePropertiesEXT (VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties) const
+void DeviceDriver::cmdSetFrontFace (VkCommandBuffer commandBuffer, VkFrontFace frontFace) const
 {
-       return m_vk.getPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties);
+       m_vk.cmdSetFrontFace(commandBuffer, frontFace);
 }
 
-void DeviceDriver::cmdSetPatchControlPointsEXT (VkCommandBuffer commandBuffer, uint32_t patchControlPoints) const
+void DeviceDriver::cmdSetPrimitiveTopology (VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology) const
 {
-       m_vk.cmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints);
+       m_vk.cmdSetPrimitiveTopology(commandBuffer, primitiveTopology);
 }
 
-void DeviceDriver::cmdSetLogicOpEXT (VkCommandBuffer commandBuffer, VkLogicOp logicOp) const
+void DeviceDriver::cmdSetViewportWithCount (VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports) const
 {
-       m_vk.cmdSetLogicOpEXT(commandBuffer, logicOp);
+       m_vk.cmdSetViewportWithCount(commandBuffer, viewportCount, pViewports);
 }
 
-void DeviceDriver::cmdSetColorWriteEnableEXT (VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables) const
+void DeviceDriver::cmdSetScissorWithCount (VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors) const
 {
-       m_vk.cmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables);
+       m_vk.cmdSetScissorWithCount(commandBuffer, scissorCount, pScissors);
 }
 
-void DeviceDriver::cmdDrawMultiEXT (VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride) const
+void DeviceDriver::cmdBindVertexBuffers2 (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides) const
 {
-       m_vk.cmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride);
+       m_vk.cmdBindVertexBuffers2(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides);
 }
 
-void DeviceDriver::cmdDrawMultiIndexedEXT (VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawIndexedInfoEXT* pIndexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride, const int32_t* pVertexOffset) const
+void DeviceDriver::cmdSetDepthTestEnable (VkCommandBuffer commandBuffer, VkBool32 depthTestEnable) const
 {
-       m_vk.cmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset);
+       m_vk.cmdSetDepthTestEnable(commandBuffer, depthTestEnable);
 }
 
-void DeviceDriver::setDeviceMemoryPriorityEXT (VkDevice device, VkDeviceMemory memory, float priority) const
+void DeviceDriver::cmdSetDepthWriteEnable (VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable) const
 {
-       m_vk.setDeviceMemoryPriorityEXT(device, memory, priority);
+       m_vk.cmdSetDepthWriteEnable(commandBuffer, depthWriteEnable);
 }
 
-void DeviceDriver::getDescriptorSetLayoutHostMappingInfoVALVE (VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping) const
+void DeviceDriver::cmdSetDepthCompareOp (VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp) const
 {
-       m_vk.getDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping);
+       m_vk.cmdSetDepthCompareOp(commandBuffer, depthCompareOp);
 }
 
-void DeviceDriver::getDescriptorSetHostMappingVALVE (VkDevice device, VkDescriptorSet descriptorSet, void** ppData) const
+void DeviceDriver::cmdSetDepthBoundsTestEnable (VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable) const
 {
-       m_vk.getDescriptorSetHostMappingVALVE(device, descriptorSet, ppData);
+       m_vk.cmdSetDepthBoundsTestEnable(commandBuffer, depthBoundsTestEnable);
 }
 
-void DeviceDriver::getShaderModuleIdentifierEXT (VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier) const
+void DeviceDriver::cmdSetStencilTestEnable (VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable) const
 {
-       m_vk.getShaderModuleIdentifierEXT(device, shaderModule, pIdentifier);
+       m_vk.cmdSetStencilTestEnable(commandBuffer, stencilTestEnable);
 }
 
-void DeviceDriver::getShaderModuleCreateInfoIdentifierEXT (VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier) const
+void DeviceDriver::cmdSetStencilOp (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp) const
 {
-       m_vk.getShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier);
+       m_vk.cmdSetStencilOp(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp);
 }
 
-VkResult DeviceDriver::getFramebufferTilePropertiesQCOM (VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties) const
+void DeviceDriver::cmdSetPatchControlPointsEXT (VkCommandBuffer commandBuffer, uint32_t patchControlPoints) const
 {
-       return m_vk.getFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties);
+       m_vk.cmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints);
 }
 
-VkResult DeviceDriver::getDynamicRenderingTilePropertiesQCOM (VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties) const
+void DeviceDriver::cmdSetRasterizerDiscardEnable (VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable) const
 {
-       return m_vk.getDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties);
+       m_vk.cmdSetRasterizerDiscardEnable(commandBuffer, rasterizerDiscardEnable);
 }
 
-VkResult DeviceDriver::createAccelerationStructureKHR (VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure) const
+void DeviceDriver::cmdSetDepthBiasEnable (VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable) const
 {
-       return m_vk.createAccelerationStructureKHR(device, pCreateInfo, pAllocator, pAccelerationStructure);
+       m_vk.cmdSetDepthBiasEnable(commandBuffer, depthBiasEnable);
 }
 
-void DeviceDriver::destroyAccelerationStructureKHR (VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator) const
+void DeviceDriver::cmdSetLogicOpEXT (VkCommandBuffer commandBuffer, VkLogicOp logicOp) const
 {
-       m_vk.destroyAccelerationStructureKHR(device, accelerationStructure, pAllocator);
+       m_vk.cmdSetLogicOpEXT(commandBuffer, logicOp);
 }
 
-void DeviceDriver::cmdBuildAccelerationStructuresKHR (VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) const
+void DeviceDriver::cmdSetPrimitiveRestartEnable (VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable) const
 {
-       m_vk.cmdBuildAccelerationStructuresKHR(commandBuffer, infoCount, pInfos, ppBuildRangeInfos);
+       m_vk.cmdSetPrimitiveRestartEnable(commandBuffer, primitiveRestartEnable);
 }
 
-void DeviceDriver::cmdBuildAccelerationStructuresIndirectKHR (VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const* ppMaxPrimitiveCounts) const
+VkResult DeviceDriver::createPrivateDataSlot (VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot) const
 {
-       m_vk.cmdBuildAccelerationStructuresIndirectKHR(commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts);
+       return m_vk.createPrivateDataSlot(device, pCreateInfo, pAllocator, pPrivateDataSlot);
 }
 
-VkResult DeviceDriver::buildAccelerationStructuresKHR (VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) const
+void DeviceDriver::destroyPrivateDataSlot (VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator) const
 {
-       return m_vk.buildAccelerationStructuresKHR(device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos);
+       m_vk.destroyPrivateDataSlot(device, privateDataSlot, pAllocator);
 }
 
-VkResult DeviceDriver::copyAccelerationStructureKHR (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo) const
+VkResult DeviceDriver::setPrivateData (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data) const
 {
-       return m_vk.copyAccelerationStructureKHR(device, deferredOperation, pInfo);
+       return m_vk.setPrivateData(device, objectType, objectHandle, privateDataSlot, data);
 }
 
-VkResult DeviceDriver::copyAccelerationStructureToMemoryKHR (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) const
+void DeviceDriver::getPrivateData (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData) const
 {
-       return m_vk.copyAccelerationStructureToMemoryKHR(device, deferredOperation, pInfo);
+       m_vk.getPrivateData(device, objectType, objectHandle, privateDataSlot, pData);
 }
 
-VkResult DeviceDriver::copyMemoryToAccelerationStructureKHR (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) const
+void DeviceDriver::cmdCopyBuffer2 (VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo) const
 {
-       return m_vk.copyMemoryToAccelerationStructureKHR(device, deferredOperation, pInfo);
+       m_vk.cmdCopyBuffer2(commandBuffer, pCopyBufferInfo);
 }
 
-VkResult DeviceDriver::writeAccelerationStructuresPropertiesKHR (VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride) const
+void DeviceDriver::cmdCopyImage2 (VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo) const
 {
-       return m_vk.writeAccelerationStructuresPropertiesKHR(device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride);
+       m_vk.cmdCopyImage2(commandBuffer, pCopyImageInfo);
 }
 
-void DeviceDriver::cmdCopyAccelerationStructureKHR (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo) const
+void DeviceDriver::cmdBlitImage2 (VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo) const
 {
-       m_vk.cmdCopyAccelerationStructureKHR(commandBuffer, pInfo);
+       m_vk.cmdBlitImage2(commandBuffer, pBlitImageInfo);
 }
 
-void DeviceDriver::cmdCopyAccelerationStructureToMemoryKHR (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) const
+void DeviceDriver::cmdCopyBufferToImage2 (VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) const
 {
-       m_vk.cmdCopyAccelerationStructureToMemoryKHR(commandBuffer, pInfo);
+       m_vk.cmdCopyBufferToImage2(commandBuffer, pCopyBufferToImageInfo);
 }
 
-void DeviceDriver::cmdCopyMemoryToAccelerationStructureKHR (VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) const
+void DeviceDriver::cmdCopyImageToBuffer2 (VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) const
 {
-       m_vk.cmdCopyMemoryToAccelerationStructureKHR(commandBuffer, pInfo);
+       m_vk.cmdCopyImageToBuffer2(commandBuffer, pCopyImageToBufferInfo);
 }
 
-VkDeviceAddress DeviceDriver::getAccelerationStructureDeviceAddressKHR (VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo) const
+void DeviceDriver::cmdResolveImage2 (VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo) const
 {
-       return m_vk.getAccelerationStructureDeviceAddressKHR(device, pInfo);
+       m_vk.cmdResolveImage2(commandBuffer, pResolveImageInfo);
 }
 
-void DeviceDriver::cmdWriteAccelerationStructuresPropertiesKHR (VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery) const
+void DeviceDriver::cmdSetFragmentShadingRateKHR (VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const
 {
-       m_vk.cmdWriteAccelerationStructuresPropertiesKHR(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery);
+       m_vk.cmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps);
 }
 
-void DeviceDriver::getDeviceAccelerationStructureCompatibilityKHR (VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility) const
+void DeviceDriver::cmdSetFragmentShadingRateEnumNV (VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const
 {
-       m_vk.getDeviceAccelerationStructureCompatibilityKHR(device, pVersionInfo, pCompatibility);
+       m_vk.cmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps);
 }
 
 void DeviceDriver::getAccelerationStructureBuildSizesKHR (VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) const
@@ -1724,64 +1679,64 @@ void DeviceDriver::getAccelerationStructureBuildSizesKHR (VkDevice device, VkAcc
        m_vk.getAccelerationStructureBuildSizesKHR(device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo);
 }
 
-void DeviceDriver::cmdTraceRaysKHR (VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth) const
+void DeviceDriver::cmdSetVertexInputEXT (VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions) const
 {
-       m_vk.cmdTraceRaysKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth);
+       m_vk.cmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions);
 }
 
-VkResult DeviceDriver::createRayTracingPipelinesKHR (VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const
+void DeviceDriver::cmdSetColorWriteEnableEXT (VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables) const
 {
-       return m_vk.createRayTracingPipelinesKHR(device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
+       m_vk.cmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables);
 }
 
-VkResult DeviceDriver::getRayTracingCaptureReplayShaderGroupHandlesKHR (VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData) const
+void DeviceDriver::cmdSetEvent2 (VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo) const
 {
-       return m_vk.getRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData);
+       m_vk.cmdSetEvent2(commandBuffer, event, pDependencyInfo);
 }
 
-void DeviceDriver::cmdTraceRaysIndirectKHR (VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress) const
+void DeviceDriver::cmdResetEvent2 (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask) const
 {
-       m_vk.cmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress);
+       m_vk.cmdResetEvent2(commandBuffer, event, stageMask);
 }
 
-VkDeviceSize DeviceDriver::getRayTracingShaderGroupStackSizeKHR (VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader) const
+void DeviceDriver::cmdWaitEvents2 (VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos) const
 {
-       return m_vk.getRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader);
+       m_vk.cmdWaitEvents2(commandBuffer, eventCount, pEvents, pDependencyInfos);
 }
 
-void DeviceDriver::cmdSetRayTracingPipelineStackSizeKHR (VkCommandBuffer commandBuffer, uint32_t pipelineStackSize) const
+void DeviceDriver::cmdPipelineBarrier2 (VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo) const
 {
-       m_vk.cmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize);
+       m_vk.cmdPipelineBarrier2(commandBuffer, pDependencyInfo);
 }
 
-VkResult DeviceDriver::getAndroidHardwareBufferPropertiesANDROID (VkDevice device, const struct pt::AndroidHardwareBufferPtr buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties) const
+VkResult DeviceDriver::queueSubmit2 (VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence) const
 {
-       return m_vk.getAndroidHardwareBufferPropertiesANDROID(device, buffer, pProperties);
+       return m_vk.queueSubmit2(queue, submitCount, pSubmits, fence);
 }
 
-VkResult DeviceDriver::getMemoryAndroidHardwareBufferANDROID (VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct pt::AndroidHardwareBufferPtr* pBuffer) const
+void DeviceDriver::cmdWriteTimestamp2 (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query) const
 {
-       return m_vk.getMemoryAndroidHardwareBufferANDROID(device, pInfo, pBuffer);
+       m_vk.cmdWriteTimestamp2(commandBuffer, stage, queryPool, query);
 }
 
-VkResult DeviceDriver::createVideoSessionKHR (VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession) const
+void DeviceDriver::cmdWriteBufferMarker2AMD (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker) const
 {
-       return m_vk.createVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession);
+       m_vk.cmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker);
 }
 
-void DeviceDriver::destroyVideoSessionKHR (VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator) const
+void DeviceDriver::getQueueCheckpointData2NV (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData) const
 {
-       m_vk.destroyVideoSessionKHR(device, videoSession, pAllocator);
+       m_vk.getQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData);
 }
 
-VkResult DeviceDriver::getVideoSessionMemoryRequirementsKHR (VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pVideoSessionMemoryRequirementsCount, VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements) const
+VkResult DeviceDriver::createVideoSessionKHR (VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession) const
 {
-       return m_vk.getVideoSessionMemoryRequirementsKHR(device, videoSession, pVideoSessionMemoryRequirementsCount, pVideoSessionMemoryRequirements);
+       return m_vk.createVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession);
 }
 
-VkResult DeviceDriver::bindVideoSessionMemoryKHR (VkDevice device, VkVideoSessionKHR videoSession, uint32_t videoSessionBindMemoryCount, const VkVideoBindMemoryKHR* pVideoSessionBindMemories) const
+void DeviceDriver::destroyVideoSessionKHR (VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator) const
 {
-       return m_vk.bindVideoSessionMemoryKHR(device, videoSession, videoSessionBindMemoryCount, pVideoSessionBindMemories);
+       m_vk.destroyVideoSessionKHR(device, videoSession, pAllocator);
 }
 
 VkResult DeviceDriver::createVideoSessionParametersKHR (VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters) const
@@ -1799,14 +1754,24 @@ void DeviceDriver::destroyVideoSessionParametersKHR (VkDevice device, VkVideoSes
        m_vk.destroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator);
 }
 
-void DeviceDriver::cmdBeginVideoCodingKHR (VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo) const
+VkResult DeviceDriver::getVideoSessionMemoryRequirementsKHR (VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pVideoSessionMemoryRequirementsCount, VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements) const
 {
-       m_vk.cmdBeginVideoCodingKHR(commandBuffer, pBeginInfo);
+       return m_vk.getVideoSessionMemoryRequirementsKHR(device, videoSession, pVideoSessionMemoryRequirementsCount, pVideoSessionMemoryRequirements);
 }
 
-void DeviceDriver::cmdEndVideoCodingKHR (VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo) const
+VkResult DeviceDriver::bindVideoSessionMemoryKHR (VkDevice device, VkVideoSessionKHR videoSession, uint32_t videoSessionBindMemoryCount, const VkVideoBindMemoryKHR* pVideoSessionBindMemories) const
 {
-       m_vk.cmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo);
+       return m_vk.bindVideoSessionMemoryKHR(device, videoSession, videoSessionBindMemoryCount, pVideoSessionBindMemories);
+}
+
+void DeviceDriver::cmdDecodeVideoKHR (VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pFrameInfo) const
+{
+       m_vk.cmdDecodeVideoKHR(commandBuffer, pFrameInfo);
+}
+
+void DeviceDriver::cmdBeginVideoCodingKHR (VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo) const
+{
+       m_vk.cmdBeginVideoCodingKHR(commandBuffer, pBeginInfo);
 }
 
 void DeviceDriver::cmdControlVideoCodingKHR (VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo) const
@@ -1814,9 +1779,9 @@ void DeviceDriver::cmdControlVideoCodingKHR (VkCommandBuffer commandBuffer, cons
        m_vk.cmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo);
 }
 
-void DeviceDriver::cmdDecodeVideoKHR (VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pFrameInfo) const
+void DeviceDriver::cmdEndVideoCodingKHR (VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo) const
 {
-       m_vk.cmdDecodeVideoKHR(commandBuffer, pFrameInfo);
+       m_vk.cmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo);
 }
 
 void DeviceDriver::cmdEncodeVideoKHR (VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo) const
@@ -1824,34 +1789,44 @@ void DeviceDriver::cmdEncodeVideoKHR (VkCommandBuffer commandBuffer, const VkVid
        m_vk.cmdEncodeVideoKHR(commandBuffer, pEncodeInfo);
 }
 
-VkResult DeviceDriver::getMemoryZirconHandleFUCHSIA (VkDevice device, const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, pt::zx_handle_t* pZirconHandle) const
+VkResult DeviceDriver::createCuModuleNVX (VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule) const
 {
-       return m_vk.getMemoryZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle);
+       return m_vk.createCuModuleNVX(device, pCreateInfo, pAllocator, pModule);
 }
 
-VkResult DeviceDriver::getMemoryZirconHandlePropertiesFUCHSIA (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties) const
+VkResult DeviceDriver::createCuFunctionNVX (VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction) const
 {
-       return m_vk.getMemoryZirconHandlePropertiesFUCHSIA(device, handleType, zirconHandle, pMemoryZirconHandleProperties);
+       return m_vk.createCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction);
 }
 
-VkResult DeviceDriver::importSemaphoreZirconHandleFUCHSIA (VkDevice device, const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo) const
+void DeviceDriver::destroyCuModuleNVX (VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator) const
 {
-       return m_vk.importSemaphoreZirconHandleFUCHSIA(device, pImportSemaphoreZirconHandleInfo);
+       m_vk.destroyCuModuleNVX(device, module, pAllocator);
 }
 
-VkResult DeviceDriver::getSemaphoreZirconHandleFUCHSIA (VkDevice device, const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, pt::zx_handle_t* pZirconHandle) const
+void DeviceDriver::destroyCuFunctionNVX (VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator) const
 {
-       return m_vk.getSemaphoreZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle);
+       m_vk.destroyCuFunctionNVX(device, function, pAllocator);
 }
 
-VkResult DeviceDriver::createBufferCollectionFUCHSIA (VkDevice device, const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferCollectionFUCHSIA* pCollection) const
+void DeviceDriver::cmdCuLaunchKernelNVX (VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo) const
 {
-       return m_vk.createBufferCollectionFUCHSIA(device, pCreateInfo, pAllocator, pCollection);
+       m_vk.cmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo);
 }
 
-VkResult DeviceDriver::setBufferCollectionImageConstraintsFUCHSIA (VkDevice device, VkBufferCollectionFUCHSIA collection, const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo) const
+void DeviceDriver::setDeviceMemoryPriorityEXT (VkDevice device, VkDeviceMemory memory, float priority) const
 {
-       return m_vk.setBufferCollectionImageConstraintsFUCHSIA(device, collection, pImageConstraintsInfo);
+       m_vk.setDeviceMemoryPriorityEXT(device, memory, priority);
+}
+
+VkResult DeviceDriver::waitForPresentKHR (VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout) const
+{
+       return m_vk.waitForPresentKHR(device, swapchain, presentId, timeout);
+}
+
+VkResult DeviceDriver::createBufferCollectionFUCHSIA (VkDevice device, const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferCollectionFUCHSIA* pCollection) const
+{
+       return m_vk.createBufferCollectionFUCHSIA(device, pCreateInfo, pAllocator, pCollection);
 }
 
 VkResult DeviceDriver::setBufferCollectionBufferConstraintsFUCHSIA (VkDevice device, VkBufferCollectionFUCHSIA collection, const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo) const
@@ -1859,6 +1834,11 @@ VkResult DeviceDriver::setBufferCollectionBufferConstraintsFUCHSIA (VkDevice dev
        return m_vk.setBufferCollectionBufferConstraintsFUCHSIA(device, collection, pBufferConstraintsInfo);
 }
 
+VkResult DeviceDriver::setBufferCollectionImageConstraintsFUCHSIA (VkDevice device, VkBufferCollectionFUCHSIA collection, const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo) const
+{
+       return m_vk.setBufferCollectionImageConstraintsFUCHSIA(device, collection, pImageConstraintsInfo);
+}
+
 void DeviceDriver::destroyBufferCollectionFUCHSIA (VkDevice device, VkBufferCollectionFUCHSIA collection, const VkAllocationCallbacks* pAllocator) const
 {
        m_vk.destroyBufferCollectionFUCHSIA(device, collection, pAllocator);
@@ -1869,57 +1849,57 @@ VkResult DeviceDriver::getBufferCollectionPropertiesFUCHSIA (VkDevice device, Vk
        return m_vk.getBufferCollectionPropertiesFUCHSIA(device, collection, pProperties);
 }
 
-void DeviceDriver::exportMetalObjectsEXT (VkDevice device, VkExportMetalObjectsInfoEXT* pMetalObjectsInfo) const
+void DeviceDriver::cmdBeginRendering (VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo) const
 {
-       m_vk.exportMetalObjectsEXT(device, pMetalObjectsInfo);
+       m_vk.cmdBeginRendering(commandBuffer, pRenderingInfo);
 }
 
-VkResult DeviceDriver::getMemoryWin32HandleKHR (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const
+void DeviceDriver::cmdEndRendering (VkCommandBuffer commandBuffer) const
 {
-       return m_vk.getMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
+       m_vk.cmdEndRendering(commandBuffer);
 }
 
-VkResult DeviceDriver::getMemoryWin32HandlePropertiesKHR (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) const
+void DeviceDriver::getDescriptorSetLayoutHostMappingInfoVALVE (VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping) const
 {
-       return m_vk.getMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
+       m_vk.getDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping);
 }
 
-VkResult DeviceDriver::importSemaphoreWin32HandleKHR (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) const
+void DeviceDriver::getDescriptorSetHostMappingVALVE (VkDevice device, VkDescriptorSet descriptorSet, void** ppData) const
 {
-       return m_vk.importSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
+       m_vk.getDescriptorSetHostMappingVALVE(device, descriptorSet, ppData);
 }
 
-VkResult DeviceDriver::getSemaphoreWin32HandleKHR (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const
+void DeviceDriver::getShaderModuleIdentifierEXT (VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier) const
 {
-       return m_vk.getSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
+       m_vk.getShaderModuleIdentifierEXT(device, shaderModule, pIdentifier);
 }
 
-VkResult DeviceDriver::importFenceWin32HandleKHR (VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) const
+void DeviceDriver::getShaderModuleCreateInfoIdentifierEXT (VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier) const
 {
-       return m_vk.importFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
+       m_vk.getShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier);
 }
 
-VkResult DeviceDriver::getFenceWin32HandleKHR (VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const
+void DeviceDriver::getImageSubresourceLayout2EXT (VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout) const
 {
-       return m_vk.getFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
+       m_vk.getImageSubresourceLayout2EXT(device, image, pSubresource, pLayout);
 }
 
-VkResult DeviceDriver::getMemoryWin32HandleNV (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle) const
+VkResult DeviceDriver::getPipelinePropertiesEXT (VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties) const
 {
-       return m_vk.getMemoryWin32HandleNV(device, memory, handleType, pHandle);
+       return m_vk.getPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties);
 }
 
-VkResult DeviceDriver::acquireFullScreenExclusiveModeEXT (VkDevice device, VkSwapchainKHR swapchain) const
+void DeviceDriver::exportMetalObjectsEXT (VkDevice device, VkExportMetalObjectsInfoEXT* pMetalObjectsInfo) const
 {
-       return m_vk.acquireFullScreenExclusiveModeEXT(device, swapchain);
+       m_vk.exportMetalObjectsEXT(device, pMetalObjectsInfo);
 }
 
-VkResult DeviceDriver::releaseFullScreenExclusiveModeEXT (VkDevice device, VkSwapchainKHR swapchain) const
+VkResult DeviceDriver::getFramebufferTilePropertiesQCOM (VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties) const
 {
-       return m_vk.releaseFullScreenExclusiveModeEXT(device, swapchain);
+       return m_vk.getFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties);
 }
 
-VkResult DeviceDriver::getDeviceGroupSurfacePresentModes2EXT (VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes) const
+VkResult DeviceDriver::getDynamicRenderingTilePropertiesQCOM (VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties) const
 {
-       return m_vk.getDeviceGroupSurfacePresentModes2EXT(device, pSurfaceInfo, pModes);
+       return m_vk.getDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties);
 }
index 1f354ab..d8d4c5f 100644 (file)
@@ -5,7 +5,7 @@
 
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTest16BitStorageFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDeviceGeneratedCommandsFeaturesNV (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -35,17 +35,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTest16BitStorageFeatures (Con
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevice16BitStorageFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess),
-               FEATURE_ITEM (VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess),
-               FEATURE_ITEM (VkPhysicalDevice16BitStorageFeatures, storagePushConstant16),
-               FEATURE_ITEM (VkPhysicalDevice16BitStorageFeatures, storageInputOutput16),
+               FEATURE_ITEM (VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, deviceGeneratedCommands),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 4, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -55,7 +52,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTest16BitStorageFeatures (Con
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMultiviewFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPrivateDataFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -85,16 +82,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMultiviewFeatures (Contex
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceMultiviewFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePrivateDataFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceMultiviewFeatures, multiview),
-               FEATURE_ITEM (VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader),
-               FEATURE_ITEM (VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader),
+               FEATURE_ITEM (VkPhysicalDevicePrivateDataFeatures, privateData),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePrivateDataFeatures*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -152,7 +147,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVariablePointersFeatures
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestProtectedMemoryFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMultiviewFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -182,14 +177,16 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestProtectedMemoryFeatures (
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceProtectedMemoryFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceMultiviewFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory),
+               FEATURE_ITEM (VkPhysicalDeviceMultiviewFeatures, multiview),
+               FEATURE_ITEM (VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader),
+               FEATURE_ITEM (VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -199,7 +196,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestProtectedMemoryFeatures (
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestSamplerYcbcrConversionFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPresentIdFeaturesKHR (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -229,13 +226,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestSamplerYcbcrConversionFea
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceSamplerYcbcrConversionFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePresentIdFeaturesKHR>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion),
+               FEATURE_ITEM (VkPhysicalDevicePresentIdFeaturesKHR, presentId),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePresentIdFeaturesKHR*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -246,7 +243,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestSamplerYcbcrConversionFea
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderDrawParametersFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPresentWaitFeaturesKHR (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -276,13 +273,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderDrawParametersFeatu
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderDrawParametersFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePresentWaitFeaturesKHR>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceShaderDrawParametersFeatures, shaderDrawParameters),
+               FEATURE_ITEM (VkPhysicalDevicePresentWaitFeaturesKHR, presentWait),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePresentWaitFeaturesKHR*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -293,7 +290,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderDrawParametersFeatu
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVulkan11Features (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTest16BitStorageFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -323,25 +320,17 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVulkan11Features (Context
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceVulkan11Features>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevice16BitStorageFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, storageBuffer16BitAccess),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, uniformAndStorageBuffer16BitAccess),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, storagePushConstant16),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, storageInputOutput16),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, multiview),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, multiviewGeometryShader),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, multiviewTessellationShader),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, variablePointersStorageBuffer),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, variablePointers),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, protectedMemory),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, samplerYcbcrConversion),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, shaderDrawParameters),
+               FEATURE_ITEM (VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess),
+               FEATURE_ITEM (VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess),
+               FEATURE_ITEM (VkPhysicalDevice16BitStorageFeatures, storagePushConstant16),
+               FEATURE_ITEM (VkPhysicalDevice16BitStorageFeatures, storageInputOutput16),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceVulkan11Features*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 12, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, DE_NULL, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 4, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -351,7 +340,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVulkan11Features (Context
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVulkan12Features (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderSubgroupExtendedTypesFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -381,60 +370,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVulkan12Features (Context
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceVulkan12Features>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, samplerMirrorClampToEdge),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, drawIndirectCount),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, storageBuffer8BitAccess),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, uniformAndStorageBuffer8BitAccess),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, storagePushConstant8),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderBufferInt64Atomics),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderSharedInt64Atomics),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderFloat16),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderInt8),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, descriptorIndexing),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderInputAttachmentArrayDynamicIndexing),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderUniformTexelBufferArrayDynamicIndexing),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderStorageTexelBufferArrayDynamicIndexing),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderUniformBufferArrayNonUniformIndexing),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderSampledImageArrayNonUniformIndexing),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderStorageBufferArrayNonUniformIndexing),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderStorageImageArrayNonUniformIndexing),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderInputAttachmentArrayNonUniformIndexing),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderUniformTexelBufferArrayNonUniformIndexing),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderStorageTexelBufferArrayNonUniformIndexing),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, descriptorBindingUniformBufferUpdateAfterBind),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, descriptorBindingSampledImageUpdateAfterBind),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, descriptorBindingStorageImageUpdateAfterBind),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, descriptorBindingStorageBufferUpdateAfterBind),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, descriptorBindingUniformTexelBufferUpdateAfterBind),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, descriptorBindingStorageTexelBufferUpdateAfterBind),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, descriptorBindingUpdateUnusedWhilePending),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, descriptorBindingPartiallyBound),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, descriptorBindingVariableDescriptorCount),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, runtimeDescriptorArray),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, samplerFilterMinmax),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, scalarBlockLayout),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, imagelessFramebuffer),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, uniformBufferStandardLayout),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderSubgroupExtendedTypes),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, separateDepthStencilLayouts),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, hostQueryReset),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, timelineSemaphore),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, bufferDeviceAddress),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, bufferDeviceAddressCaptureReplay),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, bufferDeviceAddressMultiDevice),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, vulkanMemoryModel),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, vulkanMemoryModelDeviceScope),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, vulkanMemoryModelAvailabilityVisibilityChains),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderOutputViewportIndex),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderOutputLayer),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, subgroupBroadcastDynamicId),
+               FEATURE_ITEM (VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, shaderSubgroupExtendedTypes),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceVulkan12Features*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 47, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, DE_NULL, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -444,7 +387,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVulkan12Features (Context
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTest8BitStorageFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestSamplerYcbcrConversionFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -474,16 +417,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTest8BitStorageFeatures (Cont
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevice8BitStorageFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceSamplerYcbcrConversionFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDevice8BitStorageFeatures, storageBuffer8BitAccess),
-               FEATURE_ITEM (VkPhysicalDevice8BitStorageFeatures, uniformAndStorageBuffer8BitAccess),
-               FEATURE_ITEM (VkPhysicalDevice8BitStorageFeatures, storagePushConstant8),
+               FEATURE_ITEM (VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -493,7 +434,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTest8BitStorageFeatures (Cont
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderAtomicInt64Features (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestProtectedMemoryFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -523,15 +464,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderAtomicInt64Features
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderAtomicInt64Features>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceProtectedMemoryFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicInt64Features, shaderBufferInt64Atomics),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicInt64Features, shaderSharedInt64Atomics),
+               FEATURE_ITEM (VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -541,7 +481,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderAtomicInt64Features
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderFloat16Int8Features (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestBlendOperationAdvancedFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -571,15 +511,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderFloat16Int8Features
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderFloat16Int8Features>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceShaderFloat16Int8Features, shaderFloat16),
-               FEATURE_ITEM (VkPhysicalDeviceShaderFloat16Int8Features, shaderInt8),
+               FEATURE_ITEM (VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -589,7 +528,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderFloat16Int8Features
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDescriptorIndexingFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMultiDrawFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -619,33 +558,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDescriptorIndexingFeature
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceDescriptorIndexingFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceMultiDrawFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, shaderInputAttachmentArrayDynamicIndexing),
-               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, shaderUniformTexelBufferArrayDynamicIndexing),
-               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, shaderStorageTexelBufferArrayDynamicIndexing),
-               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, shaderUniformBufferArrayNonUniformIndexing),
-               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, shaderSampledImageArrayNonUniformIndexing),
-               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, shaderStorageBufferArrayNonUniformIndexing),
-               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, shaderStorageImageArrayNonUniformIndexing),
-               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, shaderInputAttachmentArrayNonUniformIndexing),
-               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, shaderUniformTexelBufferArrayNonUniformIndexing),
-               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, shaderStorageTexelBufferArrayNonUniformIndexing),
-               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingUniformBufferUpdateAfterBind),
-               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingSampledImageUpdateAfterBind),
-               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingStorageImageUpdateAfterBind),
-               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingStorageBufferUpdateAfterBind),
-               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingUniformTexelBufferUpdateAfterBind),
-               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingStorageTexelBufferUpdateAfterBind),
-               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingUpdateUnusedWhilePending),
-               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingPartiallyBound),
-               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingVariableDescriptorCount),
-               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, runtimeDescriptorArray),
+               FEATURE_ITEM (VkPhysicalDeviceMultiDrawFeaturesEXT, multiDraw),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 20, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceMultiDrawFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -655,7 +575,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDescriptorIndexingFeature
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestScalarBlockLayoutFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestInlineUniformBlockFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -685,14 +605,15 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestScalarBlockLayoutFeatures
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceScalarBlockLayoutFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceInlineUniformBlockFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceScalarBlockLayoutFeatures, scalarBlockLayout),
+               FEATURE_ITEM (VkPhysicalDeviceInlineUniformBlockFeatures, inlineUniformBlock),
+               FEATURE_ITEM (VkPhysicalDeviceInlineUniformBlockFeatures, descriptorBindingInlineUniformBlockUpdateAfterBind),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeatures*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -702,7 +623,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestScalarBlockLayoutFeatures
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVulkanMemoryModelFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMaintenance4Features (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -732,16 +653,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVulkanMemoryModelFeatures
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceVulkanMemoryModelFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceMaintenance4Features>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceVulkanMemoryModelFeatures, vulkanMemoryModel),
-               FEATURE_ITEM (VkPhysicalDeviceVulkanMemoryModelFeatures, vulkanMemoryModelDeviceScope),
-               FEATURE_ITEM (VkPhysicalDeviceVulkanMemoryModelFeatures, vulkanMemoryModelAvailabilityVisibilityChains),
+               FEATURE_ITEM (VkPhysicalDeviceMaintenance4Features, maintenance4),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceMaintenance4Features*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -751,7 +670,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVulkanMemoryModelFeatures
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImagelessFramebufferFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderDrawParametersFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -781,13 +700,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImagelessFramebufferFeatu
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceImagelessFramebufferFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderDrawParametersFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceImagelessFramebufferFeatures, imagelessFramebuffer),
+               FEATURE_ITEM (VkPhysicalDeviceShaderDrawParametersFeatures, shaderDrawParameters),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -798,7 +717,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImagelessFramebufferFeatu
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestUniformBufferStandardLayoutFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderFloat16Int8Features (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -828,14 +747,15 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestUniformBufferStandardLayo
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceUniformBufferStandardLayoutFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderFloat16Int8Features>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceUniformBufferStandardLayoutFeatures, uniformBufferStandardLayout),
+               FEATURE_ITEM (VkPhysicalDeviceShaderFloat16Int8Features, shaderFloat16),
+               FEATURE_ITEM (VkPhysicalDeviceShaderFloat16Int8Features, shaderInt8),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -845,7 +765,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestUniformBufferStandardLayo
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderSubgroupExtendedTypesFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestHostQueryResetFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -875,13 +795,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderSubgroupExtendedTyp
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceHostQueryResetFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, shaderSubgroupExtendedTypes),
+               FEATURE_ITEM (VkPhysicalDeviceHostQueryResetFeatures, hostQueryReset),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -892,7 +812,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderSubgroupExtendedTyp
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestSeparateDepthStencilLayoutsFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestGlobalPriorityQueryFeaturesKHR (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -922,13 +842,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestSeparateDepthStencilLayou
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, separateDepthStencilLayouts),
+               FEATURE_ITEM (VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, globalPriorityQuery),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -939,7 +859,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestSeparateDepthStencilLayou
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestHostQueryResetFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDeviceMemoryReportFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -969,13 +889,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestHostQueryResetFeatures (C
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceHostQueryResetFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceHostQueryResetFeatures, hostQueryReset),
+               FEATURE_ITEM (VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, deviceMemoryReport),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -986,7 +906,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestHostQueryResetFeatures (C
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestTimelineSemaphoreFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDescriptorIndexingFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -1016,14 +936,33 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestTimelineSemaphoreFeatures
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceTimelineSemaphoreFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceDescriptorIndexingFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceTimelineSemaphoreFeatures, timelineSemaphore),
+               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, shaderInputAttachmentArrayDynamicIndexing),
+               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, shaderUniformTexelBufferArrayDynamicIndexing),
+               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, shaderStorageTexelBufferArrayDynamicIndexing),
+               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, shaderUniformBufferArrayNonUniformIndexing),
+               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, shaderSampledImageArrayNonUniformIndexing),
+               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, shaderStorageBufferArrayNonUniformIndexing),
+               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, shaderStorageImageArrayNonUniformIndexing),
+               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, shaderInputAttachmentArrayNonUniformIndexing),
+               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, shaderUniformTexelBufferArrayNonUniformIndexing),
+               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, shaderStorageTexelBufferArrayNonUniformIndexing),
+               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingUniformBufferUpdateAfterBind),
+               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingSampledImageUpdateAfterBind),
+               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingStorageImageUpdateAfterBind),
+               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingStorageBufferUpdateAfterBind),
+               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingUniformTexelBufferUpdateAfterBind),
+               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingStorageTexelBufferUpdateAfterBind),
+               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingUpdateUnusedWhilePending),
+               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingPartiallyBound),
+               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingVariableDescriptorCount),
+               FEATURE_ITEM (VkPhysicalDeviceDescriptorIndexingFeatures, runtimeDescriptorArray),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 20, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -1033,7 +972,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestTimelineSemaphoreFeatures
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestBufferDeviceAddressFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestTimelineSemaphoreFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -1063,16 +1002,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestBufferDeviceAddressFeatur
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceBufferDeviceAddressFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceTimelineSemaphoreFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceBufferDeviceAddressFeatures, bufferDeviceAddress),
-               FEATURE_ITEM (VkPhysicalDeviceBufferDeviceAddressFeatures, bufferDeviceAddressCaptureReplay),
-               FEATURE_ITEM (VkPhysicalDeviceBufferDeviceAddressFeatures, bufferDeviceAddressMultiDevice),
+               FEATURE_ITEM (VkPhysicalDeviceTimelineSemaphoreFeatures, timelineSemaphore),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -1082,7 +1019,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestBufferDeviceAddressFeatur
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVulkan13Features (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTest8BitStorageFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -1112,28 +1049,16 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVulkan13Features (Context
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceVulkan13Features>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevice8BitStorageFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, robustImageAccess),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, inlineUniformBlock),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, descriptorBindingInlineUniformBlockUpdateAfterBind),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, pipelineCreationCacheControl),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, privateData),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, shaderDemoteToHelperInvocation),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, shaderTerminateInvocation),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, subgroupSizeControl),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, computeFullSubgroups),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, synchronization2),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, textureCompressionASTC_HDR),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, shaderZeroInitializeWorkgroupMemory),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, dynamicRendering),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, shaderIntegerDotProduct),
-               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, maintenance4),
+               FEATURE_ITEM (VkPhysicalDevice8BitStorageFeatures, storageBuffer8BitAccess),
+               FEATURE_ITEM (VkPhysicalDevice8BitStorageFeatures, uniformAndStorageBuffer8BitAccess),
+               FEATURE_ITEM (VkPhysicalDevice8BitStorageFeatures, storagePushConstant8),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceVulkan13Features*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 15, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, DE_NULL, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -1143,7 +1068,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVulkan13Features (Context
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderTerminateInvocationFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestConditionalRenderingFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -1173,14 +1098,15 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderTerminateInvocation
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderTerminateInvocationFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceConditionalRenderingFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceShaderTerminateInvocationFeatures, shaderTerminateInvocation),
+               FEATURE_ITEM (VkPhysicalDeviceConditionalRenderingFeaturesEXT, conditionalRendering),
+               FEATURE_ITEM (VkPhysicalDeviceConditionalRenderingFeaturesEXT, inheritedConditionalRendering),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderTerminateInvocationFeatures*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -1190,7 +1116,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderTerminateInvocation
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderDemoteToHelperInvocationFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVulkanMemoryModelFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -1220,14 +1146,16 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderDemoteToHelperInvoc
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceVulkanMemoryModelFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, shaderDemoteToHelperInvocation),
+               FEATURE_ITEM (VkPhysicalDeviceVulkanMemoryModelFeatures, vulkanMemoryModel),
+               FEATURE_ITEM (VkPhysicalDeviceVulkanMemoryModelFeatures, vulkanMemoryModelDeviceScope),
+               FEATURE_ITEM (VkPhysicalDeviceVulkanMemoryModelFeatures, vulkanMemoryModelAvailabilityVisibilityChains),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -1237,7 +1165,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderDemoteToHelperInvoc
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPrivateDataFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderAtomicInt64Features (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -1267,14 +1195,15 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPrivateDataFeatures (Cont
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePrivateDataFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderAtomicInt64Features>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDevicePrivateDataFeatures, privateData),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicInt64Features, shaderBufferInt64Atomics),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicInt64Features, shaderSharedInt64Atomics),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePrivateDataFeatures*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -1284,7 +1213,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPrivateDataFeatures (Cont
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPipelineCreationCacheControlFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderAtomicFloatFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -1314,14 +1243,25 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPipelineCreationCacheCont
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePipelineCreationCacheControlFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDevicePipelineCreationCacheControlFeatures, pipelineCreationCacheControl),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, shaderBufferFloat32Atomics),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, shaderBufferFloat32AtomicAdd),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, shaderBufferFloat64Atomics),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, shaderBufferFloat64AtomicAdd),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, shaderSharedFloat32Atomics),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, shaderSharedFloat32AtomicAdd),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, shaderSharedFloat64Atomics),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, shaderSharedFloat64AtomicAdd),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, shaderImageFloat32Atomics),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, shaderImageFloat32AtomicAdd),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, sparseImageFloat32Atomics),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, sparseImageFloat32AtomicAdd),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeatures*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 12, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -1331,7 +1271,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPipelineCreationCacheCont
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestSynchronization2Features (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderAtomicFloat2FeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -1361,14 +1301,25 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestSynchronization2Features
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceSynchronization2Features>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceSynchronization2Features, synchronization2),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderBufferFloat16Atomics),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderBufferFloat16AtomicAdd),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderBufferFloat16AtomicMinMax),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderBufferFloat32AtomicMinMax),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderBufferFloat64AtomicMinMax),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderSharedFloat16Atomics),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderSharedFloat16AtomicAdd),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderSharedFloat16AtomicMinMax),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderSharedFloat32AtomicMinMax),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderSharedFloat64AtomicMinMax),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderImageFloat32AtomicMinMax),
+               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, sparseImageFloat32AtomicMinMax),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceSynchronization2Features*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 12, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -1378,7 +1329,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestSynchronization2Features
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestZeroInitializeWorkgroupMemoryFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVertexAttributeDivisorFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -1408,14 +1359,15 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestZeroInitializeWorkgroupMe
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures, shaderZeroInitializeWorkgroupMemory),
+               FEATURE_ITEM (VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, vertexAttributeInstanceRateDivisor),
+               FEATURE_ITEM (VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, vertexAttributeInstanceRateZeroDivisor),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -1425,7 +1377,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestZeroInitializeWorkgroupMe
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImageRobustnessFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestASTCDecodeFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -1455,13 +1407,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImageRobustnessFeatures (
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceImageRobustnessFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceASTCDecodeFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceImageRobustnessFeatures, robustImageAccess),
+               FEATURE_ITEM (VkPhysicalDeviceASTCDecodeFeaturesEXT, decodeModeSharedExponent),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeatures*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceASTCDecodeFeaturesEXT*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -1472,7 +1424,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImageRobustnessFeatures (
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestSubgroupSizeControlFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestTransformFeedbackFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -1502,14 +1454,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestSubgroupSizeControlFeatur
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceSubgroupSizeControlFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceTransformFeedbackFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceSubgroupSizeControlFeatures, subgroupSizeControl),
-               FEATURE_ITEM (VkPhysicalDeviceSubgroupSizeControlFeatures, computeFullSubgroups),
+               FEATURE_ITEM (VkPhysicalDeviceTransformFeedbackFeaturesEXT, transformFeedback),
+               FEATURE_ITEM (VkPhysicalDeviceTransformFeedbackFeaturesEXT, geometryStreams),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeatures*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -1520,7 +1472,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestSubgroupSizeControlFeatur
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestInlineUniformBlockFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRepresentativeFragmentTestFeaturesNV (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -1550,15 +1502,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestInlineUniformBlockFeature
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceInlineUniformBlockFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceInlineUniformBlockFeatures, inlineUniformBlock),
-               FEATURE_ITEM (VkPhysicalDeviceInlineUniformBlockFeatures, descriptorBindingInlineUniformBlockUpdateAfterBind),
+               FEATURE_ITEM (VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, representativeFragmentTest),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeatures*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -1568,7 +1519,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestInlineUniformBlockFeature
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestTextureCompressionASTCHDRFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestExclusiveScissorFeaturesNV (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -1598,13 +1549,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestTextureCompressionASTCHDR
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceTextureCompressionASTCHDRFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceExclusiveScissorFeaturesNV>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceTextureCompressionASTCHDRFeatures, textureCompressionASTC_HDR),
+               FEATURE_ITEM (VkPhysicalDeviceExclusiveScissorFeaturesNV, exclusiveScissor),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeatures*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceExclusiveScissorFeaturesNV*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -1615,7 +1566,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestTextureCompressionASTCHDR
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDynamicRenderingFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestCornerSampledImageFeaturesNV (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -1645,13 +1596,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDynamicRenderingFeatures
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceDynamicRenderingFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceCornerSampledImageFeaturesNV>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceDynamicRenderingFeatures, dynamicRendering),
+               FEATURE_ITEM (VkPhysicalDeviceCornerSampledImageFeaturesNV, cornerSampledImage),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceDynamicRenderingFeatures*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceCornerSampledImageFeaturesNV*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -1662,7 +1613,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDynamicRenderingFeatures
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderIntegerDotProductFeatures (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestComputeShaderDerivativesFeaturesNV (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -1692,14 +1643,15 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderIntegerDotProductFe
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderIntegerDotProductFeatures>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceShaderIntegerDotProductFeatures, shaderIntegerDotProduct),
+               FEATURE_ITEM (VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, computeDerivativeGroupQuads),
+               FEATURE_ITEM (VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, computeDerivativeGroupLinear),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductFeatures*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -1709,7 +1661,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderIntegerDotProductFe
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMaintenance4Features (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderImageFootprintFeaturesNV (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -1739,13 +1691,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMaintenance4Features (Con
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceMaintenance4Features>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderImageFootprintFeaturesNV>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceMaintenance4Features, maintenance4),
+               FEATURE_ITEM (VkPhysicalDeviceShaderImageFootprintFeaturesNV, imageFootprint),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceMaintenance4Features*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -1756,7 +1708,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMaintenance4Features (Con
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPerformanceQueryFeaturesKHR (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDedicatedAllocationImageAliasingFeaturesNV (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -1786,15 +1738,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPerformanceQueryFeaturesK
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePerformanceQueryFeaturesKHR>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDevicePerformanceQueryFeaturesKHR, performanceCounterQueryPools),
-               FEATURE_ITEM (VkPhysicalDevicePerformanceQueryFeaturesKHR, performanceCounterMultipleQueryPools),
+               FEATURE_ITEM (VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, dedicatedAllocationImageAliasing),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePerformanceQueryFeaturesKHR*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -1804,7 +1755,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPerformanceQueryFeaturesK
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderClockFeaturesKHR (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShadingRateImageFeaturesNV (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -1834,14 +1785,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderClockFeaturesKHR (C
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderClockFeaturesKHR>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShadingRateImageFeaturesNV>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceShaderClockFeaturesKHR, shaderSubgroupClock),
-               FEATURE_ITEM (VkPhysicalDeviceShaderClockFeaturesKHR, shaderDeviceClock),
+               FEATURE_ITEM (VkPhysicalDeviceShadingRateImageFeaturesNV, shadingRateImage),
+               FEATURE_ITEM (VkPhysicalDeviceShadingRateImageFeaturesNV, shadingRateCoarseSampleOrder),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderClockFeaturesKHR*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShadingRateImageFeaturesNV*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -1852,7 +1803,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderClockFeaturesKHR (C
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestGlobalPriorityQueryFeaturesKHR (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestInvocationMaskFeaturesHUAWEI (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -1882,13 +1833,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestGlobalPriorityQueryFeatur
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR, globalPriorityQuery),
+               FEATURE_ITEM (VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, invocationMask),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -1899,7 +1850,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestGlobalPriorityQueryFeatur
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentShadingRateFeaturesKHR (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMeshShaderFeaturesNV (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -1929,16 +1880,15 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentShadingRateFeatur
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceFragmentShadingRateFeaturesKHR>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceMeshShaderFeaturesNV>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceFragmentShadingRateFeaturesKHR, pipelineFragmentShadingRate),
-               FEATURE_ITEM (VkPhysicalDeviceFragmentShadingRateFeaturesKHR, primitiveFragmentShadingRate),
-               FEATURE_ITEM (VkPhysicalDeviceFragmentShadingRateFeaturesKHR, attachmentFragmentShadingRate),
+               FEATURE_ITEM (VkPhysicalDeviceMeshShaderFeaturesNV, taskShader),
+               FEATURE_ITEM (VkPhysicalDeviceMeshShaderFeaturesNV, meshShader),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -1948,7 +1898,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentShadingRateFeatur
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPresentWaitFeaturesKHR (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestAccelerationStructureFeaturesKHR (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -1978,14 +1928,18 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPresentWaitFeaturesKHR (C
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePresentWaitFeaturesKHR>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceAccelerationStructureFeaturesKHR>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDevicePresentWaitFeaturesKHR, presentWait),
+               FEATURE_ITEM (VkPhysicalDeviceAccelerationStructureFeaturesKHR, accelerationStructure),
+               FEATURE_ITEM (VkPhysicalDeviceAccelerationStructureFeaturesKHR, accelerationStructureCaptureReplay),
+               FEATURE_ITEM (VkPhysicalDeviceAccelerationStructureFeaturesKHR, accelerationStructureIndirectBuild),
+               FEATURE_ITEM (VkPhysicalDeviceAccelerationStructureFeaturesKHR, accelerationStructureHostCommands),
+               FEATURE_ITEM (VkPhysicalDeviceAccelerationStructureFeaturesKHR, descriptorBindingAccelerationStructureUpdateAfterBind),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePresentWaitFeaturesKHR*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceAccelerationStructureFeaturesKHR*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 5, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -1995,7 +1949,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPresentWaitFeaturesKHR (C
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPipelineExecutablePropertiesFeaturesKHR (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRayTracingPipelineFeaturesKHR (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -2025,14 +1979,18 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPipelineExecutablePropert
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceRayTracingPipelineFeaturesKHR>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, pipelineExecutableInfo),
+               FEATURE_ITEM (VkPhysicalDeviceRayTracingPipelineFeaturesKHR, rayTracingPipeline),
+               FEATURE_ITEM (VkPhysicalDeviceRayTracingPipelineFeaturesKHR, rayTracingPipelineShaderGroupHandleCaptureReplay),
+               FEATURE_ITEM (VkPhysicalDeviceRayTracingPipelineFeaturesKHR, rayTracingPipelineShaderGroupHandleCaptureReplayMixed),
+               FEATURE_ITEM (VkPhysicalDeviceRayTracingPipelineFeaturesKHR, rayTracingPipelineTraceRaysIndirect),
+               FEATURE_ITEM (VkPhysicalDeviceRayTracingPipelineFeaturesKHR, rayTraversalPrimitiveCulling),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceRayTracingPipelineFeaturesKHR*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 5, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -2042,7 +2000,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPipelineExecutablePropert
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPresentIdFeaturesKHR (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRayQueryFeaturesKHR (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -2072,13 +2030,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPresentIdFeaturesKHR (Con
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePresentIdFeaturesKHR>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceRayQueryFeaturesKHR>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDevicePresentIdFeaturesKHR, presentId),
+               FEATURE_ITEM (VkPhysicalDeviceRayQueryFeaturesKHR, rayQuery),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePresentIdFeaturesKHR*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceRayQueryFeaturesKHR*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -2089,7 +2047,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPresentIdFeaturesKHR (Con
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentShaderBarycentricFeaturesKHR (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRayTracingMaintenance1FeaturesKHR (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -2119,14 +2077,15 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentShaderBarycentric
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, fragmentShaderBarycentric),
+               FEATURE_ITEM (VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, rayTracingMaintenance1),
+               FEATURE_ITEM (VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, rayTracingPipelineTraceRaysIndirect2),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -2136,7 +2095,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentShaderBarycentric
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderSubgroupUniformControlFlowFeaturesKHR (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentDensityMapFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -2166,14 +2125,16 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderSubgroupUniformCont
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, shaderSubgroupUniformControlFlow),
+               FEATURE_ITEM (VkPhysicalDeviceFragmentDensityMapFeaturesEXT, fragmentDensityMap),
+               FEATURE_ITEM (VkPhysicalDeviceFragmentDensityMapFeaturesEXT, fragmentDensityMapDynamic),
+               FEATURE_ITEM (VkPhysicalDeviceFragmentDensityMapFeaturesEXT, fragmentDensityMapNonSubsampledImages),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -2183,7 +2144,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderSubgroupUniformCont
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestWorkgroupMemoryExplicitLayoutFeaturesKHR (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentDensityMap2FeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -2213,17 +2174,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestWorkgroupMemoryExplicitLa
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, workgroupMemoryExplicitLayout),
-               FEATURE_ITEM (VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, workgroupMemoryExplicitLayoutScalarBlockLayout),
-               FEATURE_ITEM (VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, workgroupMemoryExplicitLayout8BitAccess),
-               FEATURE_ITEM (VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, workgroupMemoryExplicitLayout16BitAccess),
+               FEATURE_ITEM (VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, fragmentDensityMapDeferred),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 4, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -2233,7 +2191,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestWorkgroupMemoryExplicitLa
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRayTracingMaintenance1FeaturesKHR (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentDensityMapOffsetFeaturesQCOM (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -2263,15 +2221,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRayTracingMaintenance1Fea
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, rayTracingMaintenance1),
-               FEATURE_ITEM (VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, rayTracingPipelineTraceRaysIndirect2),
+               FEATURE_ITEM (VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, fragmentDensityMapOffset),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -2281,7 +2238,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRayTracingMaintenance1Fea
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestTransformFeedbackFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestScalarBlockLayoutFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -2311,15 +2268,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestTransformFeedbackFeatures
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceTransformFeedbackFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceScalarBlockLayoutFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceTransformFeedbackFeaturesEXT, transformFeedback),
-               FEATURE_ITEM (VkPhysicalDeviceTransformFeedbackFeaturesEXT, geometryStreams),
+               FEATURE_ITEM (VkPhysicalDeviceScalarBlockLayoutFeatures, scalarBlockLayout),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -2329,7 +2285,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestTransformFeedbackFeatures
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestCornerSampledImageFeaturesNV (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestUniformBufferStandardLayoutFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -2359,13 +2315,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestCornerSampledImageFeature
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceCornerSampledImageFeaturesNV>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceUniformBufferStandardLayoutFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceCornerSampledImageFeaturesNV, cornerSampledImage),
+               FEATURE_ITEM (VkPhysicalDeviceUniformBufferStandardLayoutFeatures, uniformBufferStandardLayout),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceCornerSampledImageFeaturesNV*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -2376,7 +2332,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestCornerSampledImageFeature
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestASTCDecodeFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDepthClipEnableFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -2406,13 +2362,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestASTCDecodeFeaturesEXT (Co
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceASTCDecodeFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceDepthClipEnableFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceASTCDecodeFeaturesEXT, decodeModeSharedExponent),
+               FEATURE_ITEM (VkPhysicalDeviceDepthClipEnableFeaturesEXT, depthClipEnable),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceASTCDecodeFeaturesEXT*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -2423,7 +2379,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestASTCDecodeFeaturesEXT (Co
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPipelineRobustnessFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMemoryPriorityFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -2453,13 +2409,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPipelineRobustnessFeature
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePipelineRobustnessFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceMemoryPriorityFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDevicePipelineRobustnessFeaturesEXT, pipelineRobustness),
+               FEATURE_ITEM (VkPhysicalDeviceMemoryPriorityFeaturesEXT, memoryPriority),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePipelineRobustnessFeaturesEXT*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceMemoryPriorityFeaturesEXT*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -2470,7 +2426,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPipelineRobustnessFeature
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestConditionalRenderingFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPageableDeviceLocalMemoryFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -2500,15 +2456,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestConditionalRenderingFeatu
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceConditionalRenderingFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceConditionalRenderingFeaturesEXT, conditionalRendering),
-               FEATURE_ITEM (VkPhysicalDeviceConditionalRenderingFeaturesEXT, inheritedConditionalRendering),
+               FEATURE_ITEM (VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, pageableDeviceLocalMemory),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -2518,7 +2473,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestConditionalRenderingFeatu
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDepthClipEnableFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestBufferDeviceAddressFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -2548,14 +2503,16 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDepthClipEnableFeaturesEX
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceDepthClipEnableFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceBufferDeviceAddressFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceDepthClipEnableFeaturesEXT, depthClipEnable),
+               FEATURE_ITEM (VkPhysicalDeviceBufferDeviceAddressFeatures, bufferDeviceAddress),
+               FEATURE_ITEM (VkPhysicalDeviceBufferDeviceAddressFeatures, bufferDeviceAddressCaptureReplay),
+               FEATURE_ITEM (VkPhysicalDeviceBufferDeviceAddressFeatures, bufferDeviceAddressMultiDevice),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -2565,7 +2522,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDepthClipEnableFeaturesEX
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestBlendOperationAdvancedFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestBufferDeviceAddressFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -2595,14 +2552,16 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestBlendOperationAdvancedFea
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations),
+               FEATURE_ITEM (VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, bufferDeviceAddress),
+               FEATURE_ITEM (VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, bufferDeviceAddressCaptureReplay),
+               FEATURE_ITEM (VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, bufferDeviceAddressMultiDevice),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -2612,7 +2571,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestBlendOperationAdvancedFea
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderSMBuiltinsFeaturesNV (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImagelessFramebufferFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -2642,13 +2601,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderSMBuiltinsFeaturesN
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceImagelessFramebufferFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, shaderSMBuiltins),
+               FEATURE_ITEM (VkPhysicalDeviceImagelessFramebufferFeatures, imagelessFramebuffer),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -2659,7 +2618,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderSMBuiltinsFeaturesN
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShadingRateImageFeaturesNV (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestTextureCompressionASTCHDRFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -2689,15 +2648,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShadingRateImageFeaturesN
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShadingRateImageFeaturesNV>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceTextureCompressionASTCHDRFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceShadingRateImageFeaturesNV, shadingRateImage),
-               FEATURE_ITEM (VkPhysicalDeviceShadingRateImageFeaturesNV, shadingRateCoarseSampleOrder),
+               FEATURE_ITEM (VkPhysicalDeviceTextureCompressionASTCHDRFeatures, textureCompressionASTC_HDR),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShadingRateImageFeaturesNV*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeatures*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -2707,7 +2665,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShadingRateImageFeaturesN
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRepresentativeFragmentTestFeaturesNV (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestCooperativeMatrixFeaturesNV (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -2737,14 +2695,15 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRepresentativeFragmentTes
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceCooperativeMatrixFeaturesNV>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, representativeFragmentTest),
+               FEATURE_ITEM (VkPhysicalDeviceCooperativeMatrixFeaturesNV, cooperativeMatrix),
+               FEATURE_ITEM (VkPhysicalDeviceCooperativeMatrixFeaturesNV, cooperativeMatrixRobustBufferAccess),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesNV*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -2754,7 +2713,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRepresentativeFragmentTes
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVertexAttributeDivisorFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestYcbcrImageArraysFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -2784,15 +2743,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVertexAttributeDivisorFea
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, vertexAttributeInstanceRateDivisor),
-               FEATURE_ITEM (VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, vertexAttributeInstanceRateZeroDivisor),
+               FEATURE_ITEM (VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, ycbcrImageArrays),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -2802,7 +2760,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVertexAttributeDivisorFea
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestComputeShaderDerivativesFeaturesNV (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPerformanceQueryFeaturesKHR (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -2832,14 +2790,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestComputeShaderDerivativesF
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePerformanceQueryFeaturesKHR>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, computeDerivativeGroupQuads),
-               FEATURE_ITEM (VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, computeDerivativeGroupLinear),
+               FEATURE_ITEM (VkPhysicalDevicePerformanceQueryFeaturesKHR, performanceCounterQueryPools),
+               FEATURE_ITEM (VkPhysicalDevicePerformanceQueryFeaturesKHR, performanceCounterMultipleQueryPools),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePerformanceQueryFeaturesKHR*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -2850,7 +2808,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestComputeShaderDerivativesF
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMeshShaderFeaturesNV (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestCoverageReductionModeFeaturesNV (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -2880,15 +2838,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMeshShaderFeaturesNV (Con
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceMeshShaderFeaturesNV>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceCoverageReductionModeFeaturesNV>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceMeshShaderFeaturesNV, taskShader),
-               FEATURE_ITEM (VkPhysicalDeviceMeshShaderFeaturesNV, meshShader),
+               FEATURE_ITEM (VkPhysicalDeviceCoverageReductionModeFeaturesNV, coverageReductionMode),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceCoverageReductionModeFeaturesNV*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -2898,7 +2855,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMeshShaderFeaturesNV (Con
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderImageFootprintFeaturesNV (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderIntegerFunctions2FeaturesINTEL (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -2928,13 +2885,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderImageFootprintFeatu
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderImageFootprintFeaturesNV>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceShaderImageFootprintFeaturesNV, imageFootprint),
+               FEATURE_ITEM (VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, shaderIntegerFunctions2),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -2945,7 +2902,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderImageFootprintFeatu
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestExclusiveScissorFeaturesNV (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderClockFeaturesKHR (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -2975,14 +2932,15 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestExclusiveScissorFeaturesN
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceExclusiveScissorFeaturesNV>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderClockFeaturesKHR>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceExclusiveScissorFeaturesNV, exclusiveScissor),
+               FEATURE_ITEM (VkPhysicalDeviceShaderClockFeaturesKHR, shaderSubgroupClock),
+               FEATURE_ITEM (VkPhysicalDeviceShaderClockFeaturesKHR, shaderDeviceClock),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceExclusiveScissorFeaturesNV*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderClockFeaturesKHR*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -2992,7 +2950,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestExclusiveScissorFeaturesN
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderIntegerFunctions2FeaturesINTEL (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestIndexTypeUint8FeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -3022,13 +2980,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderIntegerFunctions2Fe
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, shaderIntegerFunctions2),
+               FEATURE_ITEM (VkPhysicalDeviceIndexTypeUint8FeaturesEXT, indexTypeUint8),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -3039,7 +2997,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderIntegerFunctions2Fe
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentDensityMapFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderSMBuiltinsFeaturesNV (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -3069,16 +3027,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentDensityMapFeature
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceFragmentDensityMapFeaturesEXT, fragmentDensityMap),
-               FEATURE_ITEM (VkPhysicalDeviceFragmentDensityMapFeaturesEXT, fragmentDensityMapDynamic),
-               FEATURE_ITEM (VkPhysicalDeviceFragmentDensityMapFeaturesEXT, fragmentDensityMapNonSubsampledImages),
+               FEATURE_ITEM (VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, shaderSMBuiltins),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -3088,7 +3044,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentDensityMapFeature
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestCoherentMemoryFeaturesAMD (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentShaderInterlockFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -3118,14 +3074,16 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestCoherentMemoryFeaturesAMD
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceCoherentMemoryFeaturesAMD>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceCoherentMemoryFeaturesAMD, deviceCoherentMemory),
+               FEATURE_ITEM (VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, fragmentShaderSampleInterlock),
+               FEATURE_ITEM (VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, fragmentShaderPixelInterlock),
+               FEATURE_ITEM (VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, fragmentShaderShadingRateInterlock),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceCoherentMemoryFeaturesAMD*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -3135,7 +3093,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestCoherentMemoryFeaturesAMD
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderImageAtomicInt64FeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestSeparateDepthStencilLayoutsFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -3165,15 +3123,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderImageAtomicInt64Fea
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, shaderImageInt64Atomics),
-               FEATURE_ITEM (VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, sparseImageInt64Atomics),
+               FEATURE_ITEM (VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, separateDepthStencilLayouts),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -3183,7 +3140,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderImageAtomicInt64Fea
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMemoryPriorityFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPrimitiveTopologyListRestartFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -3213,14 +3170,15 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMemoryPriorityFeaturesEXT
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceMemoryPriorityFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceMemoryPriorityFeaturesEXT, memoryPriority),
+               FEATURE_ITEM (VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, primitiveTopologyListRestart),
+               FEATURE_ITEM (VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, primitiveTopologyPatchListRestart),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceMemoryPriorityFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -3230,7 +3188,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMemoryPriorityFeaturesEXT
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDedicatedAllocationImageAliasingFeaturesNV (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPipelineExecutablePropertiesFeaturesKHR (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -3260,13 +3218,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDedicatedAllocationImageA
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, dedicatedAllocationImageAliasing),
+               FEATURE_ITEM (VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, pipelineExecutableInfo),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -3277,7 +3235,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDedicatedAllocationImageA
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestBufferDeviceAddressFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderDemoteToHelperInvocationFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -3307,16 +3265,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestBufferDeviceAddressFeatur
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, bufferDeviceAddress),
-               FEATURE_ITEM (VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, bufferDeviceAddressCaptureReplay),
-               FEATURE_ITEM (VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, bufferDeviceAddressMultiDevice),
+               FEATURE_ITEM (VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, shaderDemoteToHelperInvocation),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -3326,7 +3282,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestBufferDeviceAddressFeatur
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestCooperativeMatrixFeaturesNV (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestTexelBufferAlignmentFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -3356,15 +3312,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestCooperativeMatrixFeatures
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceCooperativeMatrixFeaturesNV>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceCooperativeMatrixFeaturesNV, cooperativeMatrix),
-               FEATURE_ITEM (VkPhysicalDeviceCooperativeMatrixFeaturesNV, cooperativeMatrixRobustBufferAccess),
+               FEATURE_ITEM (VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, texelBufferAlignment),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesNV*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -3374,7 +3329,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestCooperativeMatrixFeatures
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestCoverageReductionModeFeaturesNV (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestSubgroupSizeControlFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -3404,14 +3359,15 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestCoverageReductionModeFeat
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceCoverageReductionModeFeaturesNV>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceSubgroupSizeControlFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceCoverageReductionModeFeaturesNV, coverageReductionMode),
+               FEATURE_ITEM (VkPhysicalDeviceSubgroupSizeControlFeatures, subgroupSizeControl),
+               FEATURE_ITEM (VkPhysicalDeviceSubgroupSizeControlFeatures, computeFullSubgroups),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceCoverageReductionModeFeaturesNV*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeatures*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -3421,7 +3377,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestCoverageReductionModeFeat
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentShaderInterlockFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestLineRasterizationFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -3451,16 +3407,19 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentShaderInterlockFe
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceLineRasterizationFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, fragmentShaderSampleInterlock),
-               FEATURE_ITEM (VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, fragmentShaderPixelInterlock),
-               FEATURE_ITEM (VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, fragmentShaderShadingRateInterlock),
+               FEATURE_ITEM (VkPhysicalDeviceLineRasterizationFeaturesEXT, rectangularLines),
+               FEATURE_ITEM (VkPhysicalDeviceLineRasterizationFeaturesEXT, bresenhamLines),
+               FEATURE_ITEM (VkPhysicalDeviceLineRasterizationFeaturesEXT, smoothLines),
+               FEATURE_ITEM (VkPhysicalDeviceLineRasterizationFeaturesEXT, stippledRectangularLines),
+               FEATURE_ITEM (VkPhysicalDeviceLineRasterizationFeaturesEXT, stippledBresenhamLines),
+               FEATURE_ITEM (VkPhysicalDeviceLineRasterizationFeaturesEXT, stippledSmoothLines),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 6, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -3470,7 +3429,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentShaderInterlockFe
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestYcbcrImageArraysFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPipelineCreationCacheControlFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -3500,13 +3459,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestYcbcrImageArraysFeaturesE
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePipelineCreationCacheControlFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, ycbcrImageArrays),
+               FEATURE_ITEM (VkPhysicalDevicePipelineCreationCacheControlFeatures, pipelineCreationCacheControl),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeatures*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -3517,7 +3476,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestYcbcrImageArraysFeaturesE
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestProvokingVertexFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVulkan11Features (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -3547,15 +3506,25 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestProvokingVertexFeaturesEX
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceProvokingVertexFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceVulkan11Features>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceProvokingVertexFeaturesEXT, provokingVertexLast),
-               FEATURE_ITEM (VkPhysicalDeviceProvokingVertexFeaturesEXT, transformFeedbackPreservesProvokingVertex),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, storageBuffer16BitAccess),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, uniformAndStorageBuffer16BitAccess),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, storagePushConstant16),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, storageInputOutput16),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, multiview),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, multiviewGeometryShader),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, multiviewTessellationShader),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, variablePointersStorageBuffer),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, variablePointers),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, protectedMemory),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, samplerYcbcrConversion),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan11Features, shaderDrawParameters),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceProvokingVertexFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceVulkan11Features*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 12, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, DE_NULL, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -3565,7 +3534,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestProvokingVertexFeaturesEX
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestLineRasterizationFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVulkan12Features (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -3595,19 +3564,60 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestLineRasterizationFeatures
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceLineRasterizationFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceVulkan12Features>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceLineRasterizationFeaturesEXT, rectangularLines),
-               FEATURE_ITEM (VkPhysicalDeviceLineRasterizationFeaturesEXT, bresenhamLines),
-               FEATURE_ITEM (VkPhysicalDeviceLineRasterizationFeaturesEXT, smoothLines),
-               FEATURE_ITEM (VkPhysicalDeviceLineRasterizationFeaturesEXT, stippledRectangularLines),
-               FEATURE_ITEM (VkPhysicalDeviceLineRasterizationFeaturesEXT, stippledBresenhamLines),
-               FEATURE_ITEM (VkPhysicalDeviceLineRasterizationFeaturesEXT, stippledSmoothLines),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, samplerMirrorClampToEdge),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, drawIndirectCount),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, storageBuffer8BitAccess),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, uniformAndStorageBuffer8BitAccess),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, storagePushConstant8),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderBufferInt64Atomics),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderSharedInt64Atomics),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderFloat16),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderInt8),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, descriptorIndexing),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderInputAttachmentArrayDynamicIndexing),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderUniformTexelBufferArrayDynamicIndexing),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderStorageTexelBufferArrayDynamicIndexing),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderUniformBufferArrayNonUniformIndexing),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderSampledImageArrayNonUniformIndexing),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderStorageBufferArrayNonUniformIndexing),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderStorageImageArrayNonUniformIndexing),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderInputAttachmentArrayNonUniformIndexing),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderUniformTexelBufferArrayNonUniformIndexing),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderStorageTexelBufferArrayNonUniformIndexing),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, descriptorBindingUniformBufferUpdateAfterBind),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, descriptorBindingSampledImageUpdateAfterBind),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, descriptorBindingStorageImageUpdateAfterBind),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, descriptorBindingStorageBufferUpdateAfterBind),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, descriptorBindingUniformTexelBufferUpdateAfterBind),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, descriptorBindingStorageTexelBufferUpdateAfterBind),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, descriptorBindingUpdateUnusedWhilePending),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, descriptorBindingPartiallyBound),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, descriptorBindingVariableDescriptorCount),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, runtimeDescriptorArray),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, samplerFilterMinmax),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, scalarBlockLayout),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, imagelessFramebuffer),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, uniformBufferStandardLayout),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderSubgroupExtendedTypes),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, separateDepthStencilLayouts),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, hostQueryReset),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, timelineSemaphore),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, bufferDeviceAddress),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, bufferDeviceAddressCaptureReplay),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, bufferDeviceAddressMultiDevice),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, vulkanMemoryModel),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, vulkanMemoryModelDeviceScope),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, vulkanMemoryModelAvailabilityVisibilityChains),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderOutputViewportIndex),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, shaderOutputLayer),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan12Features, subgroupBroadcastDynamicId),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 6, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceVulkan12Features*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 47, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, DE_NULL, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -3617,7 +3627,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestLineRasterizationFeatures
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderAtomicFloatFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVulkan13Features (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -3647,25 +3657,28 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderAtomicFloatFeatures
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceVulkan13Features>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, shaderBufferFloat32Atomics),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, shaderBufferFloat32AtomicAdd),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, shaderBufferFloat64Atomics),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, shaderBufferFloat64AtomicAdd),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, shaderSharedFloat32Atomics),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, shaderSharedFloat32AtomicAdd),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, shaderSharedFloat64Atomics),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, shaderSharedFloat64AtomicAdd),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, shaderImageFloat32Atomics),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, shaderImageFloat32AtomicAdd),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, sparseImageFloat32Atomics),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, sparseImageFloat32AtomicAdd),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, robustImageAccess),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, inlineUniformBlock),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, descriptorBindingInlineUniformBlockUpdateAfterBind),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, pipelineCreationCacheControl),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, privateData),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, shaderDemoteToHelperInvocation),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, shaderTerminateInvocation),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, subgroupSizeControl),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, computeFullSubgroups),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, synchronization2),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, textureCompressionASTC_HDR),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, shaderZeroInitializeWorkgroupMemory),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, dynamicRendering),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, shaderIntegerDotProduct),
+               FEATURE_ITEM (VkPhysicalDeviceVulkan13Features, maintenance4),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 12, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceVulkan13Features*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 15, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, DE_NULL, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -3675,7 +3688,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderAtomicFloatFeatures
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestIndexTypeUint8FeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestCoherentMemoryFeaturesAMD (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -3705,13 +3718,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestIndexTypeUint8FeaturesEXT
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceCoherentMemoryFeaturesAMD>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceIndexTypeUint8FeaturesEXT, indexTypeUint8),
+               FEATURE_ITEM (VkPhysicalDeviceCoherentMemoryFeaturesAMD, deviceCoherentMemory),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceCoherentMemoryFeaturesAMD*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -3722,7 +3735,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestIndexTypeUint8FeaturesEXT
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestExtendedDynamicStateFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestCustomBorderColorFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -3752,14 +3765,15 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestExtendedDynamicStateFeatu
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceCustomBorderColorFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, extendedDynamicState),
+               FEATURE_ITEM (VkPhysicalDeviceCustomBorderColorFeaturesEXT, customBorderColors),
+               FEATURE_ITEM (VkPhysicalDeviceCustomBorderColorFeaturesEXT, customBorderColorWithoutFormat),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -3769,7 +3783,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestExtendedDynamicStateFeatu
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderAtomicFloat2FeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestBorderColorSwizzleFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -3799,25 +3813,15 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderAtomicFloat2Feature
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderBufferFloat16Atomics),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderBufferFloat16AtomicAdd),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderBufferFloat16AtomicMinMax),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderBufferFloat32AtomicMinMax),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderBufferFloat64AtomicMinMax),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderSharedFloat16Atomics),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderSharedFloat16AtomicAdd),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderSharedFloat16AtomicMinMax),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderSharedFloat32AtomicMinMax),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderSharedFloat64AtomicMinMax),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, shaderImageFloat32AtomicMinMax),
-               FEATURE_ITEM (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, sparseImageFloat32AtomicMinMax),
+               FEATURE_ITEM (VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, borderColorSwizzle),
+               FEATURE_ITEM (VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, borderColorSwizzleFromImage),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 12, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -3827,7 +3831,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderAtomicFloat2Feature
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDeviceGeneratedCommandsFeaturesNV (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestExtendedDynamicStateFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -3857,13 +3861,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDeviceGeneratedCommandsFe
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, deviceGeneratedCommands),
+               FEATURE_ITEM (VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, extendedDynamicState),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -3874,7 +3878,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDeviceGeneratedCommandsFe
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestInheritedViewportScissorFeaturesNV (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestExtendedDynamicState2FeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -3904,14 +3908,16 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestInheritedViewportScissorF
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceInheritedViewportScissorFeaturesNV>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceInheritedViewportScissorFeaturesNV, inheritedViewportScissor2D),
+               FEATURE_ITEM (VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, extendedDynamicState2),
+               FEATURE_ITEM (VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, extendedDynamicState2LogicOp),
+               FEATURE_ITEM (VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, extendedDynamicState2PatchControlPoints),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceInheritedViewportScissorFeaturesNV*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -3921,7 +3927,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestInheritedViewportScissorF
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestTexelBufferAlignmentFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDiagnosticsConfigFeaturesNV (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -3951,13 +3957,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestTexelBufferAlignmentFeatu
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, texelBufferAlignment),
+               FEATURE_ITEM (VkPhysicalDeviceDiagnosticsConfigFeaturesNV, diagnosticsConfig),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -3968,7 +3974,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestTexelBufferAlignmentFeatu
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDeviceMemoryReportFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestZeroInitializeWorkgroupMemoryFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -3998,13 +4004,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDeviceMemoryReportFeature
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, deviceMemoryReport),
+               FEATURE_ITEM (VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures, shaderZeroInitializeWorkgroupMemory),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -4015,7 +4021,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDeviceMemoryReportFeature
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRobustness2FeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderSubgroupUniformControlFlowFeaturesKHR (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -4045,16 +4051,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRobustness2FeaturesEXT (C
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceRobustness2FeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceRobustness2FeaturesEXT, robustBufferAccess2),
-               FEATURE_ITEM (VkPhysicalDeviceRobustness2FeaturesEXT, robustImageAccess2),
-               FEATURE_ITEM (VkPhysicalDeviceRobustness2FeaturesEXT, nullDescriptor),
+               FEATURE_ITEM (VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, shaderSubgroupUniformControlFlow),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -4064,7 +4068,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRobustness2FeaturesEXT (C
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestCustomBorderColorFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRobustness2FeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -4094,15 +4098,16 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestCustomBorderColorFeatures
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceCustomBorderColorFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceRobustness2FeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceCustomBorderColorFeaturesEXT, customBorderColors),
-               FEATURE_ITEM (VkPhysicalDeviceCustomBorderColorFeaturesEXT, customBorderColorWithoutFormat),
+               FEATURE_ITEM (VkPhysicalDeviceRobustness2FeaturesEXT, robustBufferAccess2),
+               FEATURE_ITEM (VkPhysicalDeviceRobustness2FeaturesEXT, robustImageAccess2),
+               FEATURE_ITEM (VkPhysicalDeviceRobustness2FeaturesEXT, nullDescriptor),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -4112,7 +4117,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestCustomBorderColorFeatures
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDiagnosticsConfigFeaturesNV (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImageRobustnessFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -4142,13 +4147,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDiagnosticsConfigFeatures
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceImageRobustnessFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceDiagnosticsConfigFeaturesNV, diagnosticsConfig),
+               FEATURE_ITEM (VkPhysicalDeviceImageRobustnessFeatures, robustImageAccess),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeatures*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -4159,7 +4164,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDiagnosticsConfigFeatures
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestGraphicsPipelineLibraryFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestWorkgroupMemoryExplicitLayoutFeaturesKHR (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -4189,14 +4194,17 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestGraphicsPipelineLibraryFe
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, graphicsPipelineLibrary),
+               FEATURE_ITEM (VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, workgroupMemoryExplicitLayout),
+               FEATURE_ITEM (VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, workgroupMemoryExplicitLayoutScalarBlockLayout),
+               FEATURE_ITEM (VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, workgroupMemoryExplicitLayout8BitAccess),
+               FEATURE_ITEM (VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, workgroupMemoryExplicitLayout16BitAccess),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 4, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -4206,7 +4214,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestGraphicsPipelineLibraryFe
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderEarlyAndLateFragmentTestsFeaturesAMD (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPortabilitySubsetFeaturesKHR (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -4236,14 +4244,28 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderEarlyAndLateFragmen
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePortabilitySubsetFeaturesKHR>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, shaderEarlyAndLateFragmentTests),
+               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, constantAlphaColorBlendFactors),
+               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, events),
+               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, imageViewFormatReinterpretation),
+               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, imageViewFormatSwizzle),
+               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, imageView2DOn3DImage),
+               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, multisampleArrayImage),
+               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, mutableComparisonSamplers),
+               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, pointPolygons),
+               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, samplerMipLodBias),
+               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, separateStencilMaskRef),
+               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, shaderSampleRateInterpolationFunctions),
+               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, tessellationIsolines),
+               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, tessellationPointMode),
+               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, triangleFans),
+               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, vertexAttributeAccessBeyondStride),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePortabilitySubsetFeaturesKHR*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 15, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -4253,7 +4275,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderEarlyAndLateFragmen
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentShadingRateEnumsFeaturesNV (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTest4444FormatsFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -4283,16 +4305,15 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentShadingRateEnumsF
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevice4444FormatsFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, fragmentShadingRateEnums),
-               FEATURE_ITEM (VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, supersampleFragmentShadingRates),
-               FEATURE_ITEM (VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, noInvocationFragmentShadingRates),
+               FEATURE_ITEM (VkPhysicalDevice4444FormatsFeaturesEXT, formatA4R4G4B4),
+               FEATURE_ITEM (VkPhysicalDevice4444FormatsFeaturesEXT, formatA4B4G4R4),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -4302,7 +4323,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentShadingRateEnumsF
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRayTracingMotionBlurFeaturesNV (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestSubpassShadingFeaturesHUAWEI (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -4332,15 +4353,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRayTracingMotionBlurFeatu
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, rayTracingMotionBlur),
-               FEATURE_ITEM (VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, rayTracingMotionBlurPipelineTraceRaysIndirect),
+               FEATURE_ITEM (VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, subpassShading),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -4350,7 +4370,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRayTracingMotionBlurFeatu
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestYcbcr2Plane444FormatsFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderImageAtomicInt64FeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -4380,14 +4400,15 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestYcbcr2Plane444FormatsFeat
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, ycbcr2plane444Formats),
+               FEATURE_ITEM (VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, shaderImageInt64Atomics),
+               FEATURE_ITEM (VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, sparseImageInt64Atomics),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -4397,7 +4418,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestYcbcr2Plane444FormatsFeat
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentDensityMap2FeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentShadingRateFeaturesKHR (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -4427,14 +4448,16 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentDensityMap2Featur
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceFragmentShadingRateFeaturesKHR>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, fragmentDensityMapDeferred),
+               FEATURE_ITEM (VkPhysicalDeviceFragmentShadingRateFeaturesKHR, pipelineFragmentShadingRate),
+               FEATURE_ITEM (VkPhysicalDeviceFragmentShadingRateFeaturesKHR, primitiveFragmentShadingRate),
+               FEATURE_ITEM (VkPhysicalDeviceFragmentShadingRateFeaturesKHR, attachmentFragmentShadingRate),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -4444,7 +4467,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentDensityMap2Featur
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImageCompressionControlFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderTerminateInvocationFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -4474,13 +4497,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImageCompressionControlFe
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceImageCompressionControlFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderTerminateInvocationFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceImageCompressionControlFeaturesEXT, imageCompressionControl),
+               FEATURE_ITEM (VkPhysicalDeviceShaderTerminateInvocationFeatures, shaderTerminateInvocation),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceImageCompressionControlFeaturesEXT*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderTerminateInvocationFeatures*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -4491,7 +4514,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImageCompressionControlFe
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTest4444FormatsFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentShadingRateEnumsFeaturesNV (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -4521,15 +4544,16 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTest4444FormatsFeaturesEXT (C
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevice4444FormatsFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDevice4444FormatsFeaturesEXT, formatA4R4G4B4),
-               FEATURE_ITEM (VkPhysicalDevice4444FormatsFeaturesEXT, formatA4B4G4R4),
+               FEATURE_ITEM (VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, fragmentShadingRateEnums),
+               FEATURE_ITEM (VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, supersampleFragmentShadingRates),
+               FEATURE_ITEM (VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, noInvocationFragmentShadingRates),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -4539,7 +4563,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTest4444FormatsFeaturesEXT (C
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRasterizationOrderAttachmentAccessFeaturesARM (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImage2DViewOf3DFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -4569,16 +4593,15 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRasterizationOrderAttachm
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM, rasterizationOrderColorAttachmentAccess),
-               FEATURE_ITEM (VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM, rasterizationOrderDepthAttachmentAccess),
-               FEATURE_ITEM (VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM, rasterizationOrderStencilAttachmentAccess),
+               FEATURE_ITEM (VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, image2DViewOf3D),
+               FEATURE_ITEM (VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, sampler2DViewOf3D),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -4588,7 +4611,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRasterizationOrderAttachm
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRGBA10X6FormatsFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMutableDescriptorTypeFeaturesVALVE (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -4618,13 +4641,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRGBA10X6FormatsFeaturesEX
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, formatRgba10x6WithoutYCbCrSampler),
+               FEATURE_ITEM (VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE, mutableDescriptorType),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -4635,7 +4658,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRGBA10X6FormatsFeaturesEX
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMutableDescriptorTypeFeaturesVALVE (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDepthClipControlFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -4665,13 +4688,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMutableDescriptorTypeFeat
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceDepthClipControlFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE, mutableDescriptorType),
+               FEATURE_ITEM (VkPhysicalDeviceDepthClipControlFeaturesEXT, depthClipControl),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceDepthClipControlFeaturesEXT*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -4729,7 +4752,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestVertexInputDynamicStateFe
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDepthClipControlFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestExternalMemoryRDMAFeaturesNV (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -4759,13 +4782,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDepthClipControlFeaturesE
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceDepthClipControlFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceDepthClipControlFeaturesEXT, depthClipControl),
+               FEATURE_ITEM (VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, externalMemoryRDMA),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceDepthClipControlFeaturesEXT*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -4776,7 +4799,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDepthClipControlFeaturesE
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPrimitiveTopologyListRestartFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestColorWriteEnableFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -4806,15 +4829,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPrimitiveTopologyListRest
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceColorWriteEnableFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, primitiveTopologyListRestart),
-               FEATURE_ITEM (VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, primitiveTopologyPatchListRestart),
+               FEATURE_ITEM (VkPhysicalDeviceColorWriteEnableFeaturesEXT, colorWriteEnable),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -4824,7 +4846,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPrimitiveTopologyListRest
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestSubpassShadingFeaturesHUAWEI (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestSynchronization2Features (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -4854,13 +4876,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestSubpassShadingFeaturesHUA
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceSynchronization2Features>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, subpassShading),
+               FEATURE_ITEM (VkPhysicalDeviceSynchronization2Features, synchronization2),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceSynchronization2Features*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -4871,7 +4893,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestSubpassShadingFeaturesHUA
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestInvocationMaskFeaturesHUAWEI (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPrimitivesGeneratedQueryFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -4901,14 +4923,16 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestInvocationMaskFeaturesHUA
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, invocationMask),
+               FEATURE_ITEM (VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, primitivesGeneratedQuery),
+               FEATURE_ITEM (VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, primitivesGeneratedQueryWithRasterizerDiscard),
+               FEATURE_ITEM (VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, primitivesGeneratedQueryWithNonZeroStreams),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -4918,7 +4942,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestInvocationMaskFeaturesHUA
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestExternalMemoryRDMAFeaturesNV (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMultisampledRenderToSingleSampledFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -4948,13 +4972,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestExternalMemoryRDMAFeature
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, externalMemoryRDMA),
+               FEATURE_ITEM (VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, multisampledRenderToSingleSampled),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -4965,7 +4989,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestExternalMemoryRDMAFeature
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPipelinePropertiesFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestInheritedViewportScissorFeaturesNV (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -4995,13 +5019,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPipelinePropertiesFeature
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePipelinePropertiesFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceInheritedViewportScissorFeaturesNV>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDevicePipelinePropertiesFeaturesEXT, pipelinePropertiesIdentifier),
+               FEATURE_ITEM (VkPhysicalDeviceInheritedViewportScissorFeaturesNV, inheritedViewportScissor2D),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePipelinePropertiesFeaturesEXT*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceInheritedViewportScissorFeaturesNV*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -5012,7 +5036,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPipelinePropertiesFeature
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMultisampledRenderToSingleSampledFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestYcbcr2Plane444FormatsFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -5042,13 +5066,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMultisampledRenderToSingl
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, multisampledRenderToSingleSampled),
+               FEATURE_ITEM (VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, ycbcr2plane444Formats),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -5059,7 +5083,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMultisampledRenderToSingl
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestExtendedDynamicState2FeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestProvokingVertexFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -5089,16 +5113,15 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestExtendedDynamicState2Feat
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceProvokingVertexFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, extendedDynamicState2),
-               FEATURE_ITEM (VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, extendedDynamicState2LogicOp),
-               FEATURE_ITEM (VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, extendedDynamicState2PatchControlPoints),
+               FEATURE_ITEM (VkPhysicalDeviceProvokingVertexFeaturesEXT, provokingVertexLast),
+               FEATURE_ITEM (VkPhysicalDeviceProvokingVertexFeaturesEXT, transformFeedbackPreservesProvokingVertex),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceProvokingVertexFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -5108,7 +5131,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestExtendedDynamicState2Feat
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestColorWriteEnableFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderIntegerDotProductFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -5138,13 +5161,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestColorWriteEnableFeaturesE
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceColorWriteEnableFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderIntegerDotProductFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceColorWriteEnableFeaturesEXT, colorWriteEnable),
+               FEATURE_ITEM (VkPhysicalDeviceShaderIntegerDotProductFeatures, shaderIntegerDotProduct),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceColorWriteEnableFeaturesEXT*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderIntegerDotProductFeatures*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -5155,7 +5178,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestColorWriteEnableFeaturesE
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPrimitivesGeneratedQueryFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentShaderBarycentricFeaturesKHR (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -5185,16 +5208,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPrimitivesGeneratedQueryF
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, primitivesGeneratedQuery),
-               FEATURE_ITEM (VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, primitivesGeneratedQueryWithRasterizerDiscard),
-               FEATURE_ITEM (VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, primitivesGeneratedQueryWithNonZeroStreams),
+               FEATURE_ITEM (VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, fragmentShaderBarycentric),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -5204,7 +5225,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPrimitivesGeneratedQueryF
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImageViewMinLodFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRayTracingMotionBlurFeaturesNV (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -5234,14 +5255,15 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImageViewMinLodFeaturesEX
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceImageViewMinLodFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceImageViewMinLodFeaturesEXT, minLod),
+               FEATURE_ITEM (VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, rayTracingMotionBlur),
+               FEATURE_ITEM (VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, rayTracingMotionBlurPipelineTraceRaysIndirect),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceImageViewMinLodFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -5251,7 +5273,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImageViewMinLodFeaturesEX
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMultiDrawFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRGBA10X6FormatsFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -5281,13 +5303,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMultiDrawFeaturesEXT (Con
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceMultiDrawFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceMultiDrawFeaturesEXT, multiDraw),
+               FEATURE_ITEM (VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, formatRgba10x6WithoutYCbCrSampler),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceMultiDrawFeaturesEXT*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -5298,7 +5320,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestMultiDrawFeaturesEXT (Con
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImage2DViewOf3DFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDynamicRenderingFeatures (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -5328,15 +5350,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImage2DViewOf3DFeaturesEX
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceDynamicRenderingFeatures>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, image2DViewOf3D),
-               FEATURE_ITEM (VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, sampler2DViewOf3D),
+               FEATURE_ITEM (VkPhysicalDeviceDynamicRenderingFeatures, dynamicRendering),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceDynamicRenderingFeatures*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -5346,7 +5367,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImage2DViewOf3DFeaturesEX
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestBorderColorSwizzleFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImageViewMinLodFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -5376,15 +5397,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestBorderColorSwizzleFeature
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceImageViewMinLodFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, borderColorSwizzle),
-               FEATURE_ITEM (VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, borderColorSwizzleFromImage),
+               FEATURE_ITEM (VkPhysicalDeviceImageViewMinLodFeaturesEXT, minLod),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 2, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceImageViewMinLodFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -5394,7 +5414,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestBorderColorSwizzleFeature
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPageableDeviceLocalMemoryFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRasterizationOrderAttachmentAccessFeaturesARM (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -5424,14 +5444,16 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPageableDeviceLocalMemory
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, pageableDeviceLocalMemory),
+               FEATURE_ITEM (VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM, rasterizationOrderColorAttachmentAccess),
+               FEATURE_ITEM (VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM, rasterizationOrderDepthAttachmentAccess),
+               FEATURE_ITEM (VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM, rasterizationOrderStencilAttachmentAccess),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -5441,7 +5463,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPageableDeviceLocalMemory
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDescriptorSetHostMappingFeaturesVALVE (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestLinearColorAttachmentFeaturesNV (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -5471,13 +5493,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDescriptorSetHostMappingF
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceLinearColorAttachmentFeaturesNV>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, descriptorSetHostMapping),
+               FEATURE_ITEM (VkPhysicalDeviceLinearColorAttachmentFeaturesNV, linearColorAttachment),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceLinearColorAttachmentFeaturesNV*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -5488,7 +5510,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDescriptorSetHostMappingF
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestNonSeamlessCubeMapFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestGraphicsPipelineLibraryFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -5518,13 +5540,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestNonSeamlessCubeMapFeature
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, nonSeamlessCubeMap),
+               FEATURE_ITEM (VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, graphicsPipelineLibrary),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -5535,7 +5557,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestNonSeamlessCubeMapFeature
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentDensityMapOffsetFeaturesQCOM (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestDescriptorSetHostMappingFeaturesVALVE (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -5565,13 +5587,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentDensityMapOffsetF
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, fragmentDensityMapOffset),
+               FEATURE_ITEM (VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, descriptorSetHostMapping),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -5582,7 +5604,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestFragmentDensityMapOffsetF
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestLinearColorAttachmentFeaturesNV (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderModuleIdentifierFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -5612,13 +5634,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestLinearColorAttachmentFeat
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceLinearColorAttachmentFeaturesNV>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceLinearColorAttachmentFeaturesNV, linearColorAttachment),
+               FEATURE_ITEM (VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, shaderModuleIdentifier),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceLinearColorAttachmentFeaturesNV*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -5629,7 +5651,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestLinearColorAttachmentFeat
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImageCompressionControlSwapchainFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImageCompressionControlFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -5659,13 +5681,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImageCompressionControlSw
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceImageCompressionControlFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, imageCompressionControlSwapchain),
+               FEATURE_ITEM (VkPhysicalDeviceImageCompressionControlFeaturesEXT, imageCompressionControl),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceImageCompressionControlFeaturesEXT*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -5676,7 +5698,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImageCompressionControlSw
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImageProcessingFeaturesQCOM (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImageCompressionControlSwapchainFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -5706,16 +5728,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImageProcessingFeaturesQC
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceImageProcessingFeaturesQCOM>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceImageProcessingFeaturesQCOM, textureSampleWeighted),
-               FEATURE_ITEM (VkPhysicalDeviceImageProcessingFeaturesQCOM, textureBoxFilter),
-               FEATURE_ITEM (VkPhysicalDeviceImageProcessingFeaturesQCOM, textureBlockMatch),
+               FEATURE_ITEM (VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, imageCompressionControlSwapchain),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceImageProcessingFeaturesQCOM*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -5772,7 +5792,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestSubpassMergeFeedbackFeatu
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderModuleIdentifierFeaturesEXT (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPipelinePropertiesFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -5802,13 +5822,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderModuleIdentifierFea
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePipelinePropertiesFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, shaderModuleIdentifier),
+               FEATURE_ITEM (VkPhysicalDevicePipelinePropertiesFeaturesEXT, pipelinePropertiesIdentifier),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePipelinePropertiesFeaturesEXT*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -5819,7 +5839,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderModuleIdentifierFea
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestTilePropertiesFeaturesQCOM (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestShaderEarlyAndLateFragmentTestsFeaturesAMD (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -5849,13 +5869,13 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestTilePropertiesFeaturesQCO
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceTilePropertiesFeaturesQCOM>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceTilePropertiesFeaturesQCOM, tileProperties),
+               FEATURE_ITEM (VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, shaderEarlyAndLateFragmentTests),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceTilePropertiesFeaturesQCOM*>(featuresStruct);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD*>(featuresStruct);
                checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
@@ -5866,7 +5886,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestTilePropertiesFeaturesQCO
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestAccelerationStructureFeaturesKHR (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestNonSeamlessCubeMapFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -5896,18 +5916,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestAccelerationStructureFeat
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceAccelerationStructureFeaturesKHR>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceAccelerationStructureFeaturesKHR, accelerationStructure),
-               FEATURE_ITEM (VkPhysicalDeviceAccelerationStructureFeaturesKHR, accelerationStructureCaptureReplay),
-               FEATURE_ITEM (VkPhysicalDeviceAccelerationStructureFeaturesKHR, accelerationStructureIndirectBuild),
-               FEATURE_ITEM (VkPhysicalDeviceAccelerationStructureFeaturesKHR, accelerationStructureHostCommands),
-               FEATURE_ITEM (VkPhysicalDeviceAccelerationStructureFeaturesKHR, descriptorBindingAccelerationStructureUpdateAfterBind),
+               FEATURE_ITEM (VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, nonSeamlessCubeMap),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceAccelerationStructureFeaturesKHR*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 5, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -5917,7 +5933,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestAccelerationStructureFeat
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRayTracingPipelineFeaturesKHR (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPipelineRobustnessFeaturesEXT (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -5947,18 +5963,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRayTracingPipelineFeature
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceRayTracingPipelineFeaturesKHR>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePipelineRobustnessFeaturesEXT>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceRayTracingPipelineFeaturesKHR, rayTracingPipeline),
-               FEATURE_ITEM (VkPhysicalDeviceRayTracingPipelineFeaturesKHR, rayTracingPipelineShaderGroupHandleCaptureReplay),
-               FEATURE_ITEM (VkPhysicalDeviceRayTracingPipelineFeaturesKHR, rayTracingPipelineShaderGroupHandleCaptureReplayMixed),
-               FEATURE_ITEM (VkPhysicalDeviceRayTracingPipelineFeaturesKHR, rayTracingPipelineTraceRaysIndirect),
-               FEATURE_ITEM (VkPhysicalDeviceRayTracingPipelineFeaturesKHR, rayTraversalPrimitiveCulling),
+               FEATURE_ITEM (VkPhysicalDevicePipelineRobustnessFeaturesEXT, pipelineRobustness),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceRayTracingPipelineFeaturesKHR*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 5, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePipelineRobustnessFeaturesEXT*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -5968,7 +5980,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRayTracingPipelineFeature
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRayQueryFeaturesKHR (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestImageProcessingFeaturesQCOM (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -5998,14 +6010,16 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRayQueryFeaturesKHR (Cont
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceRayQueryFeaturesKHR>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceImageProcessingFeaturesQCOM>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDeviceRayQueryFeaturesKHR, rayQuery),
+               FEATURE_ITEM (VkPhysicalDeviceImageProcessingFeaturesQCOM, textureSampleWeighted),
+               FEATURE_ITEM (VkPhysicalDeviceImageProcessingFeaturesQCOM, textureBoxFilter),
+               FEATURE_ITEM (VkPhysicalDeviceImageProcessingFeaturesQCOM, textureBlockMatch),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceRayQueryFeaturesKHR*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceImageProcessingFeaturesQCOM*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 3, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -6015,7 +6029,7 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestRayQueryFeaturesKHR (Cont
 }
 
 
-tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPortabilitySubsetFeaturesKHR (Context& context)
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTestTilePropertiesFeaturesQCOM (Context& context)
 {
        const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
        tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
@@ -6045,28 +6059,14 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPortabilitySubsetFeatures
        for (const string& extension : nonCoreExtensions)
                extensionNames.push_back(extension.c_str());
 
-       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDevicePortabilitySubsetFeaturesKHR>()))
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<VkPhysicalDeviceTilePropertiesFeaturesQCOM>()))
        {
                static const Feature features[] =
                {
-               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, constantAlphaColorBlendFactors),
-               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, events),
-               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, imageViewFormatReinterpretation),
-               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, imageViewFormatSwizzle),
-               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, imageView2DOn3DImage),
-               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, multisampleArrayImage),
-               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, mutableComparisonSamplers),
-               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, pointPolygons),
-               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, samplerMipLodBias),
-               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, separateStencilMaskRef),
-               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, shaderSampleRateInterpolationFunctions),
-               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, tessellationIsolines),
-               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, tessellationPointMode),
-               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, triangleFans),
-               FEATURE_ITEM (VkPhysicalDevicePortabilitySubsetFeaturesKHR, vertexAttributeAccessBeyondStride),
+               FEATURE_ITEM (VkPhysicalDeviceTilePropertiesFeaturesQCOM, tileProperties),
                };
-               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDevicePortabilitySubsetFeaturesKHR*>(featuresStruct);
-               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 15, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
+               auto* supportedFeatures = reinterpret_cast<const VkPhysicalDeviceTilePropertiesFeaturesQCOM*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, 1, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, &extensionNames, emptyDeviceFeatures, isSubProcess);
        }
 
        if (numErrors > 0)
@@ -6079,130 +6079,130 @@ tcu::TestStatus createDeviceWithUnsupportedFeaturesTestPortabilitySubsetFeatures
 void addSeparateUnsupportedFeatureTests (tcu::TestCaseGroup* testGroup)
 {
 
-       addFunctionCase(testGroup, "16_bit_storage_features", "createDeviceWithUnsupportedFeaturesTest16BitStorageFeatures", createDeviceWithUnsupportedFeaturesTest16BitStorageFeatures);
-       addFunctionCase(testGroup, "multiview_features", "createDeviceWithUnsupportedFeaturesTestMultiviewFeatures", createDeviceWithUnsupportedFeaturesTestMultiviewFeatures);
+       addFunctionCase(testGroup, "device_generated_commands_features_nv", "createDeviceWithUnsupportedFeaturesTestDeviceGeneratedCommandsFeaturesNV", createDeviceWithUnsupportedFeaturesTestDeviceGeneratedCommandsFeaturesNV);
+       addFunctionCase(testGroup, "private_data_features", "createDeviceWithUnsupportedFeaturesTestPrivateDataFeatures", createDeviceWithUnsupportedFeaturesTestPrivateDataFeatures);
        addFunctionCase(testGroup, "variable_pointers_features", "createDeviceWithUnsupportedFeaturesTestVariablePointersFeatures", createDeviceWithUnsupportedFeaturesTestVariablePointersFeatures);
-       addFunctionCase(testGroup, "protected_memory_features", "createDeviceWithUnsupportedFeaturesTestProtectedMemoryFeatures", createDeviceWithUnsupportedFeaturesTestProtectedMemoryFeatures);
+       addFunctionCase(testGroup, "multiview_features", "createDeviceWithUnsupportedFeaturesTestMultiviewFeatures", createDeviceWithUnsupportedFeaturesTestMultiviewFeatures);
+       addFunctionCase(testGroup, "present_id_features_khr", "createDeviceWithUnsupportedFeaturesTestPresentIdFeaturesKHR", createDeviceWithUnsupportedFeaturesTestPresentIdFeaturesKHR);
+       addFunctionCase(testGroup, "present_wait_features_khr", "createDeviceWithUnsupportedFeaturesTestPresentWaitFeaturesKHR", createDeviceWithUnsupportedFeaturesTestPresentWaitFeaturesKHR);
+       addFunctionCase(testGroup, "16_bit_storage_features", "createDeviceWithUnsupportedFeaturesTest16BitStorageFeatures", createDeviceWithUnsupportedFeaturesTest16BitStorageFeatures);
+       addFunctionCase(testGroup, "shader_subgroup_extended_types_features", "createDeviceWithUnsupportedFeaturesTestShaderSubgroupExtendedTypesFeatures", createDeviceWithUnsupportedFeaturesTestShaderSubgroupExtendedTypesFeatures);
        addFunctionCase(testGroup, "sampler_ycbcr_conversion_features", "createDeviceWithUnsupportedFeaturesTestSamplerYcbcrConversionFeatures", createDeviceWithUnsupportedFeaturesTestSamplerYcbcrConversionFeatures);
+       addFunctionCase(testGroup, "protected_memory_features", "createDeviceWithUnsupportedFeaturesTestProtectedMemoryFeatures", createDeviceWithUnsupportedFeaturesTestProtectedMemoryFeatures);
+       addFunctionCase(testGroup, "blend_operation_advanced_features_ext", "createDeviceWithUnsupportedFeaturesTestBlendOperationAdvancedFeaturesEXT", createDeviceWithUnsupportedFeaturesTestBlendOperationAdvancedFeaturesEXT);
+       addFunctionCase(testGroup, "multi_draw_features_ext", "createDeviceWithUnsupportedFeaturesTestMultiDrawFeaturesEXT", createDeviceWithUnsupportedFeaturesTestMultiDrawFeaturesEXT);
+       addFunctionCase(testGroup, "inline_uniform_block_features", "createDeviceWithUnsupportedFeaturesTestInlineUniformBlockFeatures", createDeviceWithUnsupportedFeaturesTestInlineUniformBlockFeatures);
+       addFunctionCase(testGroup, "maintenance4_features", "createDeviceWithUnsupportedFeaturesTestMaintenance4Features", createDeviceWithUnsupportedFeaturesTestMaintenance4Features);
        addFunctionCase(testGroup, "shader_draw_parameters_features", "createDeviceWithUnsupportedFeaturesTestShaderDrawParametersFeatures", createDeviceWithUnsupportedFeaturesTestShaderDrawParametersFeatures);
-       addFunctionCase(testGroup, "vulkan11_features", "createDeviceWithUnsupportedFeaturesTestVulkan11Features", createDeviceWithUnsupportedFeaturesTestVulkan11Features);
-       addFunctionCase(testGroup, "vulkan12_features", "createDeviceWithUnsupportedFeaturesTestVulkan12Features", createDeviceWithUnsupportedFeaturesTestVulkan12Features);
-       addFunctionCase(testGroup, "8_bit_storage_features", "createDeviceWithUnsupportedFeaturesTest8BitStorageFeatures", createDeviceWithUnsupportedFeaturesTest8BitStorageFeatures);
-       addFunctionCase(testGroup, "shader_atomic_int64_features", "createDeviceWithUnsupportedFeaturesTestShaderAtomicInt64Features", createDeviceWithUnsupportedFeaturesTestShaderAtomicInt64Features);
        addFunctionCase(testGroup, "shader_float16_int8_features", "createDeviceWithUnsupportedFeaturesTestShaderFloat16Int8Features", createDeviceWithUnsupportedFeaturesTestShaderFloat16Int8Features);
-       addFunctionCase(testGroup, "descriptor_indexing_features", "createDeviceWithUnsupportedFeaturesTestDescriptorIndexingFeatures", createDeviceWithUnsupportedFeaturesTestDescriptorIndexingFeatures);
-       addFunctionCase(testGroup, "scalar_block_layout_features", "createDeviceWithUnsupportedFeaturesTestScalarBlockLayoutFeatures", createDeviceWithUnsupportedFeaturesTestScalarBlockLayoutFeatures);
-       addFunctionCase(testGroup, "vulkan_memory_model_features", "createDeviceWithUnsupportedFeaturesTestVulkanMemoryModelFeatures", createDeviceWithUnsupportedFeaturesTestVulkanMemoryModelFeatures);
-       addFunctionCase(testGroup, "imageless_framebuffer_features", "createDeviceWithUnsupportedFeaturesTestImagelessFramebufferFeatures", createDeviceWithUnsupportedFeaturesTestImagelessFramebufferFeatures);
-       addFunctionCase(testGroup, "uniform_buffer_standard_layout_features", "createDeviceWithUnsupportedFeaturesTestUniformBufferStandardLayoutFeatures", createDeviceWithUnsupportedFeaturesTestUniformBufferStandardLayoutFeatures);
-       addFunctionCase(testGroup, "shader_subgroup_extended_types_features", "createDeviceWithUnsupportedFeaturesTestShaderSubgroupExtendedTypesFeatures", createDeviceWithUnsupportedFeaturesTestShaderSubgroupExtendedTypesFeatures);
-       addFunctionCase(testGroup, "separate_depth_stencil_layouts_features", "createDeviceWithUnsupportedFeaturesTestSeparateDepthStencilLayoutsFeatures", createDeviceWithUnsupportedFeaturesTestSeparateDepthStencilLayoutsFeatures);
        addFunctionCase(testGroup, "host_query_reset_features", "createDeviceWithUnsupportedFeaturesTestHostQueryResetFeatures", createDeviceWithUnsupportedFeaturesTestHostQueryResetFeatures);
-       addFunctionCase(testGroup, "timeline_semaphore_features", "createDeviceWithUnsupportedFeaturesTestTimelineSemaphoreFeatures", createDeviceWithUnsupportedFeaturesTestTimelineSemaphoreFeatures);
-       addFunctionCase(testGroup, "buffer_device_address_features", "createDeviceWithUnsupportedFeaturesTestBufferDeviceAddressFeatures", createDeviceWithUnsupportedFeaturesTestBufferDeviceAddressFeatures);
-       addFunctionCase(testGroup, "vulkan13_features", "createDeviceWithUnsupportedFeaturesTestVulkan13Features", createDeviceWithUnsupportedFeaturesTestVulkan13Features);
-       addFunctionCase(testGroup, "shader_terminate_invocation_features", "createDeviceWithUnsupportedFeaturesTestShaderTerminateInvocationFeatures", createDeviceWithUnsupportedFeaturesTestShaderTerminateInvocationFeatures);
-       addFunctionCase(testGroup, "shader_demote_to_helper_invocation_features", "createDeviceWithUnsupportedFeaturesTestShaderDemoteToHelperInvocationFeatures", createDeviceWithUnsupportedFeaturesTestShaderDemoteToHelperInvocationFeatures);
-       addFunctionCase(testGroup, "private_data_features", "createDeviceWithUnsupportedFeaturesTestPrivateDataFeatures", createDeviceWithUnsupportedFeaturesTestPrivateDataFeatures);
-       addFunctionCase(testGroup, "pipeline_creation_cache_control_features", "createDeviceWithUnsupportedFeaturesTestPipelineCreationCacheControlFeatures", createDeviceWithUnsupportedFeaturesTestPipelineCreationCacheControlFeatures);
-       addFunctionCase(testGroup, "synchronization2_features", "createDeviceWithUnsupportedFeaturesTestSynchronization2Features", createDeviceWithUnsupportedFeaturesTestSynchronization2Features);
-       addFunctionCase(testGroup, "zero_initialize_workgroup_memory_features", "createDeviceWithUnsupportedFeaturesTestZeroInitializeWorkgroupMemoryFeatures", createDeviceWithUnsupportedFeaturesTestZeroInitializeWorkgroupMemoryFeatures);
-       addFunctionCase(testGroup, "image_robustness_features", "createDeviceWithUnsupportedFeaturesTestImageRobustnessFeatures", createDeviceWithUnsupportedFeaturesTestImageRobustnessFeatures);
-       addFunctionCase(testGroup, "subgroup_size_control_features", "createDeviceWithUnsupportedFeaturesTestSubgroupSizeControlFeatures", createDeviceWithUnsupportedFeaturesTestSubgroupSizeControlFeatures);
-       addFunctionCase(testGroup, "inline_uniform_block_features", "createDeviceWithUnsupportedFeaturesTestInlineUniformBlockFeatures", createDeviceWithUnsupportedFeaturesTestInlineUniformBlockFeatures);
-       addFunctionCase(testGroup, "texture_compression_astchdr_features", "createDeviceWithUnsupportedFeaturesTestTextureCompressionASTCHDRFeatures", createDeviceWithUnsupportedFeaturesTestTextureCompressionASTCHDRFeatures);
-       addFunctionCase(testGroup, "dynamic_rendering_features", "createDeviceWithUnsupportedFeaturesTestDynamicRenderingFeatures", createDeviceWithUnsupportedFeaturesTestDynamicRenderingFeatures);
-       addFunctionCase(testGroup, "shader_integer_dot_product_features", "createDeviceWithUnsupportedFeaturesTestShaderIntegerDotProductFeatures", createDeviceWithUnsupportedFeaturesTestShaderIntegerDotProductFeatures);
-       addFunctionCase(testGroup, "maintenance4_features", "createDeviceWithUnsupportedFeaturesTestMaintenance4Features", createDeviceWithUnsupportedFeaturesTestMaintenance4Features);
-       addFunctionCase(testGroup, "performance_query_features_khr", "createDeviceWithUnsupportedFeaturesTestPerformanceQueryFeaturesKHR", createDeviceWithUnsupportedFeaturesTestPerformanceQueryFeaturesKHR);
-       addFunctionCase(testGroup, "shader_clock_features_khr", "createDeviceWithUnsupportedFeaturesTestShaderClockFeaturesKHR", createDeviceWithUnsupportedFeaturesTestShaderClockFeaturesKHR);
        addFunctionCase(testGroup, "global_priority_query_features_khr", "createDeviceWithUnsupportedFeaturesTestGlobalPriorityQueryFeaturesKHR", createDeviceWithUnsupportedFeaturesTestGlobalPriorityQueryFeaturesKHR);
-       addFunctionCase(testGroup, "fragment_shading_rate_features_khr", "createDeviceWithUnsupportedFeaturesTestFragmentShadingRateFeaturesKHR", createDeviceWithUnsupportedFeaturesTestFragmentShadingRateFeaturesKHR);
-       addFunctionCase(testGroup, "present_wait_features_khr", "createDeviceWithUnsupportedFeaturesTestPresentWaitFeaturesKHR", createDeviceWithUnsupportedFeaturesTestPresentWaitFeaturesKHR);
-       addFunctionCase(testGroup, "pipeline_executable_properties_features_khr", "createDeviceWithUnsupportedFeaturesTestPipelineExecutablePropertiesFeaturesKHR", createDeviceWithUnsupportedFeaturesTestPipelineExecutablePropertiesFeaturesKHR);
-       addFunctionCase(testGroup, "present_id_features_khr", "createDeviceWithUnsupportedFeaturesTestPresentIdFeaturesKHR", createDeviceWithUnsupportedFeaturesTestPresentIdFeaturesKHR);
-       addFunctionCase(testGroup, "fragment_shader_barycentric_features_khr", "createDeviceWithUnsupportedFeaturesTestFragmentShaderBarycentricFeaturesKHR", createDeviceWithUnsupportedFeaturesTestFragmentShaderBarycentricFeaturesKHR);
-       addFunctionCase(testGroup, "shader_subgroup_uniform_control_flow_features_khr", "createDeviceWithUnsupportedFeaturesTestShaderSubgroupUniformControlFlowFeaturesKHR", createDeviceWithUnsupportedFeaturesTestShaderSubgroupUniformControlFlowFeaturesKHR);
-       addFunctionCase(testGroup, "workgroup_memory_explicit_layout_features_khr", "createDeviceWithUnsupportedFeaturesTestWorkgroupMemoryExplicitLayoutFeaturesKHR", createDeviceWithUnsupportedFeaturesTestWorkgroupMemoryExplicitLayoutFeaturesKHR);
-       addFunctionCase(testGroup, "ray_tracing_maintenance1_features_khr", "createDeviceWithUnsupportedFeaturesTestRayTracingMaintenance1FeaturesKHR", createDeviceWithUnsupportedFeaturesTestRayTracingMaintenance1FeaturesKHR);
-       addFunctionCase(testGroup, "transform_feedback_features_ext", "createDeviceWithUnsupportedFeaturesTestTransformFeedbackFeaturesEXT", createDeviceWithUnsupportedFeaturesTestTransformFeedbackFeaturesEXT);
-       addFunctionCase(testGroup, "corner_sampled_image_features_nv", "createDeviceWithUnsupportedFeaturesTestCornerSampledImageFeaturesNV", createDeviceWithUnsupportedFeaturesTestCornerSampledImageFeaturesNV);
-       addFunctionCase(testGroup, "astc_decode_features_ext", "createDeviceWithUnsupportedFeaturesTestASTCDecodeFeaturesEXT", createDeviceWithUnsupportedFeaturesTestASTCDecodeFeaturesEXT);
-       addFunctionCase(testGroup, "pipeline_robustness_features_ext", "createDeviceWithUnsupportedFeaturesTestPipelineRobustnessFeaturesEXT", createDeviceWithUnsupportedFeaturesTestPipelineRobustnessFeaturesEXT);
+       addFunctionCase(testGroup, "device_memory_report_features_ext", "createDeviceWithUnsupportedFeaturesTestDeviceMemoryReportFeaturesEXT", createDeviceWithUnsupportedFeaturesTestDeviceMemoryReportFeaturesEXT);
+       addFunctionCase(testGroup, "descriptor_indexing_features", "createDeviceWithUnsupportedFeaturesTestDescriptorIndexingFeatures", createDeviceWithUnsupportedFeaturesTestDescriptorIndexingFeatures);
+       addFunctionCase(testGroup, "timeline_semaphore_features", "createDeviceWithUnsupportedFeaturesTestTimelineSemaphoreFeatures", createDeviceWithUnsupportedFeaturesTestTimelineSemaphoreFeatures);
+       addFunctionCase(testGroup, "8_bit_storage_features", "createDeviceWithUnsupportedFeaturesTest8BitStorageFeatures", createDeviceWithUnsupportedFeaturesTest8BitStorageFeatures);
        addFunctionCase(testGroup, "conditional_rendering_features_ext", "createDeviceWithUnsupportedFeaturesTestConditionalRenderingFeaturesEXT", createDeviceWithUnsupportedFeaturesTestConditionalRenderingFeaturesEXT);
-       addFunctionCase(testGroup, "depth_clip_enable_features_ext", "createDeviceWithUnsupportedFeaturesTestDepthClipEnableFeaturesEXT", createDeviceWithUnsupportedFeaturesTestDepthClipEnableFeaturesEXT);
-       addFunctionCase(testGroup, "blend_operation_advanced_features_ext", "createDeviceWithUnsupportedFeaturesTestBlendOperationAdvancedFeaturesEXT", createDeviceWithUnsupportedFeaturesTestBlendOperationAdvancedFeaturesEXT);
-       addFunctionCase(testGroup, "shader_sm_builtins_features_nv", "createDeviceWithUnsupportedFeaturesTestShaderSMBuiltinsFeaturesNV", createDeviceWithUnsupportedFeaturesTestShaderSMBuiltinsFeaturesNV);
-       addFunctionCase(testGroup, "shading_rate_image_features_nv", "createDeviceWithUnsupportedFeaturesTestShadingRateImageFeaturesNV", createDeviceWithUnsupportedFeaturesTestShadingRateImageFeaturesNV);
-       addFunctionCase(testGroup, "representative_fragment_test_features_nv", "createDeviceWithUnsupportedFeaturesTestRepresentativeFragmentTestFeaturesNV", createDeviceWithUnsupportedFeaturesTestRepresentativeFragmentTestFeaturesNV);
+       addFunctionCase(testGroup, "vulkan_memory_model_features", "createDeviceWithUnsupportedFeaturesTestVulkanMemoryModelFeatures", createDeviceWithUnsupportedFeaturesTestVulkanMemoryModelFeatures);
+       addFunctionCase(testGroup, "shader_atomic_int64_features", "createDeviceWithUnsupportedFeaturesTestShaderAtomicInt64Features", createDeviceWithUnsupportedFeaturesTestShaderAtomicInt64Features);
+       addFunctionCase(testGroup, "shader_atomic_float_features_ext", "createDeviceWithUnsupportedFeaturesTestShaderAtomicFloatFeaturesEXT", createDeviceWithUnsupportedFeaturesTestShaderAtomicFloatFeaturesEXT);
+       addFunctionCase(testGroup, "shader_atomic_float2_features_ext", "createDeviceWithUnsupportedFeaturesTestShaderAtomicFloat2FeaturesEXT", createDeviceWithUnsupportedFeaturesTestShaderAtomicFloat2FeaturesEXT);
        addFunctionCase(testGroup, "vertex_attribute_divisor_features_ext", "createDeviceWithUnsupportedFeaturesTestVertexAttributeDivisorFeaturesEXT", createDeviceWithUnsupportedFeaturesTestVertexAttributeDivisorFeaturesEXT);
+       addFunctionCase(testGroup, "astc_decode_features_ext", "createDeviceWithUnsupportedFeaturesTestASTCDecodeFeaturesEXT", createDeviceWithUnsupportedFeaturesTestASTCDecodeFeaturesEXT);
+       addFunctionCase(testGroup, "transform_feedback_features_ext", "createDeviceWithUnsupportedFeaturesTestTransformFeedbackFeaturesEXT", createDeviceWithUnsupportedFeaturesTestTransformFeedbackFeaturesEXT);
+       addFunctionCase(testGroup, "representative_fragment_test_features_nv", "createDeviceWithUnsupportedFeaturesTestRepresentativeFragmentTestFeaturesNV", createDeviceWithUnsupportedFeaturesTestRepresentativeFragmentTestFeaturesNV);
+       addFunctionCase(testGroup, "exclusive_scissor_features_nv", "createDeviceWithUnsupportedFeaturesTestExclusiveScissorFeaturesNV", createDeviceWithUnsupportedFeaturesTestExclusiveScissorFeaturesNV);
+       addFunctionCase(testGroup, "corner_sampled_image_features_nv", "createDeviceWithUnsupportedFeaturesTestCornerSampledImageFeaturesNV", createDeviceWithUnsupportedFeaturesTestCornerSampledImageFeaturesNV);
        addFunctionCase(testGroup, "compute_shader_derivatives_features_nv", "createDeviceWithUnsupportedFeaturesTestComputeShaderDerivativesFeaturesNV", createDeviceWithUnsupportedFeaturesTestComputeShaderDerivativesFeaturesNV);
-       addFunctionCase(testGroup, "mesh_shader_features_nv", "createDeviceWithUnsupportedFeaturesTestMeshShaderFeaturesNV", createDeviceWithUnsupportedFeaturesTestMeshShaderFeaturesNV);
        addFunctionCase(testGroup, "shader_image_footprint_features_nv", "createDeviceWithUnsupportedFeaturesTestShaderImageFootprintFeaturesNV", createDeviceWithUnsupportedFeaturesTestShaderImageFootprintFeaturesNV);
-       addFunctionCase(testGroup, "exclusive_scissor_features_nv", "createDeviceWithUnsupportedFeaturesTestExclusiveScissorFeaturesNV", createDeviceWithUnsupportedFeaturesTestExclusiveScissorFeaturesNV);
-       addFunctionCase(testGroup, "shader_integer_functions2_features_intel", "createDeviceWithUnsupportedFeaturesTestShaderIntegerFunctions2FeaturesINTEL", createDeviceWithUnsupportedFeaturesTestShaderIntegerFunctions2FeaturesINTEL);
+       addFunctionCase(testGroup, "dedicated_allocation_image_aliasing_features_nv", "createDeviceWithUnsupportedFeaturesTestDedicatedAllocationImageAliasingFeaturesNV", createDeviceWithUnsupportedFeaturesTestDedicatedAllocationImageAliasingFeaturesNV);
+       addFunctionCase(testGroup, "shading_rate_image_features_nv", "createDeviceWithUnsupportedFeaturesTestShadingRateImageFeaturesNV", createDeviceWithUnsupportedFeaturesTestShadingRateImageFeaturesNV);
+       addFunctionCase(testGroup, "invocation_mask_features_huawei", "createDeviceWithUnsupportedFeaturesTestInvocationMaskFeaturesHUAWEI", createDeviceWithUnsupportedFeaturesTestInvocationMaskFeaturesHUAWEI);
+       addFunctionCase(testGroup, "mesh_shader_features_nv", "createDeviceWithUnsupportedFeaturesTestMeshShaderFeaturesNV", createDeviceWithUnsupportedFeaturesTestMeshShaderFeaturesNV);
+       addFunctionCase(testGroup, "acceleration_structure_features_khr", "createDeviceWithUnsupportedFeaturesTestAccelerationStructureFeaturesKHR", createDeviceWithUnsupportedFeaturesTestAccelerationStructureFeaturesKHR);
+       addFunctionCase(testGroup, "ray_tracing_pipeline_features_khr", "createDeviceWithUnsupportedFeaturesTestRayTracingPipelineFeaturesKHR", createDeviceWithUnsupportedFeaturesTestRayTracingPipelineFeaturesKHR);
+       addFunctionCase(testGroup, "ray_query_features_khr", "createDeviceWithUnsupportedFeaturesTestRayQueryFeaturesKHR", createDeviceWithUnsupportedFeaturesTestRayQueryFeaturesKHR);
+       addFunctionCase(testGroup, "ray_tracing_maintenance1_features_khr", "createDeviceWithUnsupportedFeaturesTestRayTracingMaintenance1FeaturesKHR", createDeviceWithUnsupportedFeaturesTestRayTracingMaintenance1FeaturesKHR);
        addFunctionCase(testGroup, "fragment_density_map_features_ext", "createDeviceWithUnsupportedFeaturesTestFragmentDensityMapFeaturesEXT", createDeviceWithUnsupportedFeaturesTestFragmentDensityMapFeaturesEXT);
-       addFunctionCase(testGroup, "coherent_memory_features_amd", "createDeviceWithUnsupportedFeaturesTestCoherentMemoryFeaturesAMD", createDeviceWithUnsupportedFeaturesTestCoherentMemoryFeaturesAMD);
-       addFunctionCase(testGroup, "shader_image_atomic_int64_features_ext", "createDeviceWithUnsupportedFeaturesTestShaderImageAtomicInt64FeaturesEXT", createDeviceWithUnsupportedFeaturesTestShaderImageAtomicInt64FeaturesEXT);
+       addFunctionCase(testGroup, "fragment_density_map2_features_ext", "createDeviceWithUnsupportedFeaturesTestFragmentDensityMap2FeaturesEXT", createDeviceWithUnsupportedFeaturesTestFragmentDensityMap2FeaturesEXT);
+       addFunctionCase(testGroup, "fragment_density_map_offset_features_qcom", "createDeviceWithUnsupportedFeaturesTestFragmentDensityMapOffsetFeaturesQCOM", createDeviceWithUnsupportedFeaturesTestFragmentDensityMapOffsetFeaturesQCOM);
+       addFunctionCase(testGroup, "scalar_block_layout_features", "createDeviceWithUnsupportedFeaturesTestScalarBlockLayoutFeatures", createDeviceWithUnsupportedFeaturesTestScalarBlockLayoutFeatures);
+       addFunctionCase(testGroup, "uniform_buffer_standard_layout_features", "createDeviceWithUnsupportedFeaturesTestUniformBufferStandardLayoutFeatures", createDeviceWithUnsupportedFeaturesTestUniformBufferStandardLayoutFeatures);
+       addFunctionCase(testGroup, "depth_clip_enable_features_ext", "createDeviceWithUnsupportedFeaturesTestDepthClipEnableFeaturesEXT", createDeviceWithUnsupportedFeaturesTestDepthClipEnableFeaturesEXT);
        addFunctionCase(testGroup, "memory_priority_features_ext", "createDeviceWithUnsupportedFeaturesTestMemoryPriorityFeaturesEXT", createDeviceWithUnsupportedFeaturesTestMemoryPriorityFeaturesEXT);
-       addFunctionCase(testGroup, "dedicated_allocation_image_aliasing_features_nv", "createDeviceWithUnsupportedFeaturesTestDedicatedAllocationImageAliasingFeaturesNV", createDeviceWithUnsupportedFeaturesTestDedicatedAllocationImageAliasingFeaturesNV);
+       addFunctionCase(testGroup, "pageable_device_local_memory_features_ext", "createDeviceWithUnsupportedFeaturesTestPageableDeviceLocalMemoryFeaturesEXT", createDeviceWithUnsupportedFeaturesTestPageableDeviceLocalMemoryFeaturesEXT);
+       addFunctionCase(testGroup, "buffer_device_address_features", "createDeviceWithUnsupportedFeaturesTestBufferDeviceAddressFeatures", createDeviceWithUnsupportedFeaturesTestBufferDeviceAddressFeatures);
        addFunctionCase(testGroup, "buffer_device_address_features_ext", "createDeviceWithUnsupportedFeaturesTestBufferDeviceAddressFeaturesEXT", createDeviceWithUnsupportedFeaturesTestBufferDeviceAddressFeaturesEXT);
+       addFunctionCase(testGroup, "imageless_framebuffer_features", "createDeviceWithUnsupportedFeaturesTestImagelessFramebufferFeatures", createDeviceWithUnsupportedFeaturesTestImagelessFramebufferFeatures);
+       addFunctionCase(testGroup, "texture_compression_astchdr_features", "createDeviceWithUnsupportedFeaturesTestTextureCompressionASTCHDRFeatures", createDeviceWithUnsupportedFeaturesTestTextureCompressionASTCHDRFeatures);
        addFunctionCase(testGroup, "cooperative_matrix_features_nv", "createDeviceWithUnsupportedFeaturesTestCooperativeMatrixFeaturesNV", createDeviceWithUnsupportedFeaturesTestCooperativeMatrixFeaturesNV);
-       addFunctionCase(testGroup, "coverage_reduction_mode_features_nv", "createDeviceWithUnsupportedFeaturesTestCoverageReductionModeFeaturesNV", createDeviceWithUnsupportedFeaturesTestCoverageReductionModeFeaturesNV);
-       addFunctionCase(testGroup, "fragment_shader_interlock_features_ext", "createDeviceWithUnsupportedFeaturesTestFragmentShaderInterlockFeaturesEXT", createDeviceWithUnsupportedFeaturesTestFragmentShaderInterlockFeaturesEXT);
        addFunctionCase(testGroup, "ycbcr_image_arrays_features_ext", "createDeviceWithUnsupportedFeaturesTestYcbcrImageArraysFeaturesEXT", createDeviceWithUnsupportedFeaturesTestYcbcrImageArraysFeaturesEXT);
-       addFunctionCase(testGroup, "provoking_vertex_features_ext", "createDeviceWithUnsupportedFeaturesTestProvokingVertexFeaturesEXT", createDeviceWithUnsupportedFeaturesTestProvokingVertexFeaturesEXT);
-       addFunctionCase(testGroup, "line_rasterization_features_ext", "createDeviceWithUnsupportedFeaturesTestLineRasterizationFeaturesEXT", createDeviceWithUnsupportedFeaturesTestLineRasterizationFeaturesEXT);
-       addFunctionCase(testGroup, "shader_atomic_float_features_ext", "createDeviceWithUnsupportedFeaturesTestShaderAtomicFloatFeaturesEXT", createDeviceWithUnsupportedFeaturesTestShaderAtomicFloatFeaturesEXT);
+       addFunctionCase(testGroup, "performance_query_features_khr", "createDeviceWithUnsupportedFeaturesTestPerformanceQueryFeaturesKHR", createDeviceWithUnsupportedFeaturesTestPerformanceQueryFeaturesKHR);
+       addFunctionCase(testGroup, "coverage_reduction_mode_features_nv", "createDeviceWithUnsupportedFeaturesTestCoverageReductionModeFeaturesNV", createDeviceWithUnsupportedFeaturesTestCoverageReductionModeFeaturesNV);
+       addFunctionCase(testGroup, "shader_integer_functions2_features_intel", "createDeviceWithUnsupportedFeaturesTestShaderIntegerFunctions2FeaturesINTEL", createDeviceWithUnsupportedFeaturesTestShaderIntegerFunctions2FeaturesINTEL);
+       addFunctionCase(testGroup, "shader_clock_features_khr", "createDeviceWithUnsupportedFeaturesTestShaderClockFeaturesKHR", createDeviceWithUnsupportedFeaturesTestShaderClockFeaturesKHR);
        addFunctionCase(testGroup, "index_type_uint8_features_ext", "createDeviceWithUnsupportedFeaturesTestIndexTypeUint8FeaturesEXT", createDeviceWithUnsupportedFeaturesTestIndexTypeUint8FeaturesEXT);
-       addFunctionCase(testGroup, "extended_dynamic_state_features_ext", "createDeviceWithUnsupportedFeaturesTestExtendedDynamicStateFeaturesEXT", createDeviceWithUnsupportedFeaturesTestExtendedDynamicStateFeaturesEXT);
-       addFunctionCase(testGroup, "shader_atomic_float2_features_ext", "createDeviceWithUnsupportedFeaturesTestShaderAtomicFloat2FeaturesEXT", createDeviceWithUnsupportedFeaturesTestShaderAtomicFloat2FeaturesEXT);
-       addFunctionCase(testGroup, "device_generated_commands_features_nv", "createDeviceWithUnsupportedFeaturesTestDeviceGeneratedCommandsFeaturesNV", createDeviceWithUnsupportedFeaturesTestDeviceGeneratedCommandsFeaturesNV);
-       addFunctionCase(testGroup, "inherited_viewport_scissor_features_nv", "createDeviceWithUnsupportedFeaturesTestInheritedViewportScissorFeaturesNV", createDeviceWithUnsupportedFeaturesTestInheritedViewportScissorFeaturesNV);
+       addFunctionCase(testGroup, "shader_sm_builtins_features_nv", "createDeviceWithUnsupportedFeaturesTestShaderSMBuiltinsFeaturesNV", createDeviceWithUnsupportedFeaturesTestShaderSMBuiltinsFeaturesNV);
+       addFunctionCase(testGroup, "fragment_shader_interlock_features_ext", "createDeviceWithUnsupportedFeaturesTestFragmentShaderInterlockFeaturesEXT", createDeviceWithUnsupportedFeaturesTestFragmentShaderInterlockFeaturesEXT);
+       addFunctionCase(testGroup, "separate_depth_stencil_layouts_features", "createDeviceWithUnsupportedFeaturesTestSeparateDepthStencilLayoutsFeatures", createDeviceWithUnsupportedFeaturesTestSeparateDepthStencilLayoutsFeatures);
+       addFunctionCase(testGroup, "primitive_topology_list_restart_features_ext", "createDeviceWithUnsupportedFeaturesTestPrimitiveTopologyListRestartFeaturesEXT", createDeviceWithUnsupportedFeaturesTestPrimitiveTopologyListRestartFeaturesEXT);
+       addFunctionCase(testGroup, "pipeline_executable_properties_features_khr", "createDeviceWithUnsupportedFeaturesTestPipelineExecutablePropertiesFeaturesKHR", createDeviceWithUnsupportedFeaturesTestPipelineExecutablePropertiesFeaturesKHR);
+       addFunctionCase(testGroup, "shader_demote_to_helper_invocation_features", "createDeviceWithUnsupportedFeaturesTestShaderDemoteToHelperInvocationFeatures", createDeviceWithUnsupportedFeaturesTestShaderDemoteToHelperInvocationFeatures);
        addFunctionCase(testGroup, "texel_buffer_alignment_features_ext", "createDeviceWithUnsupportedFeaturesTestTexelBufferAlignmentFeaturesEXT", createDeviceWithUnsupportedFeaturesTestTexelBufferAlignmentFeaturesEXT);
-       addFunctionCase(testGroup, "device_memory_report_features_ext", "createDeviceWithUnsupportedFeaturesTestDeviceMemoryReportFeaturesEXT", createDeviceWithUnsupportedFeaturesTestDeviceMemoryReportFeaturesEXT);
-       addFunctionCase(testGroup, "robustness2_features_ext", "createDeviceWithUnsupportedFeaturesTestRobustness2FeaturesEXT", createDeviceWithUnsupportedFeaturesTestRobustness2FeaturesEXT);
+       addFunctionCase(testGroup, "subgroup_size_control_features", "createDeviceWithUnsupportedFeaturesTestSubgroupSizeControlFeatures", createDeviceWithUnsupportedFeaturesTestSubgroupSizeControlFeatures);
+       addFunctionCase(testGroup, "line_rasterization_features_ext", "createDeviceWithUnsupportedFeaturesTestLineRasterizationFeaturesEXT", createDeviceWithUnsupportedFeaturesTestLineRasterizationFeaturesEXT);
+       addFunctionCase(testGroup, "pipeline_creation_cache_control_features", "createDeviceWithUnsupportedFeaturesTestPipelineCreationCacheControlFeatures", createDeviceWithUnsupportedFeaturesTestPipelineCreationCacheControlFeatures);
+       addFunctionCase(testGroup, "vulkan11_features", "createDeviceWithUnsupportedFeaturesTestVulkan11Features", createDeviceWithUnsupportedFeaturesTestVulkan11Features);
+       addFunctionCase(testGroup, "vulkan12_features", "createDeviceWithUnsupportedFeaturesTestVulkan12Features", createDeviceWithUnsupportedFeaturesTestVulkan12Features);
+       addFunctionCase(testGroup, "vulkan13_features", "createDeviceWithUnsupportedFeaturesTestVulkan13Features", createDeviceWithUnsupportedFeaturesTestVulkan13Features);
+       addFunctionCase(testGroup, "coherent_memory_features_amd", "createDeviceWithUnsupportedFeaturesTestCoherentMemoryFeaturesAMD", createDeviceWithUnsupportedFeaturesTestCoherentMemoryFeaturesAMD);
        addFunctionCase(testGroup, "custom_border_color_features_ext", "createDeviceWithUnsupportedFeaturesTestCustomBorderColorFeaturesEXT", createDeviceWithUnsupportedFeaturesTestCustomBorderColorFeaturesEXT);
+       addFunctionCase(testGroup, "border_color_swizzle_features_ext", "createDeviceWithUnsupportedFeaturesTestBorderColorSwizzleFeaturesEXT", createDeviceWithUnsupportedFeaturesTestBorderColorSwizzleFeaturesEXT);
+       addFunctionCase(testGroup, "extended_dynamic_state_features_ext", "createDeviceWithUnsupportedFeaturesTestExtendedDynamicStateFeaturesEXT", createDeviceWithUnsupportedFeaturesTestExtendedDynamicStateFeaturesEXT);
+       addFunctionCase(testGroup, "extended_dynamic_state2_features_ext", "createDeviceWithUnsupportedFeaturesTestExtendedDynamicState2FeaturesEXT", createDeviceWithUnsupportedFeaturesTestExtendedDynamicState2FeaturesEXT);
        addFunctionCase(testGroup, "diagnostics_config_features_nv", "createDeviceWithUnsupportedFeaturesTestDiagnosticsConfigFeaturesNV", createDeviceWithUnsupportedFeaturesTestDiagnosticsConfigFeaturesNV);
-       addFunctionCase(testGroup, "graphics_pipeline_library_features_ext", "createDeviceWithUnsupportedFeaturesTestGraphicsPipelineLibraryFeaturesEXT", createDeviceWithUnsupportedFeaturesTestGraphicsPipelineLibraryFeaturesEXT);
-       addFunctionCase(testGroup, "shader_early_and_late_fragment_tests_features_amd", "createDeviceWithUnsupportedFeaturesTestShaderEarlyAndLateFragmentTestsFeaturesAMD", createDeviceWithUnsupportedFeaturesTestShaderEarlyAndLateFragmentTestsFeaturesAMD);
-       addFunctionCase(testGroup, "fragment_shading_rate_enums_features_nv", "createDeviceWithUnsupportedFeaturesTestFragmentShadingRateEnumsFeaturesNV", createDeviceWithUnsupportedFeaturesTestFragmentShadingRateEnumsFeaturesNV);
-       addFunctionCase(testGroup, "ray_tracing_motion_blur_features_nv", "createDeviceWithUnsupportedFeaturesTestRayTracingMotionBlurFeaturesNV", createDeviceWithUnsupportedFeaturesTestRayTracingMotionBlurFeaturesNV);
-       addFunctionCase(testGroup, "ycbcr2_plane444_formats_features_ext", "createDeviceWithUnsupportedFeaturesTestYcbcr2Plane444FormatsFeaturesEXT", createDeviceWithUnsupportedFeaturesTestYcbcr2Plane444FormatsFeaturesEXT);
-       addFunctionCase(testGroup, "fragment_density_map2_features_ext", "createDeviceWithUnsupportedFeaturesTestFragmentDensityMap2FeaturesEXT", createDeviceWithUnsupportedFeaturesTestFragmentDensityMap2FeaturesEXT);
-       addFunctionCase(testGroup, "image_compression_control_features_ext", "createDeviceWithUnsupportedFeaturesTestImageCompressionControlFeaturesEXT", createDeviceWithUnsupportedFeaturesTestImageCompressionControlFeaturesEXT);
+       addFunctionCase(testGroup, "zero_initialize_workgroup_memory_features", "createDeviceWithUnsupportedFeaturesTestZeroInitializeWorkgroupMemoryFeatures", createDeviceWithUnsupportedFeaturesTestZeroInitializeWorkgroupMemoryFeatures);
+       addFunctionCase(testGroup, "shader_subgroup_uniform_control_flow_features_khr", "createDeviceWithUnsupportedFeaturesTestShaderSubgroupUniformControlFlowFeaturesKHR", createDeviceWithUnsupportedFeaturesTestShaderSubgroupUniformControlFlowFeaturesKHR);
+       addFunctionCase(testGroup, "robustness2_features_ext", "createDeviceWithUnsupportedFeaturesTestRobustness2FeaturesEXT", createDeviceWithUnsupportedFeaturesTestRobustness2FeaturesEXT);
+       addFunctionCase(testGroup, "image_robustness_features", "createDeviceWithUnsupportedFeaturesTestImageRobustnessFeatures", createDeviceWithUnsupportedFeaturesTestImageRobustnessFeatures);
+       addFunctionCase(testGroup, "workgroup_memory_explicit_layout_features_khr", "createDeviceWithUnsupportedFeaturesTestWorkgroupMemoryExplicitLayoutFeaturesKHR", createDeviceWithUnsupportedFeaturesTestWorkgroupMemoryExplicitLayoutFeaturesKHR);
+       addFunctionCase(testGroup, "portability_subset_features_khr", "createDeviceWithUnsupportedFeaturesTestPortabilitySubsetFeaturesKHR", createDeviceWithUnsupportedFeaturesTestPortabilitySubsetFeaturesKHR);
        addFunctionCase(testGroup, "4444_formats_features_ext", "createDeviceWithUnsupportedFeaturesTest4444FormatsFeaturesEXT", createDeviceWithUnsupportedFeaturesTest4444FormatsFeaturesEXT);
-       addFunctionCase(testGroup, "rasterization_order_attachment_access_features_arm", "createDeviceWithUnsupportedFeaturesTestRasterizationOrderAttachmentAccessFeaturesARM", createDeviceWithUnsupportedFeaturesTestRasterizationOrderAttachmentAccessFeaturesARM);
-       addFunctionCase(testGroup, "rgba10_x6_formats_features_ext", "createDeviceWithUnsupportedFeaturesTestRGBA10X6FormatsFeaturesEXT", createDeviceWithUnsupportedFeaturesTestRGBA10X6FormatsFeaturesEXT);
+       addFunctionCase(testGroup, "subpass_shading_features_huawei", "createDeviceWithUnsupportedFeaturesTestSubpassShadingFeaturesHUAWEI", createDeviceWithUnsupportedFeaturesTestSubpassShadingFeaturesHUAWEI);
+       addFunctionCase(testGroup, "shader_image_atomic_int64_features_ext", "createDeviceWithUnsupportedFeaturesTestShaderImageAtomicInt64FeaturesEXT", createDeviceWithUnsupportedFeaturesTestShaderImageAtomicInt64FeaturesEXT);
+       addFunctionCase(testGroup, "fragment_shading_rate_features_khr", "createDeviceWithUnsupportedFeaturesTestFragmentShadingRateFeaturesKHR", createDeviceWithUnsupportedFeaturesTestFragmentShadingRateFeaturesKHR);
+       addFunctionCase(testGroup, "shader_terminate_invocation_features", "createDeviceWithUnsupportedFeaturesTestShaderTerminateInvocationFeatures", createDeviceWithUnsupportedFeaturesTestShaderTerminateInvocationFeatures);
+       addFunctionCase(testGroup, "fragment_shading_rate_enums_features_nv", "createDeviceWithUnsupportedFeaturesTestFragmentShadingRateEnumsFeaturesNV", createDeviceWithUnsupportedFeaturesTestFragmentShadingRateEnumsFeaturesNV);
+       addFunctionCase(testGroup, "image2_d_view_of3_d_features_ext", "createDeviceWithUnsupportedFeaturesTestImage2DViewOf3DFeaturesEXT", createDeviceWithUnsupportedFeaturesTestImage2DViewOf3DFeaturesEXT);
        addFunctionCase(testGroup, "mutable_descriptor_type_features_valve", "createDeviceWithUnsupportedFeaturesTestMutableDescriptorTypeFeaturesVALVE", createDeviceWithUnsupportedFeaturesTestMutableDescriptorTypeFeaturesVALVE);
-       addFunctionCase(testGroup, "vertex_input_dynamic_state_features_ext", "createDeviceWithUnsupportedFeaturesTestVertexInputDynamicStateFeaturesEXT", createDeviceWithUnsupportedFeaturesTestVertexInputDynamicStateFeaturesEXT);
        addFunctionCase(testGroup, "depth_clip_control_features_ext", "createDeviceWithUnsupportedFeaturesTestDepthClipControlFeaturesEXT", createDeviceWithUnsupportedFeaturesTestDepthClipControlFeaturesEXT);
-       addFunctionCase(testGroup, "primitive_topology_list_restart_features_ext", "createDeviceWithUnsupportedFeaturesTestPrimitiveTopologyListRestartFeaturesEXT", createDeviceWithUnsupportedFeaturesTestPrimitiveTopologyListRestartFeaturesEXT);
-       addFunctionCase(testGroup, "subpass_shading_features_huawei", "createDeviceWithUnsupportedFeaturesTestSubpassShadingFeaturesHUAWEI", createDeviceWithUnsupportedFeaturesTestSubpassShadingFeaturesHUAWEI);
-       addFunctionCase(testGroup, "invocation_mask_features_huawei", "createDeviceWithUnsupportedFeaturesTestInvocationMaskFeaturesHUAWEI", createDeviceWithUnsupportedFeaturesTestInvocationMaskFeaturesHUAWEI);
+       addFunctionCase(testGroup, "vertex_input_dynamic_state_features_ext", "createDeviceWithUnsupportedFeaturesTestVertexInputDynamicStateFeaturesEXT", createDeviceWithUnsupportedFeaturesTestVertexInputDynamicStateFeaturesEXT);
        addFunctionCase(testGroup, "external_memory_rdma_features_nv", "createDeviceWithUnsupportedFeaturesTestExternalMemoryRDMAFeaturesNV", createDeviceWithUnsupportedFeaturesTestExternalMemoryRDMAFeaturesNV);
-       addFunctionCase(testGroup, "pipeline_properties_features_ext", "createDeviceWithUnsupportedFeaturesTestPipelinePropertiesFeaturesEXT", createDeviceWithUnsupportedFeaturesTestPipelinePropertiesFeaturesEXT);
-       addFunctionCase(testGroup, "multisampled_render_to_single_sampled_features_ext", "createDeviceWithUnsupportedFeaturesTestMultisampledRenderToSingleSampledFeaturesEXT", createDeviceWithUnsupportedFeaturesTestMultisampledRenderToSingleSampledFeaturesEXT);
-       addFunctionCase(testGroup, "extended_dynamic_state2_features_ext", "createDeviceWithUnsupportedFeaturesTestExtendedDynamicState2FeaturesEXT", createDeviceWithUnsupportedFeaturesTestExtendedDynamicState2FeaturesEXT);
        addFunctionCase(testGroup, "color_write_enable_features_ext", "createDeviceWithUnsupportedFeaturesTestColorWriteEnableFeaturesEXT", createDeviceWithUnsupportedFeaturesTestColorWriteEnableFeaturesEXT);
+       addFunctionCase(testGroup, "synchronization2_features", "createDeviceWithUnsupportedFeaturesTestSynchronization2Features", createDeviceWithUnsupportedFeaturesTestSynchronization2Features);
        addFunctionCase(testGroup, "primitives_generated_query_features_ext", "createDeviceWithUnsupportedFeaturesTestPrimitivesGeneratedQueryFeaturesEXT", createDeviceWithUnsupportedFeaturesTestPrimitivesGeneratedQueryFeaturesEXT);
+       addFunctionCase(testGroup, "multisampled_render_to_single_sampled_features_ext", "createDeviceWithUnsupportedFeaturesTestMultisampledRenderToSingleSampledFeaturesEXT", createDeviceWithUnsupportedFeaturesTestMultisampledRenderToSingleSampledFeaturesEXT);
+       addFunctionCase(testGroup, "inherited_viewport_scissor_features_nv", "createDeviceWithUnsupportedFeaturesTestInheritedViewportScissorFeaturesNV", createDeviceWithUnsupportedFeaturesTestInheritedViewportScissorFeaturesNV);
+       addFunctionCase(testGroup, "ycbcr2_plane444_formats_features_ext", "createDeviceWithUnsupportedFeaturesTestYcbcr2Plane444FormatsFeaturesEXT", createDeviceWithUnsupportedFeaturesTestYcbcr2Plane444FormatsFeaturesEXT);
+       addFunctionCase(testGroup, "provoking_vertex_features_ext", "createDeviceWithUnsupportedFeaturesTestProvokingVertexFeaturesEXT", createDeviceWithUnsupportedFeaturesTestProvokingVertexFeaturesEXT);
+       addFunctionCase(testGroup, "shader_integer_dot_product_features", "createDeviceWithUnsupportedFeaturesTestShaderIntegerDotProductFeatures", createDeviceWithUnsupportedFeaturesTestShaderIntegerDotProductFeatures);
+       addFunctionCase(testGroup, "fragment_shader_barycentric_features_khr", "createDeviceWithUnsupportedFeaturesTestFragmentShaderBarycentricFeaturesKHR", createDeviceWithUnsupportedFeaturesTestFragmentShaderBarycentricFeaturesKHR);
+       addFunctionCase(testGroup, "ray_tracing_motion_blur_features_nv", "createDeviceWithUnsupportedFeaturesTestRayTracingMotionBlurFeaturesNV", createDeviceWithUnsupportedFeaturesTestRayTracingMotionBlurFeaturesNV);
+       addFunctionCase(testGroup, "rgba10_x6_formats_features_ext", "createDeviceWithUnsupportedFeaturesTestRGBA10X6FormatsFeaturesEXT", createDeviceWithUnsupportedFeaturesTestRGBA10X6FormatsFeaturesEXT);
+       addFunctionCase(testGroup, "dynamic_rendering_features", "createDeviceWithUnsupportedFeaturesTestDynamicRenderingFeatures", createDeviceWithUnsupportedFeaturesTestDynamicRenderingFeatures);
        addFunctionCase(testGroup, "image_view_min_lod_features_ext", "createDeviceWithUnsupportedFeaturesTestImageViewMinLodFeaturesEXT", createDeviceWithUnsupportedFeaturesTestImageViewMinLodFeaturesEXT);
-       addFunctionCase(testGroup, "multi_draw_features_ext", "createDeviceWithUnsupportedFeaturesTestMultiDrawFeaturesEXT", createDeviceWithUnsupportedFeaturesTestMultiDrawFeaturesEXT);
-       addFunctionCase(testGroup, "image2_d_view_of3_d_features_ext", "createDeviceWithUnsupportedFeaturesTestImage2DViewOf3DFeaturesEXT", createDeviceWithUnsupportedFeaturesTestImage2DViewOf3DFeaturesEXT);
-       addFunctionCase(testGroup, "border_color_swizzle_features_ext", "createDeviceWithUnsupportedFeaturesTestBorderColorSwizzleFeaturesEXT", createDeviceWithUnsupportedFeaturesTestBorderColorSwizzleFeaturesEXT);
-       addFunctionCase(testGroup, "pageable_device_local_memory_features_ext", "createDeviceWithUnsupportedFeaturesTestPageableDeviceLocalMemoryFeaturesEXT", createDeviceWithUnsupportedFeaturesTestPageableDeviceLocalMemoryFeaturesEXT);
-       addFunctionCase(testGroup, "descriptor_set_host_mapping_features_valve", "createDeviceWithUnsupportedFeaturesTestDescriptorSetHostMappingFeaturesVALVE", createDeviceWithUnsupportedFeaturesTestDescriptorSetHostMappingFeaturesVALVE);
-       addFunctionCase(testGroup, "non_seamless_cube_map_features_ext", "createDeviceWithUnsupportedFeaturesTestNonSeamlessCubeMapFeaturesEXT", createDeviceWithUnsupportedFeaturesTestNonSeamlessCubeMapFeaturesEXT);
-       addFunctionCase(testGroup, "fragment_density_map_offset_features_qcom", "createDeviceWithUnsupportedFeaturesTestFragmentDensityMapOffsetFeaturesQCOM", createDeviceWithUnsupportedFeaturesTestFragmentDensityMapOffsetFeaturesQCOM);
+       addFunctionCase(testGroup, "rasterization_order_attachment_access_features_arm", "createDeviceWithUnsupportedFeaturesTestRasterizationOrderAttachmentAccessFeaturesARM", createDeviceWithUnsupportedFeaturesTestRasterizationOrderAttachmentAccessFeaturesARM);
        addFunctionCase(testGroup, "linear_color_attachment_features_nv", "createDeviceWithUnsupportedFeaturesTestLinearColorAttachmentFeaturesNV", createDeviceWithUnsupportedFeaturesTestLinearColorAttachmentFeaturesNV);
+       addFunctionCase(testGroup, "graphics_pipeline_library_features_ext", "createDeviceWithUnsupportedFeaturesTestGraphicsPipelineLibraryFeaturesEXT", createDeviceWithUnsupportedFeaturesTestGraphicsPipelineLibraryFeaturesEXT);
+       addFunctionCase(testGroup, "descriptor_set_host_mapping_features_valve", "createDeviceWithUnsupportedFeaturesTestDescriptorSetHostMappingFeaturesVALVE", createDeviceWithUnsupportedFeaturesTestDescriptorSetHostMappingFeaturesVALVE);
+       addFunctionCase(testGroup, "shader_module_identifier_features_ext", "createDeviceWithUnsupportedFeaturesTestShaderModuleIdentifierFeaturesEXT", createDeviceWithUnsupportedFeaturesTestShaderModuleIdentifierFeaturesEXT);
+       addFunctionCase(testGroup, "image_compression_control_features_ext", "createDeviceWithUnsupportedFeaturesTestImageCompressionControlFeaturesEXT", createDeviceWithUnsupportedFeaturesTestImageCompressionControlFeaturesEXT);
        addFunctionCase(testGroup, "image_compression_control_swapchain_features_ext", "createDeviceWithUnsupportedFeaturesTestImageCompressionControlSwapchainFeaturesEXT", createDeviceWithUnsupportedFeaturesTestImageCompressionControlSwapchainFeaturesEXT);
-       addFunctionCase(testGroup, "image_processing_features_qcom", "createDeviceWithUnsupportedFeaturesTestImageProcessingFeaturesQCOM", createDeviceWithUnsupportedFeaturesTestImageProcessingFeaturesQCOM);
        addFunctionCase(testGroup, "subpass_merge_feedback_features_ext", "createDeviceWithUnsupportedFeaturesTestSubpassMergeFeedbackFeaturesEXT", createDeviceWithUnsupportedFeaturesTestSubpassMergeFeedbackFeaturesEXT);
-       addFunctionCase(testGroup, "shader_module_identifier_features_ext", "createDeviceWithUnsupportedFeaturesTestShaderModuleIdentifierFeaturesEXT", createDeviceWithUnsupportedFeaturesTestShaderModuleIdentifierFeaturesEXT);
+       addFunctionCase(testGroup, "pipeline_properties_features_ext", "createDeviceWithUnsupportedFeaturesTestPipelinePropertiesFeaturesEXT", createDeviceWithUnsupportedFeaturesTestPipelinePropertiesFeaturesEXT);
+       addFunctionCase(testGroup, "shader_early_and_late_fragment_tests_features_amd", "createDeviceWithUnsupportedFeaturesTestShaderEarlyAndLateFragmentTestsFeaturesAMD", createDeviceWithUnsupportedFeaturesTestShaderEarlyAndLateFragmentTestsFeaturesAMD);
+       addFunctionCase(testGroup, "non_seamless_cube_map_features_ext", "createDeviceWithUnsupportedFeaturesTestNonSeamlessCubeMapFeaturesEXT", createDeviceWithUnsupportedFeaturesTestNonSeamlessCubeMapFeaturesEXT);
+       addFunctionCase(testGroup, "pipeline_robustness_features_ext", "createDeviceWithUnsupportedFeaturesTestPipelineRobustnessFeaturesEXT", createDeviceWithUnsupportedFeaturesTestPipelineRobustnessFeaturesEXT);
+       addFunctionCase(testGroup, "image_processing_features_qcom", "createDeviceWithUnsupportedFeaturesTestImageProcessingFeaturesQCOM", createDeviceWithUnsupportedFeaturesTestImageProcessingFeaturesQCOM);
        addFunctionCase(testGroup, "tile_properties_features_qcom", "createDeviceWithUnsupportedFeaturesTestTilePropertiesFeaturesQCOM", createDeviceWithUnsupportedFeaturesTestTilePropertiesFeaturesQCOM);
-       addFunctionCase(testGroup, "acceleration_structure_features_khr", "createDeviceWithUnsupportedFeaturesTestAccelerationStructureFeaturesKHR", createDeviceWithUnsupportedFeaturesTestAccelerationStructureFeaturesKHR);
-       addFunctionCase(testGroup, "ray_tracing_pipeline_features_khr", "createDeviceWithUnsupportedFeaturesTestRayTracingPipelineFeaturesKHR", createDeviceWithUnsupportedFeaturesTestRayTracingPipelineFeaturesKHR);
-       addFunctionCase(testGroup, "ray_query_features_khr", "createDeviceWithUnsupportedFeaturesTestRayQueryFeaturesKHR", createDeviceWithUnsupportedFeaturesTestRayQueryFeaturesKHR);
-       addFunctionCase(testGroup, "portability_subset_features_khr", "createDeviceWithUnsupportedFeaturesTestPortabilitySubsetFeaturesKHR", createDeviceWithUnsupportedFeaturesTestPortabilitySubsetFeaturesKHR);
 }
 
index 296730b..f4b0978 100644 (file)
 
 namespace vk
 {
-#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
-#define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
-#define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
-#define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
+#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
+#define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
+#define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
+#define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
+#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
 #define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
-#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
-#define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle"
-#define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
-#define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
-#define DECL_AMD_COHERENT_MEMORY_EXTENSION_NAME "not_existent_feature"
-#define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable"
-#define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
+#define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness"
 #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
-#define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
-#define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
-#define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
-#define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
-#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
-#define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control"
+#define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
+#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
 #define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
+#define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
+#define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
+#define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
+#define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
+#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
+#define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
+#define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
+#define VK_KHR_RAY_QUERY_EXTENSION_NAME "VK_KHR_ray_query"
+#define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
+#define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
 #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
-#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping"
-#define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
-#define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
-#define DECL_NV_DIAGNOSTICS_CONFIG_EXTENSION_NAME "not_existent_feature"
-#define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
+#define VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME "VK_KHR_portability_subset"
+#define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
+#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
+#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
+#define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
+#define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
+#define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
+#define VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME "VK_KHR_global_priority"
+#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
+#define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
+#define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader"
+#define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
 #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
-#define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
-#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
-#define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
+#define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
+#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
+#define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
+#define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
-#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
-#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
-#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric"
-#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
+#define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
+#define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
 #define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
-#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
-#define DECL_KHR_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "not_existent_feature"
-#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
-#define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
-#define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
-#define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d"
-#define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control"
-#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain"
-#define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing"
-#define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
-#define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod"
-#define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
-#define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor"
-#define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
-#define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask"
-#define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment"
-#define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
-#define DECL_MAINTENANCE4_EXTENSION_NAME "not_existent_feature"
+#define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
+#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64"
 #define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
-#define VK_NV_MESH_SHADER_EXTENSION_NAME  "VK_NV_mesh_shader"
-#define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME "VK_EXT_multisampled_render_to_single_sampled"
-#define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"
-#define VK_EXT_MULTI_DRAW_EXTENSION_NAME  "VK_EXT_multi_draw"
-#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type"
-#define VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME "VK_EXT_non_seamless_cube_map"
-#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
-#define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
-#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
-#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
-#define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties"
-#define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness"
-#define VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME "VK_KHR_portability_subset"
-#define VK_KHR_PRESENT_ID_EXTENSION_NAME  "VK_KHR_present_id"
+#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
+#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
+#define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
 #define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait"
-#define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query"
-#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
-#define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
-#define DECL_PROTECTED_MEMORY_EXTENSION_NAME "not_existent_feature"
+#define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
+#define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
+#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
+#define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
+#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
 #define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex"
-#define VK_KHR_RAY_QUERY_EXTENSION_NAME   "VK_KHR_ray_query"
-#define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1"
-#define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur"
-#define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
-#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
-#define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats"
-#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
-#define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
-#define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
-#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
+#define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
+#define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
 #define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float"
+#define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
+#define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
+#define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
+#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
 #define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2"
-#define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
-#define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
-#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
-#define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests"
-#define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
-#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64"
-#define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
+#define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
+#define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor"
 #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
-#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
-#define VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME "VK_EXT_shader_module_identifier"
-#define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
-#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
+#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
+#define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
+#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
+#define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
+#define VK_KHR_PRESENT_ID_EXTENSION_NAME "VK_KHR_present_id"
+#define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
+#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
+#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
+#define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2"
+#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
+#define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests"
+#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric"
 #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow"
-#define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
-#define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
-#define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
-#define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback"
+#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory"
+#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
+#define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur"
+#define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats"
+#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
+#define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
+#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout"
+#define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control"
+#define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
+#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access"
+#define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats"
+#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type"
+#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state"
+#define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control"
+#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
 #define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
-#define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2"
-#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
-#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
+#define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask"
+#define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
+#define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties"
+#define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME "VK_EXT_multisampled_render_to_single_sampled"
+#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
+#define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable"
+#define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query"
+#define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1"
+#define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod"
+#define VK_EXT_MULTI_DRAW_EXTENSION_NAME "VK_EXT_multi_draw"
+#define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d"
+#define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle"
+#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
+#define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4"
+#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping"
+#define VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME "VK_EXT_non_seamless_cube_map"
+#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
+#define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment"
+#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain"
+#define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing"
+#define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback"
+#define VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME "VK_EXT_shader_module_identifier"
 #define VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME "VK_QCOM_tile_properties"
-#define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
-#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
-#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
-#define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
-#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
-#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state"
-#define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
-#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout"
-#define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats"
-#define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
-#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory"
+#define DECL_PROTECTED_MEMORY_EXTENSION_NAME "not_existent_feature"
+#define DECL_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "not_existent_feature"
 
 
-template<> void initFeatureFromBlob<VkPhysicalDevice16BitStorageFeatures>(VkPhysicalDevice16BitStorageFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
+template<> void initFeatureFromBlob<VkPhysicalDevicePrivateDataFeatures>(VkPhysicalDevicePrivateDataFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
-       featureType.storageBuffer16BitAccess = allFeaturesBlobs.vk11.storageBuffer16BitAccess;
-       featureType.uniformAndStorageBuffer16BitAccess = allFeaturesBlobs.vk11.uniformAndStorageBuffer16BitAccess;
-       featureType.storagePushConstant16 = allFeaturesBlobs.vk11.storagePushConstant16;
-       featureType.storageInputOutput16 = allFeaturesBlobs.vk11.storageInputOutput16;
+       featureType.privateData = allFeaturesBlobs.vk13.privateData;
+}
+template<> void initFeatureFromBlob<VkPhysicalDeviceVariablePointersFeatures>(VkPhysicalDeviceVariablePointersFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
+{
+       featureType.variablePointersStorageBuffer = allFeaturesBlobs.vk11.variablePointersStorageBuffer;
+       featureType.variablePointers = allFeaturesBlobs.vk11.variablePointers;
 }
 template<> void initFeatureFromBlob<VkPhysicalDeviceMultiviewFeatures>(VkPhysicalDeviceMultiviewFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
@@ -143,39 +146,47 @@ template<> void initFeatureFromBlob<VkPhysicalDeviceMultiviewFeatures>(VkPhysica
        featureType.multiviewGeometryShader = allFeaturesBlobs.vk11.multiviewGeometryShader;
        featureType.multiviewTessellationShader = allFeaturesBlobs.vk11.multiviewTessellationShader;
 }
-template<> void initFeatureFromBlob<VkPhysicalDeviceVariablePointersFeatures>(VkPhysicalDeviceVariablePointersFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
+template<> void initFeatureFromBlob<VkPhysicalDevice16BitStorageFeatures>(VkPhysicalDevice16BitStorageFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
-       featureType.variablePointersStorageBuffer = allFeaturesBlobs.vk11.variablePointersStorageBuffer;
-       featureType.variablePointers = allFeaturesBlobs.vk11.variablePointers;
+       featureType.storageBuffer16BitAccess = allFeaturesBlobs.vk11.storageBuffer16BitAccess;
+       featureType.uniformAndStorageBuffer16BitAccess = allFeaturesBlobs.vk11.uniformAndStorageBuffer16BitAccess;
+       featureType.storagePushConstant16 = allFeaturesBlobs.vk11.storagePushConstant16;
+       featureType.storageInputOutput16 = allFeaturesBlobs.vk11.storageInputOutput16;
 }
-template<> void initFeatureFromBlob<VkPhysicalDeviceProtectedMemoryFeatures>(VkPhysicalDeviceProtectedMemoryFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
+template<> void initFeatureFromBlob<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures>(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
-       featureType.protectedMemory = allFeaturesBlobs.vk11.protectedMemory;
+       featureType.shaderSubgroupExtendedTypes = allFeaturesBlobs.vk12.shaderSubgroupExtendedTypes;
 }
 template<> void initFeatureFromBlob<VkPhysicalDeviceSamplerYcbcrConversionFeatures>(VkPhysicalDeviceSamplerYcbcrConversionFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
        featureType.samplerYcbcrConversion = allFeaturesBlobs.vk11.samplerYcbcrConversion;
 }
-template<> void initFeatureFromBlob<VkPhysicalDeviceShaderDrawParametersFeatures>(VkPhysicalDeviceShaderDrawParametersFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
+template<> void initFeatureFromBlob<VkPhysicalDeviceProtectedMemoryFeatures>(VkPhysicalDeviceProtectedMemoryFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
-       featureType.shaderDrawParameters = allFeaturesBlobs.vk11.shaderDrawParameters;
+       featureType.protectedMemory = allFeaturesBlobs.vk11.protectedMemory;
 }
-template<> void initFeatureFromBlob<VkPhysicalDevice8BitStorageFeatures>(VkPhysicalDevice8BitStorageFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
+template<> void initFeatureFromBlob<VkPhysicalDeviceInlineUniformBlockFeatures>(VkPhysicalDeviceInlineUniformBlockFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
-       featureType.storageBuffer8BitAccess = allFeaturesBlobs.vk12.storageBuffer8BitAccess;
-       featureType.uniformAndStorageBuffer8BitAccess = allFeaturesBlobs.vk12.uniformAndStorageBuffer8BitAccess;
-       featureType.storagePushConstant8 = allFeaturesBlobs.vk12.storagePushConstant8;
+       featureType.inlineUniformBlock = allFeaturesBlobs.vk13.inlineUniformBlock;
+       featureType.descriptorBindingInlineUniformBlockUpdateAfterBind = allFeaturesBlobs.vk13.descriptorBindingInlineUniformBlockUpdateAfterBind;
 }
-template<> void initFeatureFromBlob<VkPhysicalDeviceShaderAtomicInt64Features>(VkPhysicalDeviceShaderAtomicInt64Features& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
+template<> void initFeatureFromBlob<VkPhysicalDeviceMaintenance4Features>(VkPhysicalDeviceMaintenance4Features& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
-       featureType.shaderBufferInt64Atomics = allFeaturesBlobs.vk12.shaderBufferInt64Atomics;
-       featureType.shaderSharedInt64Atomics = allFeaturesBlobs.vk12.shaderSharedInt64Atomics;
+       featureType.maintenance4 = allFeaturesBlobs.vk13.maintenance4;
+}
+template<> void initFeatureFromBlob<VkPhysicalDeviceShaderDrawParametersFeatures>(VkPhysicalDeviceShaderDrawParametersFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
+{
+       featureType.shaderDrawParameters = allFeaturesBlobs.vk11.shaderDrawParameters;
 }
 template<> void initFeatureFromBlob<VkPhysicalDeviceShaderFloat16Int8Features>(VkPhysicalDeviceShaderFloat16Int8Features& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
        featureType.shaderFloat16 = allFeaturesBlobs.vk12.shaderFloat16;
        featureType.shaderInt8 = allFeaturesBlobs.vk12.shaderInt8;
 }
+template<> void initFeatureFromBlob<VkPhysicalDeviceHostQueryResetFeatures>(VkPhysicalDeviceHostQueryResetFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
+{
+       featureType.hostQueryReset = allFeaturesBlobs.vk12.hostQueryReset;
+}
 template<> void initFeatureFromBlob<VkPhysicalDeviceDescriptorIndexingFeatures>(VkPhysicalDeviceDescriptorIndexingFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
        featureType.shaderInputAttachmentArrayDynamicIndexing = allFeaturesBlobs.vk12.shaderInputAttachmentArrayDynamicIndexing;
@@ -199,9 +210,15 @@ template<> void initFeatureFromBlob<VkPhysicalDeviceDescriptorIndexingFeatures>(
        featureType.descriptorBindingVariableDescriptorCount = allFeaturesBlobs.vk12.descriptorBindingVariableDescriptorCount;
        featureType.runtimeDescriptorArray = allFeaturesBlobs.vk12.runtimeDescriptorArray;
 }
-template<> void initFeatureFromBlob<VkPhysicalDeviceScalarBlockLayoutFeatures>(VkPhysicalDeviceScalarBlockLayoutFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
+template<> void initFeatureFromBlob<VkPhysicalDeviceTimelineSemaphoreFeatures>(VkPhysicalDeviceTimelineSemaphoreFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
-       featureType.scalarBlockLayout = allFeaturesBlobs.vk12.scalarBlockLayout;
+       featureType.timelineSemaphore = allFeaturesBlobs.vk12.timelineSemaphore;
+}
+template<> void initFeatureFromBlob<VkPhysicalDevice8BitStorageFeatures>(VkPhysicalDevice8BitStorageFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
+{
+       featureType.storageBuffer8BitAccess = allFeaturesBlobs.vk12.storageBuffer8BitAccess;
+       featureType.uniformAndStorageBuffer8BitAccess = allFeaturesBlobs.vk12.uniformAndStorageBuffer8BitAccess;
+       featureType.storagePushConstant8 = allFeaturesBlobs.vk12.storagePushConstant8;
 }
 template<> void initFeatureFromBlob<VkPhysicalDeviceVulkanMemoryModelFeatures>(VkPhysicalDeviceVulkanMemoryModelFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
@@ -209,56 +226,50 @@ template<> void initFeatureFromBlob<VkPhysicalDeviceVulkanMemoryModelFeatures>(V
        featureType.vulkanMemoryModelDeviceScope = allFeaturesBlobs.vk12.vulkanMemoryModelDeviceScope;
        featureType.vulkanMemoryModelAvailabilityVisibilityChains = allFeaturesBlobs.vk12.vulkanMemoryModelAvailabilityVisibilityChains;
 }
-template<> void initFeatureFromBlob<VkPhysicalDeviceImagelessFramebufferFeatures>(VkPhysicalDeviceImagelessFramebufferFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
+template<> void initFeatureFromBlob<VkPhysicalDeviceShaderAtomicInt64Features>(VkPhysicalDeviceShaderAtomicInt64Features& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
-       featureType.imagelessFramebuffer = allFeaturesBlobs.vk12.imagelessFramebuffer;
+       featureType.shaderBufferInt64Atomics = allFeaturesBlobs.vk12.shaderBufferInt64Atomics;
+       featureType.shaderSharedInt64Atomics = allFeaturesBlobs.vk12.shaderSharedInt64Atomics;
+}
+template<> void initFeatureFromBlob<VkPhysicalDeviceScalarBlockLayoutFeatures>(VkPhysicalDeviceScalarBlockLayoutFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
+{
+       featureType.scalarBlockLayout = allFeaturesBlobs.vk12.scalarBlockLayout;
 }
 template<> void initFeatureFromBlob<VkPhysicalDeviceUniformBufferStandardLayoutFeatures>(VkPhysicalDeviceUniformBufferStandardLayoutFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
        featureType.uniformBufferStandardLayout = allFeaturesBlobs.vk12.uniformBufferStandardLayout;
 }
-template<> void initFeatureFromBlob<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures>(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
-{
-       featureType.shaderSubgroupExtendedTypes = allFeaturesBlobs.vk12.shaderSubgroupExtendedTypes;
-}
-template<> void initFeatureFromBlob<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures>(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
-{
-       featureType.separateDepthStencilLayouts = allFeaturesBlobs.vk12.separateDepthStencilLayouts;
-}
-template<> void initFeatureFromBlob<VkPhysicalDeviceHostQueryResetFeatures>(VkPhysicalDeviceHostQueryResetFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
-{
-       featureType.hostQueryReset = allFeaturesBlobs.vk12.hostQueryReset;
-}
-template<> void initFeatureFromBlob<VkPhysicalDeviceTimelineSemaphoreFeatures>(VkPhysicalDeviceTimelineSemaphoreFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
-{
-       featureType.timelineSemaphore = allFeaturesBlobs.vk12.timelineSemaphore;
-}
 template<> void initFeatureFromBlob<VkPhysicalDeviceBufferDeviceAddressFeatures>(VkPhysicalDeviceBufferDeviceAddressFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
        featureType.bufferDeviceAddress = allFeaturesBlobs.vk12.bufferDeviceAddress;
        featureType.bufferDeviceAddressCaptureReplay = allFeaturesBlobs.vk12.bufferDeviceAddressCaptureReplay;
        featureType.bufferDeviceAddressMultiDevice = allFeaturesBlobs.vk12.bufferDeviceAddressMultiDevice;
 }
-template<> void initFeatureFromBlob<VkPhysicalDeviceShaderTerminateInvocationFeatures>(VkPhysicalDeviceShaderTerminateInvocationFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
+template<> void initFeatureFromBlob<VkPhysicalDeviceImagelessFramebufferFeatures>(VkPhysicalDeviceImagelessFramebufferFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
-       featureType.shaderTerminateInvocation = allFeaturesBlobs.vk13.shaderTerminateInvocation;
+       featureType.imagelessFramebuffer = allFeaturesBlobs.vk12.imagelessFramebuffer;
+}
+template<> void initFeatureFromBlob<VkPhysicalDeviceTextureCompressionASTCHDRFeatures>(VkPhysicalDeviceTextureCompressionASTCHDRFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
+{
+       featureType.textureCompressionASTC_HDR = allFeaturesBlobs.vk13.textureCompressionASTC_HDR;
+}
+template<> void initFeatureFromBlob<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures>(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
+{
+       featureType.separateDepthStencilLayouts = allFeaturesBlobs.vk12.separateDepthStencilLayouts;
 }
 template<> void initFeatureFromBlob<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures>(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
        featureType.shaderDemoteToHelperInvocation = allFeaturesBlobs.vk13.shaderDemoteToHelperInvocation;
 }
-template<> void initFeatureFromBlob<VkPhysicalDevicePrivateDataFeatures>(VkPhysicalDevicePrivateDataFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
+template<> void initFeatureFromBlob<VkPhysicalDeviceSubgroupSizeControlFeatures>(VkPhysicalDeviceSubgroupSizeControlFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
-       featureType.privateData = allFeaturesBlobs.vk13.privateData;
+       featureType.subgroupSizeControl = allFeaturesBlobs.vk13.subgroupSizeControl;
+       featureType.computeFullSubgroups = allFeaturesBlobs.vk13.computeFullSubgroups;
 }
 template<> void initFeatureFromBlob<VkPhysicalDevicePipelineCreationCacheControlFeatures>(VkPhysicalDevicePipelineCreationCacheControlFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
        featureType.pipelineCreationCacheControl = allFeaturesBlobs.vk13.pipelineCreationCacheControl;
 }
-template<> void initFeatureFromBlob<VkPhysicalDeviceSynchronization2Features>(VkPhysicalDeviceSynchronization2Features& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
-{
-       featureType.synchronization2 = allFeaturesBlobs.vk13.synchronization2;
-}
 template<> void initFeatureFromBlob<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures>(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
        featureType.shaderZeroInitializeWorkgroupMemory = allFeaturesBlobs.vk13.shaderZeroInitializeWorkgroupMemory;
@@ -267,372 +278,364 @@ template<> void initFeatureFromBlob<VkPhysicalDeviceImageRobustnessFeatures>(VkP
 {
        featureType.robustImageAccess = allFeaturesBlobs.vk13.robustImageAccess;
 }
-template<> void initFeatureFromBlob<VkPhysicalDeviceSubgroupSizeControlFeatures>(VkPhysicalDeviceSubgroupSizeControlFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
-{
-       featureType.subgroupSizeControl = allFeaturesBlobs.vk13.subgroupSizeControl;
-       featureType.computeFullSubgroups = allFeaturesBlobs.vk13.computeFullSubgroups;
-}
-template<> void initFeatureFromBlob<VkPhysicalDeviceInlineUniformBlockFeatures>(VkPhysicalDeviceInlineUniformBlockFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
-{
-       featureType.inlineUniformBlock = allFeaturesBlobs.vk13.inlineUniformBlock;
-       featureType.descriptorBindingInlineUniformBlockUpdateAfterBind = allFeaturesBlobs.vk13.descriptorBindingInlineUniformBlockUpdateAfterBind;
-}
-template<> void initFeatureFromBlob<VkPhysicalDeviceTextureCompressionASTCHDRFeatures>(VkPhysicalDeviceTextureCompressionASTCHDRFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
+template<> void initFeatureFromBlob<VkPhysicalDeviceShaderTerminateInvocationFeatures>(VkPhysicalDeviceShaderTerminateInvocationFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
-       featureType.textureCompressionASTC_HDR = allFeaturesBlobs.vk13.textureCompressionASTC_HDR;
+       featureType.shaderTerminateInvocation = allFeaturesBlobs.vk13.shaderTerminateInvocation;
 }
-template<> void initFeatureFromBlob<VkPhysicalDeviceDynamicRenderingFeatures>(VkPhysicalDeviceDynamicRenderingFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
+template<> void initFeatureFromBlob<VkPhysicalDeviceSynchronization2Features>(VkPhysicalDeviceSynchronization2Features& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
-       featureType.dynamicRendering = allFeaturesBlobs.vk13.dynamicRendering;
+       featureType.synchronization2 = allFeaturesBlobs.vk13.synchronization2;
 }
 template<> void initFeatureFromBlob<VkPhysicalDeviceShaderIntegerDotProductFeatures>(VkPhysicalDeviceShaderIntegerDotProductFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
        featureType.shaderIntegerDotProduct = allFeaturesBlobs.vk13.shaderIntegerDotProduct;
 }
-template<> void initFeatureFromBlob<VkPhysicalDeviceMaintenance4Features>(VkPhysicalDeviceMaintenance4Features& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
+template<> void initFeatureFromBlob<VkPhysicalDeviceDynamicRenderingFeatures>(VkPhysicalDeviceDynamicRenderingFeatures& featureType, const AllFeaturesBlobs& allFeaturesBlobs)
 {
-       featureType.maintenance4 = allFeaturesBlobs.vk13.maintenance4;
+       featureType.dynamicRendering = allFeaturesBlobs.vk13.dynamicRendering;
 }
 
 // generic template is not enough for some compilers
-template<> void initFeatureFromBlob<VkPhysicalDevicePerformanceQueryFeaturesKHR>(VkPhysicalDevicePerformanceQueryFeaturesKHR&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceShaderClockFeaturesKHR>(VkPhysicalDeviceShaderClockFeaturesKHR&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR>(VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceFragmentShadingRateFeaturesKHR>(VkPhysicalDeviceFragmentShadingRateFeaturesKHR&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDevicePresentWaitFeaturesKHR>(VkPhysicalDevicePresentWaitFeaturesKHR&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>(VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDevicePresentIdFeaturesKHR>(VkPhysicalDevicePresentIdFeaturesKHR&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR>(VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR>(VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>(VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR>(VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceTransformFeedbackFeaturesEXT>(VkPhysicalDeviceTransformFeedbackFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceCornerSampledImageFeaturesNV>(VkPhysicalDeviceCornerSampledImageFeaturesNV&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceASTCDecodeFeaturesEXT>(VkPhysicalDeviceASTCDecodeFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDevicePipelineRobustnessFeaturesEXT>(VkPhysicalDevicePipelineRobustnessFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceConditionalRenderingFeaturesEXT>(VkPhysicalDeviceConditionalRenderingFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceDepthClipEnableFeaturesEXT>(VkPhysicalDeviceDepthClipEnableFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDevicePresentWaitFeaturesKHR>(VkPhysicalDevicePresentWaitFeaturesKHR&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV>(VkPhysicalDeviceShaderSMBuiltinsFeaturesNV&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceShadingRateImageFeaturesNV>(VkPhysicalDeviceShadingRateImageFeaturesNV&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>(VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceMultiDrawFeaturesEXT>(VkPhysicalDeviceMultiDrawFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR>(VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT>(VkPhysicalDeviceDeviceMemoryReportFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceConditionalRenderingFeaturesEXT>(VkPhysicalDeviceConditionalRenderingFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>(VkPhysicalDeviceShaderAtomicFloatFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>(VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceASTCDecodeFeaturesEXT>(VkPhysicalDeviceASTCDecodeFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceTransformFeedbackFeaturesEXT>(VkPhysicalDeviceTransformFeedbackFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>(VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceExclusiveScissorFeaturesNV>(VkPhysicalDeviceExclusiveScissorFeaturesNV&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceCornerSampledImageFeaturesNV>(VkPhysicalDeviceCornerSampledImageFeaturesNV&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>(VkPhysicalDeviceComputeShaderDerivativesFeaturesNV&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceMeshShaderFeaturesNV>(VkPhysicalDeviceMeshShaderFeaturesNV&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceShaderImageFootprintFeaturesNV>(VkPhysicalDeviceShaderImageFootprintFeaturesNV&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceExclusiveScissorFeaturesNV>(VkPhysicalDeviceExclusiveScissorFeaturesNV&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>(VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>(VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceShadingRateImageFeaturesNV>(VkPhysicalDeviceShadingRateImageFeaturesNV&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI>(VkPhysicalDeviceInvocationMaskFeaturesHUAWEI&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceMeshShaderFeaturesNV>(VkPhysicalDeviceMeshShaderFeaturesNV&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceAccelerationStructureFeaturesKHR>(VkPhysicalDeviceAccelerationStructureFeaturesKHR&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceRayTracingPipelineFeaturesKHR>(VkPhysicalDeviceRayTracingPipelineFeaturesKHR&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceRayQueryFeaturesKHR>(VkPhysicalDeviceRayQueryFeaturesKHR&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR>(VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>(VkPhysicalDeviceFragmentDensityMapFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceCoherentMemoryFeaturesAMD>(VkPhysicalDeviceCoherentMemoryFeaturesAMD&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT>(VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT>(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM>(VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceDepthClipEnableFeaturesEXT>(VkPhysicalDeviceDepthClipEnableFeaturesEXT&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceMemoryPriorityFeaturesEXT>(VkPhysicalDeviceMemoryPriorityFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>(VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT>(VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>(VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceCooperativeMatrixFeaturesNV>(VkPhysicalDeviceCooperativeMatrixFeaturesNV&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceCoverageReductionModeFeaturesNV>(VkPhysicalDeviceCoverageReductionModeFeaturesNV&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceProvokingVertexFeaturesEXT>(VkPhysicalDeviceProvokingVertexFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceLineRasterizationFeaturesEXT>(VkPhysicalDeviceLineRasterizationFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>(VkPhysicalDeviceShaderAtomicFloatFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDevicePerformanceQueryFeaturesKHR>(VkPhysicalDevicePerformanceQueryFeaturesKHR&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceCoverageReductionModeFeaturesNV>(VkPhysicalDeviceCoverageReductionModeFeaturesNV&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>(VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceShaderClockFeaturesKHR>(VkPhysicalDeviceShaderClockFeaturesKHR&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>(VkPhysicalDeviceIndexTypeUint8FeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>(VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>(VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceInheritedViewportScissorFeaturesNV>(VkPhysicalDeviceInheritedViewportScissorFeaturesNV&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV>(VkPhysicalDeviceShaderSMBuiltinsFeaturesNV&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT>(VkPhysicalDeviceDeviceMemoryReportFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceRobustness2FeaturesEXT>(VkPhysicalDeviceRobustness2FeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceLineRasterizationFeaturesEXT>(VkPhysicalDeviceLineRasterizationFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceCoherentMemoryFeaturesAMD>(VkPhysicalDeviceCoherentMemoryFeaturesAMD&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceCustomBorderColorFeaturesEXT>(VkPhysicalDeviceCustomBorderColorFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT>(VkPhysicalDeviceBorderColorSwizzleFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>(VkPhysicalDeviceDiagnosticsConfigFeaturesNV&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT>(VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD>(VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV>(VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV>(VkPhysicalDeviceRayTracingMotionBlurFeaturesNV&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT>(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT>(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceImageCompressionControlFeaturesEXT>(VkPhysicalDeviceImageCompressionControlFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR>(VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceRobustness2FeaturesEXT>(VkPhysicalDeviceRobustness2FeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>(VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDevicePortabilitySubsetFeaturesKHR>(VkPhysicalDevicePortabilitySubsetFeaturesKHR&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDevice4444FormatsFeaturesEXT>(VkPhysicalDevice4444FormatsFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM>(VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT>(VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI>(VkPhysicalDeviceSubpassShadingFeaturesHUAWEI&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT>(VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceFragmentShadingRateFeaturesKHR>(VkPhysicalDeviceFragmentShadingRateFeaturesKHR&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV>(VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT>(VkPhysicalDeviceImage2DViewOf3DFeaturesEXT&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE>(VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT>(VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceDepthClipControlFeaturesEXT>(VkPhysicalDeviceDepthClipControlFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI>(VkPhysicalDeviceSubpassShadingFeaturesHUAWEI&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI>(VkPhysicalDeviceInvocationMaskFeaturesHUAWEI&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT>(VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV>(VkPhysicalDeviceExternalMemoryRDMAFeaturesNV&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDevicePipelinePropertiesFeaturesEXT>(VkPhysicalDevicePipelinePropertiesFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT>(VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceColorWriteEnableFeaturesEXT>(VkPhysicalDeviceColorWriteEnableFeaturesEXT&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT>(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT>(VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceInheritedViewportScissorFeaturesNV>(VkPhysicalDeviceInheritedViewportScissorFeaturesNV&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT>(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceProvokingVertexFeaturesEXT>(VkPhysicalDeviceProvokingVertexFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR>(VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV>(VkPhysicalDeviceRayTracingMotionBlurFeaturesNV&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT>(VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceImageViewMinLodFeaturesEXT>(VkPhysicalDeviceImageViewMinLodFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceMultiDrawFeaturesEXT>(VkPhysicalDeviceMultiDrawFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT>(VkPhysicalDeviceImage2DViewOf3DFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT>(VkPhysicalDeviceBorderColorSwizzleFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT>(VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE>(VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT>(VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM>(VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM>(VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceLinearColorAttachmentFeaturesNV>(VkPhysicalDeviceLinearColorAttachmentFeaturesNV&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT>(VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE>(VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT>(VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceImageCompressionControlFeaturesEXT>(VkPhysicalDeviceImageCompressionControlFeaturesEXT&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT>(VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceImageProcessingFeaturesQCOM>(VkPhysicalDeviceImageProcessingFeaturesQCOM&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT>(VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT>(VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDevicePipelinePropertiesFeaturesEXT>(VkPhysicalDevicePipelinePropertiesFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD>(VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT>(VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDevicePipelineRobustnessFeaturesEXT>(VkPhysicalDevicePipelineRobustnessFeaturesEXT&, const AllFeaturesBlobs&) {}
+template<> void initFeatureFromBlob<VkPhysicalDeviceImageProcessingFeaturesQCOM>(VkPhysicalDeviceImageProcessingFeaturesQCOM&, const AllFeaturesBlobs&) {}
 template<> void initFeatureFromBlob<VkPhysicalDeviceTilePropertiesFeaturesQCOM>(VkPhysicalDeviceTilePropertiesFeaturesQCOM&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceAccelerationStructureFeaturesKHR>(VkPhysicalDeviceAccelerationStructureFeaturesKHR&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceRayTracingPipelineFeaturesKHR>(VkPhysicalDeviceRayTracingPipelineFeaturesKHR&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDeviceRayQueryFeaturesKHR>(VkPhysicalDeviceRayQueryFeaturesKHR&, const AllFeaturesBlobs&) {}
-template<> void initFeatureFromBlob<VkPhysicalDevicePortabilitySubsetFeaturesKHR>(VkPhysicalDevicePortabilitySubsetFeaturesKHR&, const AllFeaturesBlobs&) {}
 
 
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice16BitStorageFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, VK_KHR_16BIT_STORAGE_EXTENSION_NAME, VK_KHR_16BIT_STORAGE_SPEC_VERSION, 121}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice4444FormatsFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT, VK_EXT_4444_FORMATS_EXTENSION_NAME, VK_EXT_4444_FORMATS_SPEC_VERSION, 120}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice8BitStorageFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES, VK_KHR_8BIT_STORAGE_EXTENSION_NAME, VK_KHR_8BIT_STORAGE_SPEC_VERSION, 119}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceAccelerationStructureFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR, VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME, VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION, 118}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTransformFeedbackFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT, VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION, 122}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDynamicRenderingFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR, VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME, VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION, 121}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCornerSampledImageFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV, VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME, VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION, 120}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMultiviewFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 119}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTextureCompressionASTCHDRFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT, VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME, VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION, 118}; }
 template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceASTCDecodeFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT, VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME, VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION, 117}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION, 116}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT, VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME, VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION, 115}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBufferDeviceAddressFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES, VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 114}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 113}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoherentMemoryFeaturesAMD>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, DECL_AMD_COHERENT_MEMORY_EXTENSION_NAME, 0, 112}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceColorWriteEnableFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT, VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME, VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION, 111}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV, VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION, 110}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceConditionalRenderingFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT, VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME, VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION, 109}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCooperativeMatrixFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION, 108}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCornerSampledImageFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV, VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME, VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION, 107}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoverageReductionModeFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV, VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME, VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION, 106}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCustomBorderColorFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION, 105}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION, 104}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDepthClipControlFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT, VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION, 103}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDepthClipEnableFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT, VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION, 102}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDescriptorIndexingFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 101}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE, VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME, VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION, 100}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION, 99}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT, VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME, VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION, 98}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, DECL_NV_DIAGNOSTICS_CONFIG_EXTENSION_NAME, 0, 97}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDynamicRenderingFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES, VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME, VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION, 96}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExclusiveScissorFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV, VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME, VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION, 95}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT, VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION, 94}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT, VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION, 93}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV, VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME, VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION, 92}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION, 91}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION, 90}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM, VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME, VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION, 89}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR, VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION, 88}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT, VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME, VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION, 87}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentShadingRateFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR, VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION, 86}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION, 85}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR, DECL_KHR_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME, 0, 84}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT, VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME, VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION, 83}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceHostQueryResetFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES, VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_EXT_HOST_QUERY_RESET_SPEC_VERSION, 82}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImagelessFramebufferFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES, VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME, VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION, 81}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT, VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME, VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION, 80}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImageCompressionControlFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT, VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME, VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION, 79}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT, VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME, VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION, 78}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImageProcessingFeaturesQCOM>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM, VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME, VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION, 77}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImageRobustnessFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES, VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME, VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION, 76}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImageViewMinLodFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT, VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME, VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION, 75}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT, VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME, VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION, 74}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceInheritedViewportScissorFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV, VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME, VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION, 73}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceInlineUniformBlockFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION, 72}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI, VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME, VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION, 71}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceLinearColorAttachmentFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV, VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME, VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION, 70}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceLineRasterizationFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION, 69}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMaintenance4Features>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES, DECL_MAINTENANCE4_EXTENSION_NAME, 0, 68}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMemoryPriorityFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT, VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME, VK_EXT_MEMORY_PRIORITY_SPEC_VERSION, 67}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMeshShaderFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION, 66}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT, VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME, VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION, 65}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMultiviewFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 64}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMultiDrawFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT, VK_EXT_MULTI_DRAW_EXTENSION_NAME, VK_EXT_MULTI_DRAW_SPEC_VERSION, 63}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE, VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME, VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION, 62}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT, VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME, VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION, 61}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT, VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME, VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION, 60}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePerformanceQueryFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION, 59}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePipelineCreationCacheControlFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES, VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME, VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION, 58}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION, 57}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePipelinePropertiesFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT, VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME, VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION, 56}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePipelineRobustnessFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT, VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME, VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION, 55}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePortabilitySubsetFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME, VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION, 54}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePresentIdFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR, VK_KHR_PRESENT_ID_EXTENSION_NAME, VK_KHR_PRESENT_ID_SPEC_VERSION, 53}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePresentWaitFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR, VK_KHR_PRESENT_WAIT_EXTENSION_NAME, VK_KHR_PRESENT_WAIT_SPEC_VERSION, 52}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT, VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME, VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION, 51}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT, VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME, VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION, 50}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePrivateDataFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES, VK_EXT_PRIVATE_DATA_EXTENSION_NAME, VK_EXT_PRIVATE_DATA_SPEC_VERSION, 49}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceProtectedMemoryFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 48}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceProvokingVertexFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT, VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME, VK_EXT_PROVOKING_VERTEX_SPEC_VERSION, 47}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRayQueryFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR, VK_KHR_RAY_QUERY_EXTENSION_NAME, VK_KHR_RAY_QUERY_SPEC_VERSION, 46}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR, VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME, VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION, 45}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV, VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME, VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION, 44}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRayTracingPipelineFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR, VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME, VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION, 43}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION, 42}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT, VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME, VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION, 41}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRobustness2FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION, 40}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSamplerYcbcrConversionFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES, VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME, VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION, 39}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceScalarBlockLayoutFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES, VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME, VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION, 38}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION, 37}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT, VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME, VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION, 36}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT, VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME, VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION, 35}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderAtomicInt64Features>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES, VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME, VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION, 34}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderClockFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR, VK_KHR_SHADER_CLOCK_EXTENSION_NAME, VK_KHR_SHADER_CLOCK_SPEC_VERSION, 33}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION, 32}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderDrawParametersFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME, VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION, 31}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD, VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME, VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION, 30}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderFloat16Int8Features>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES, VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME, VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION, 29}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT, VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME, VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION, 28}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderImageFootprintFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV, VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME, VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION, 27}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderIntegerDotProductFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION, 26}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION, 25}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT, VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME, VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION, 24}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV, VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME, VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION, 23}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION, 22}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR, VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME, VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION, 21}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderTerminateInvocationFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES, VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME, VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION, 20}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShadingRateImageFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION, 19}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSubgroupSizeControlFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION, 18}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT, VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME, VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION, 17}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI, VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME, VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION, 16}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSynchronization2Features>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES, VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME, VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION, 15}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT, VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME, VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION, 14}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTextureCompressionASTCHDRFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES, VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME, VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION, 13}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTilePropertiesFeaturesQCOM>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM, VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME, VK_QCOM_TILE_PROPERTIES_SPEC_VERSION, 12}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTimelineSemaphoreFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES, VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME, VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION, 11}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTransformFeedbackFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT, VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION, 10}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceUniformBufferStandardLayoutFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION, 9}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVariablePointersFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME, VK_KHR_VARIABLE_POINTERS_SPEC_VERSION, 8}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION, 7}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT, VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME, VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION, 6}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVulkanMemoryModelFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES, VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME, VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION, 5}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR, VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME, VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION, 4}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT, VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME, VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION, 3}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT, VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME, VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION, 2}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES, VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME, VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION, 1}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePipelineRobustnessFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT, VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME, VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION, 116}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceConditionalRenderingFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT, VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME, VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION, 115}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderFloat16Int8Features>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR, VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME, VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION, 114}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice16BitStorageFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR, VK_KHR_16BIT_STORAGE_EXTENSION_NAME, VK_KHR_16BIT_STORAGE_SPEC_VERSION, 113}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDepthClipEnableFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT, VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION, 112}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImagelessFramebufferFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR, VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME, VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION, 111}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePerformanceQueryFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION, 110}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVariablePointersFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR, VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME, VK_KHR_VARIABLE_POINTERS_SPEC_VERSION, 109}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceInlineUniformBlockFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION, 108}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION, 107}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceAccelerationStructureFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR, VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME, VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION, 106}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRayTracingPipelineFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR, VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME, VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION, 105}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRayQueryFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR, VK_KHR_RAY_QUERY_EXTENSION_NAME, VK_KHR_RAY_QUERY_SPEC_VERSION, 104}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV, VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME, VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION, 103}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSamplerYcbcrConversionFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR, VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME, VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION, 102}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDescriptorIndexingFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 101}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePortabilitySubsetFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME, VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION, 100}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShadingRateImageFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION, 99}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION, 98}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION, 97}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice8BitStorageFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR, VK_KHR_8BIT_STORAGE_EXTENSION_NAME, VK_KHR_8BIT_STORAGE_SPEC_VERSION, 96}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderAtomicInt64Features>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR, VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME, VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION, 95}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderClockFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR, VK_KHR_SHADER_CLOCK_EXTENSION_NAME, VK_KHR_SHADER_CLOCK_SPEC_VERSION, 94}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR, VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME, VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION, 93}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION, 92}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV, VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION, 91}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMeshShaderFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION, 90}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderImageFootprintFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV, VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME, VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION, 89}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExclusiveScissorFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV, VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME, VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION, 88}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTimelineSemaphoreFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR, VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME, VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION, 87}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION, 86}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVulkanMemoryModelFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR, VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME, VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION, 85}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderTerminateInvocationFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR, VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME, VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION, 84}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION, 83}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceScalarBlockLayoutFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT, VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME, VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION, 82}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSubgroupSizeControlFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION, 81}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentShadingRateFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR, VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION, 80}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoherentMemoryFeaturesAMD>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME, VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION, 79}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT, VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME, VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION, 78}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMemoryPriorityFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT, VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME, VK_EXT_MEMORY_PRIORITY_SPEC_VERSION, 77}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION, 76}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION, 75}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 74}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePresentWaitFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR, VK_KHR_PRESENT_WAIT_EXTENSION_NAME, VK_KHR_PRESENT_WAIT_SPEC_VERSION, 73}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCooperativeMatrixFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION, 72}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoverageReductionModeFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV, VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME, VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION, 71}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT, VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME, VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION, 70}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT, VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME, VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION, 69}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceUniformBufferStandardLayoutFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION, 68}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceProvokingVertexFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT, VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME, VK_EXT_PROVOKING_VERTEX_SPEC_VERSION, 67}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBufferDeviceAddressFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR, VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 66}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceLineRasterizationFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION, 65}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT, VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME, VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION, 64}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceHostQueryResetFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT, VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_EXT_HOST_QUERY_RESET_SPEC_VERSION, 63}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT, VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME, VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION, 62}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT, VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION, 61}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION, 60}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT, VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME, VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION, 59}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION, 58}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION, 57}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceInheritedViewportScissorFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV, VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME, VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION, 56}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderIntegerDotProductFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION, 55}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT, VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME, VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION, 54}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT, VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME, VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION, 53}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRobustness2FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION, 52}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCustomBorderColorFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION, 51}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePresentIdFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR, VK_KHR_PRESENT_ID_EXTENSION_NAME, VK_KHR_PRESENT_ID_SPEC_VERSION, 50}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePrivateDataFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT, VK_EXT_PRIVATE_DATA_EXTENSION_NAME, VK_EXT_PRIVATE_DATA_SPEC_VERSION, 49}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePipelineCreationCacheControlFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT, VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME, VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION, 48}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME, VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION, 47}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSynchronization2Features>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR, VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME, VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION, 46}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT, VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME, VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION, 45}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD, VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME, VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION, 44}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR, VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION, 43}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR, VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME, VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION, 42}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR, VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME, VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION, 41}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION, 40}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV, VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME, VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION, 39}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT, VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME, VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION, 38}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION, 37}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImageRobustnessFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT, VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME, VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION, 36}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR, VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME, VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION, 35}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImageCompressionControlFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT, VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME, VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION, 34}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice4444FormatsFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT, VK_EXT_4444_FORMATS_EXTENSION_NAME, VK_EXT_4444_FORMATS_SPEC_VERSION, 33}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM, VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME, VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION, 32}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT, VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME, VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION, 31}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE, VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME, VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION, 30}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT, VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME, VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION, 29}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDepthClipControlFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT, VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION, 28}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT, VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME, VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION, 27}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI, VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME, VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION, 26}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI, VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME, VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION, 25}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV, VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME, VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION, 24}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePipelinePropertiesFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT, VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME, VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION, 23}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT, VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME, VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION, 22}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT, VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION, 21}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceColorWriteEnableFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT, VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME, VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION, 20}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT, VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME, VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION, 19}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR, VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME, VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION, 18}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImageViewMinLodFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT, VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME, VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION, 17}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMultiDrawFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT, VK_EXT_MULTI_DRAW_EXTENSION_NAME, VK_EXT_MULTI_DRAW_SPEC_VERSION, 16}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT, VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME, VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION, 15}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT, VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME, VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION, 14}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT, VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME, VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION, 13}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMaintenance4Features>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR, VK_KHR_MAINTENANCE_4_EXTENSION_NAME, VK_KHR_MAINTENANCE_4_SPEC_VERSION, 12}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE, VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME, VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION, 11}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT, VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME, VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION, 10}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM, VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME, VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION, 9}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceLinearColorAttachmentFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV, VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME, VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION, 8}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT, VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME, VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION, 7}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImageProcessingFeaturesQCOM>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM, VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME, VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION, 6}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT, VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME, VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION, 5}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT, VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME, VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION, 4}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTilePropertiesFeaturesQCOM>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM, VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME, VK_QCOM_TILE_PROPERTIES_SPEC_VERSION, 3}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceProtectedMemoryFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 2}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderDrawParametersFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, DECL_SHADER_DRAW_PARAMETERS_EXTENSION_NAME, 0, 1}; }
 
 
 static const FeatureStructCreationData featureStructCreationArray[]
 {
-       { createFeatureStructWrapper<VkPhysicalDevice16BitStorageFeatures>, VK_KHR_16BIT_STORAGE_EXTENSION_NAME, VK_KHR_16BIT_STORAGE_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDevice4444FormatsFeaturesEXT>, VK_EXT_4444_FORMATS_EXTENSION_NAME, VK_EXT_4444_FORMATS_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDevice8BitStorageFeatures>, VK_KHR_8BIT_STORAGE_EXTENSION_NAME, VK_KHR_8BIT_STORAGE_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceAccelerationStructureFeaturesKHR>, VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME, VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceTransformFeedbackFeaturesEXT>, VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceDynamicRenderingFeatures>, VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME, VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceCornerSampledImageFeaturesNV>, VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME, VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceMultiviewFeatures>, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceTextureCompressionASTCHDRFeatures>, VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME, VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceASTCDecodeFeaturesEXT>, VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME, VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT>, VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME, VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceBufferDeviceAddressFeatures>, VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>, VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceCoherentMemoryFeaturesAMD>, DECL_AMD_COHERENT_MEMORY_EXTENSION_NAME, 0 },
-       { createFeatureStructWrapper<VkPhysicalDeviceColorWriteEnableFeaturesEXT>, VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME, VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>, VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDevicePipelineRobustnessFeaturesEXT>, VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME, VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceConditionalRenderingFeaturesEXT>, VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME, VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceCooperativeMatrixFeaturesNV>, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceCornerSampledImageFeaturesNV>, VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME, VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceCoverageReductionModeFeaturesNV>, VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME, VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceCustomBorderColorFeaturesEXT>, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceDepthClipControlFeaturesEXT>, VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceShaderFloat16Int8Features>, VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME, VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDevice16BitStorageFeatures>, VK_KHR_16BIT_STORAGE_EXTENSION_NAME, VK_KHR_16BIT_STORAGE_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceDepthClipEnableFeaturesEXT>, VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceImagelessFramebufferFeatures>, VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME, VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDevicePerformanceQueryFeaturesKHR>, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceVariablePointersFeatures>, VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME, VK_KHR_VARIABLE_POINTERS_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceInlineUniformBlockFeatures>, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceAccelerationStructureFeaturesKHR>, VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME, VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceRayTracingPipelineFeaturesKHR>, VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME, VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceRayQueryFeaturesKHR>, VK_KHR_RAY_QUERY_EXTENSION_NAME, VK_KHR_RAY_QUERY_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV>, VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME, VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceSamplerYcbcrConversionFeatures>, VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME, VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceDescriptorIndexingFeatures>, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE>, VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME, VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT>, VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME, VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>, DECL_NV_DIAGNOSTICS_CONFIG_EXTENSION_NAME, 0 },
-       { createFeatureStructWrapper<VkPhysicalDeviceDynamicRenderingFeatures>, VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME, VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDevicePortabilitySubsetFeaturesKHR>, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME, VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceShadingRateImageFeaturesNV>, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures>, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDevice8BitStorageFeatures>, VK_KHR_8BIT_STORAGE_EXTENSION_NAME, VK_KHR_8BIT_STORAGE_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceShaderAtomicInt64Features>, VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME, VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceShaderClockFeaturesKHR>, VK_KHR_SHADER_CLOCK_EXTENSION_NAME, VK_KHR_SHADER_CLOCK_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR>, VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME, VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>, VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceMeshShaderFeaturesNV>, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceShaderImageFootprintFeaturesNV>, VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME, VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceExclusiveScissorFeaturesNV>, VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME, VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>, VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>, VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV>, VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME, VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceTimelineSemaphoreFeatures>, VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME, VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceVulkanMemoryModelFeatures>, VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME, VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceShaderTerminateInvocationFeatures>, VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME, VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT>, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM>, VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME, VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR>, VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>, VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME, VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceScalarBlockLayoutFeatures>, VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME, VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceSubgroupSizeControlFeatures>, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceFragmentShadingRateFeaturesKHR>, VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV>, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR>, DECL_KHR_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME, 0 },
-       { createFeatureStructWrapper<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT>, VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME, VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceHostQueryResetFeatures>, VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_EXT_HOST_QUERY_RESET_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceImagelessFramebufferFeatures>, VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME, VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT>, VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME, VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceImageCompressionControlFeaturesEXT>, VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME, VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT>, VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME, VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceImageProcessingFeaturesQCOM>, VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME, VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceImageRobustnessFeatures>, VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME, VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceImageViewMinLodFeaturesEXT>, VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME, VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>, VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME, VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceInheritedViewportScissorFeaturesNV>, VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME, VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceInlineUniformBlockFeatures>, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI>, VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME, VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceLinearColorAttachmentFeaturesNV>, VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME, VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceLineRasterizationFeaturesEXT>, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceMaintenance4Features>, DECL_MAINTENANCE4_EXTENSION_NAME, 0 },
+       { createFeatureStructWrapper<VkPhysicalDeviceCoherentMemoryFeaturesAMD>, VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME, VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT>, VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME, VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceMemoryPriorityFeaturesEXT>, VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME, VK_EXT_MEMORY_PRIORITY_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceMeshShaderFeaturesNV>, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT>, VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME, VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceMultiviewFeatures>, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceMultiDrawFeaturesEXT>, VK_EXT_MULTI_DRAW_EXTENSION_NAME, VK_EXT_MULTI_DRAW_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE>, VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME, VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT>, VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME, VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT>, VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME, VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDevicePerformanceQueryFeaturesKHR>, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDevicePipelineCreationCacheControlFeatures>, VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME, VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDevicePipelinePropertiesFeaturesEXT>, VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME, VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDevicePipelineRobustnessFeaturesEXT>, VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME, VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDevicePortabilitySubsetFeaturesKHR>, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME, VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDevicePresentIdFeaturesKHR>, VK_KHR_PRESENT_ID_EXTENSION_NAME, VK_KHR_PRESENT_ID_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures>, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>, VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDevicePresentWaitFeaturesKHR>, VK_KHR_PRESENT_WAIT_EXTENSION_NAME, VK_KHR_PRESENT_WAIT_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT>, VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME, VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>, VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME, VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDevicePrivateDataFeatures>, VK_EXT_PRIVATE_DATA_EXTENSION_NAME, VK_EXT_PRIVATE_DATA_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceProtectedMemoryFeatures>, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0 },
+       { createFeatureStructWrapper<VkPhysicalDeviceCooperativeMatrixFeaturesNV>, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceCoverageReductionModeFeaturesNV>, VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME, VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>, VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME, VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>, VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME, VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceUniformBufferStandardLayoutFeatures>, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceProvokingVertexFeaturesEXT>, VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME, VK_EXT_PROVOKING_VERTEX_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceRayQueryFeaturesKHR>, VK_KHR_RAY_QUERY_EXTENSION_NAME, VK_KHR_RAY_QUERY_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR>, VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME, VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV>, VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME, VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceRayTracingPipelineFeaturesKHR>, VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME, VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT>, VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME, VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceRobustness2FeaturesEXT>, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceSamplerYcbcrConversionFeatures>, VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME, VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceScalarBlockLayoutFeatures>, VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME, VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures>, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceBufferDeviceAddressFeatures>, VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceLineRasterizationFeaturesEXT>, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>, VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME, VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceHostQueryResetFeatures>, VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_EXT_HOST_QUERY_RESET_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>, VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME, VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>, VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>, VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME, VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceShaderAtomicInt64Features>, VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME, VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceShaderClockFeaturesKHR>, VK_KHR_SHADER_CLOCK_EXTENSION_NAME, VK_KHR_SHADER_CLOCK_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures>, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceShaderDrawParametersFeatures>, VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME, VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD>, VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME, VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceShaderFloat16Int8Features>, VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME, VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT>, VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME, VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceShaderImageFootprintFeaturesNV>, VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME, VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceInheritedViewportScissorFeaturesNV>, VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME, VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceShaderIntegerDotProductFeatures>, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT>, VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME, VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV>, VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME, VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures>, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>, VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME, VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT>, VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME, VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceRobustness2FeaturesEXT>, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceCustomBorderColorFeaturesEXT>, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDevicePresentIdFeaturesKHR>, VK_KHR_PRESENT_ID_EXTENSION_NAME, VK_KHR_PRESENT_ID_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDevicePrivateDataFeatures>, VK_EXT_PRIVATE_DATA_EXTENSION_NAME, VK_EXT_PRIVATE_DATA_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDevicePipelineCreationCacheControlFeatures>, VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME, VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>, VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME, VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceSynchronization2Features>, VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME, VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT>, VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME, VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD>, VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME, VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR>, VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR>, VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME, VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceShaderTerminateInvocationFeatures>, VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME, VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceShadingRateImageFeaturesNV>, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceSubgroupSizeControlFeatures>, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT>, VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME, VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures>, VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME, VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV>, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV>, VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME, VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT>, VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME, VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT>, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceImageRobustnessFeatures>, VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME, VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>, VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME, VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceImageCompressionControlFeaturesEXT>, VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME, VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDevice4444FormatsFeaturesEXT>, VK_EXT_4444_FORMATS_EXTENSION_NAME, VK_EXT_4444_FORMATS_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM>, VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME, VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT>, VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME, VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE>, VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME, VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT>, VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME, VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceDepthClipControlFeaturesEXT>, VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>, VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME, VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI>, VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME, VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceSynchronization2Features>, VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME, VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>, VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME, VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceTextureCompressionASTCHDRFeatures>, VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME, VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI>, VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME, VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV>, VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME, VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDevicePipelinePropertiesFeaturesEXT>, VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME, VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT>, VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME, VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>, VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceColorWriteEnableFeaturesEXT>, VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME, VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT>, VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME, VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR>, VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME, VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceImageViewMinLodFeaturesEXT>, VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME, VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceMultiDrawFeaturesEXT>, VK_EXT_MULTI_DRAW_EXTENSION_NAME, VK_EXT_MULTI_DRAW_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT>, VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME, VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT>, VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME, VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT>, VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME, VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceMaintenance4Features>, VK_KHR_MAINTENANCE_4_EXTENSION_NAME, VK_KHR_MAINTENANCE_4_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE>, VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME, VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT>, VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME, VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM>, VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME, VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceLinearColorAttachmentFeaturesNV>, VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME, VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT>, VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME, VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceImageProcessingFeaturesQCOM>, VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME, VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT>, VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME, VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT>, VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME, VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceTilePropertiesFeaturesQCOM>, VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME, VK_QCOM_TILE_PROPERTIES_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceTimelineSemaphoreFeatures>, VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME, VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceTransformFeedbackFeaturesEXT>, VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceUniformBufferStandardLayoutFeatures>, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceVariablePointersFeatures>, VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME, VK_KHR_VARIABLE_POINTERS_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT>, VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME, VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceVulkanMemoryModelFeatures>, VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME, VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>, VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME, VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT>, VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME, VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>, VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME, VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION },
-       { createFeatureStructWrapper<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures>, VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME, VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION },
+       { createFeatureStructWrapper<VkPhysicalDeviceProtectedMemoryFeatures>, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0 },
+       { createFeatureStructWrapper<VkPhysicalDeviceShaderDrawParametersFeatures>, DECL_SHADER_DRAW_PARAMETERS_EXTENSION_NAME, 0 },
 };
 
 deUint32 getBlobFeaturesVersion (VkStructureType sType)
@@ -640,40 +643,40 @@ deUint32 getBlobFeaturesVersion (VkStructureType sType)
        const std::map<VkStructureType, deUint32> sTypeBlobMap
        {
                // Vulkan11
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,                                                             VK_API_VERSION_1_1 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,                                                                 VK_API_VERSION_1_1 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR,                                                 VK_API_VERSION_1_1 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR,                                                             VK_API_VERSION_1_1 },
                { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES,                                                  VK_API_VERSION_1_1 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,                                  VK_API_VERSION_1_1 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR,                              VK_API_VERSION_1_1 },
                { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,                                    VK_API_VERSION_1_1 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,                                                 VK_API_VERSION_1_1 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,                                             VK_API_VERSION_1_1 },
                // Vulkan12
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,                                                              VK_API_VERSION_1_2 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,                                             VK_API_VERSION_1_2 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,                                               VK_API_VERSION_1_2 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,                                                  VK_API_VERSION_1_2 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,                                             VK_API_VERSION_1_2 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,                                               VK_API_VERSION_1_2 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,                    VK_API_VERSION_1_2 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,                                               VK_API_VERSION_1_2 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,                                               VK_API_VERSION_1_2 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,                    VK_API_VERSION_1_2 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,                                                VK_API_VERSION_1_2 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,                    VK_API_VERSION_1_2 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,                                               VK_API_VERSION_1_2 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR,                                                  VK_API_VERSION_1_2 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR,                                 VK_API_VERSION_1_2 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT,                                   VK_API_VERSION_1_2 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT,                                              VK_API_VERSION_1_2 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR,                                 VK_API_VERSION_1_2 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT,                                   VK_API_VERSION_1_2 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR,                VK_API_VERSION_1_2 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR,                                   VK_API_VERSION_1_2 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR,                                   VK_API_VERSION_1_2 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR,                VK_API_VERSION_1_2 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR,                                    VK_API_VERSION_1_2 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR,                VK_API_VERSION_1_2 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR,                                   VK_API_VERSION_1_2 },
                // Vulkan13
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,                                                 VK_API_VERSION_1_3 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,                                                  VK_API_VERSION_1_3 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,                                              VK_API_VERSION_1_3 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,                                                             VK_API_VERSION_1_3 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,                   VK_API_VERSION_1_3 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,                                                              VK_API_VERSION_1_3 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,                VK_API_VERSION_1_3 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,                                VK_API_VERSION_1_3 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,                               VK_API_VERSION_1_3 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,                                             VK_API_VERSION_1_3 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,                                                 VK_API_VERSION_1_3 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,                              VK_API_VERSION_1_3 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,                  VK_API_VERSION_1_3 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR,                                             VK_API_VERSION_1_3 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT,                                              VK_API_VERSION_1_3 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT,                                  VK_API_VERSION_1_3 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR,                                                 VK_API_VERSION_1_3 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT,               VK_API_VERSION_1_3 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT,                                                  VK_API_VERSION_1_3 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT,    VK_API_VERSION_1_3 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR,                    VK_API_VERSION_1_3 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR,                   VK_API_VERSION_1_3 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT,                                 VK_API_VERSION_1_3 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR,                                             VK_API_VERSION_1_3 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT,                  VK_API_VERSION_1_3 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR,              VK_API_VERSION_1_3 },
        };
 
        auto it = sTypeBlobMap.find(sType);
index 6992e0e..7fbd8ee 100644 (file)
@@ -3,7 +3,7 @@
  * This file was generated by /scripts/gen_framework.py
  */
 
-tcu::TestStatus testPhysicalDeviceFeature4444FormatsFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeaturePrivateDataFeatures (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -13,35 +13,34 @@ tcu::TestStatus testPhysicalDeviceFeature4444FormatsFeaturesEXT (Context& contex
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDevice4444FormatsFeaturesEXT  device4444FormatsFeaturesEXT[count];
-       const bool                                                              is4444FormatsFeaturesEXT = checkExtension(properties, "VK_EXT_4444_formats") || context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
+       VkPhysicalDevicePrivateDataFeatures     devicePrivateDataFeatures[count];
+       const bool                                                      isPrivateDataFeatures = context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&device4444FormatsFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDevice4444FormatsFeaturesEXT));
-               device4444FormatsFeaturesEXT[ndx].sType = is4444FormatsFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               device4444FormatsFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&devicePrivateDataFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDevicePrivateDataFeatures));
+               devicePrivateDataFeatures[ndx].sType = isPrivateDataFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               devicePrivateDataFeatures[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &device4444FormatsFeaturesEXT[ndx];
+               extFeatures.pNext = &devicePrivateDataFeatures[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (is4444FormatsFeaturesEXT)
-               log << TestLog::Message << device4444FormatsFeaturesEXT[0] << TestLog::EndMessage;
+       if (isPrivateDataFeatures)
+               log << TestLog::Message << devicePrivateDataFeatures[0] << TestLog::EndMessage;
 
-       if (is4444FormatsFeaturesEXT &&
-               (device4444FormatsFeaturesEXT[0].formatA4R4G4B4 != device4444FormatsFeaturesEXT[1].formatA4R4G4B4 ||
-                device4444FormatsFeaturesEXT[0].formatA4B4G4R4 != device4444FormatsFeaturesEXT[1].formatA4B4G4R4))
+       if (isPrivateDataFeatures &&
+               (devicePrivateDataFeatures[0].privateData != devicePrivateDataFeatures[1].privateData))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDevice4444FormatsFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDevicePrivateDataFeatures");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeature8BitStorageFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureVariablePointersFeatures (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -51,36 +50,35 @@ tcu::TestStatus testPhysicalDeviceFeature8BitStorageFeatures (Context& context)
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDevice8BitStorageFeatures     device8BitStorageFeatures[count];
-       const bool                                                      is8BitStorageFeatures = checkExtension(properties, "VK_KHR_8bit_storage") || context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
+       VkPhysicalDeviceVariablePointersFeatures        deviceVariablePointersFeatures[count];
+       const bool                                                                      isVariablePointersFeatures = context.contextSupports(vk::ApiVersion(0, 1, 1, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&device8BitStorageFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDevice8BitStorageFeatures));
-               device8BitStorageFeatures[ndx].sType = is8BitStorageFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               device8BitStorageFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceVariablePointersFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceVariablePointersFeatures));
+               deviceVariablePointersFeatures[ndx].sType = isVariablePointersFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceVariablePointersFeatures[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &device8BitStorageFeatures[ndx];
+               extFeatures.pNext = &deviceVariablePointersFeatures[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (is8BitStorageFeatures)
-               log << TestLog::Message << device8BitStorageFeatures[0] << TestLog::EndMessage;
+       if (isVariablePointersFeatures)
+               log << TestLog::Message << deviceVariablePointersFeatures[0] << TestLog::EndMessage;
 
-       if (is8BitStorageFeatures &&
-               (device8BitStorageFeatures[0].storageBuffer8BitAccess != device8BitStorageFeatures[1].storageBuffer8BitAccess ||
-                device8BitStorageFeatures[0].uniformAndStorageBuffer8BitAccess != device8BitStorageFeatures[1].uniformAndStorageBuffer8BitAccess ||
-                device8BitStorageFeatures[0].storagePushConstant8 != device8BitStorageFeatures[1].storagePushConstant8))
+       if (isVariablePointersFeatures &&
+               (deviceVariablePointersFeatures[0].variablePointersStorageBuffer != deviceVariablePointersFeatures[1].variablePointersStorageBuffer ||
+                deviceVariablePointersFeatures[0].variablePointers != deviceVariablePointersFeatures[1].variablePointers))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDevice8BitStorageFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceVariablePointersFeatures");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeature16BitStorageFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureMultiviewFeatures (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -90,37 +88,36 @@ tcu::TestStatus testPhysicalDeviceFeature16BitStorageFeatures (Context& context)
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDevice16BitStorageFeatures    device16BitStorageFeatures[count];
-       const bool                                                              is16BitStorageFeatures = checkExtension(properties, "VK_KHR_16bit_storage") || context.contextSupports(vk::ApiVersion(0, 1, 1, 0));
+       VkPhysicalDeviceMultiviewFeatures       deviceMultiviewFeatures[count];
+       const bool                                                      isMultiviewFeatures = context.contextSupports(vk::ApiVersion(0, 1, 1, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&device16BitStorageFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDevice16BitStorageFeatures));
-               device16BitStorageFeatures[ndx].sType = is16BitStorageFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               device16BitStorageFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceMultiviewFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceMultiviewFeatures));
+               deviceMultiviewFeatures[ndx].sType = isMultiviewFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceMultiviewFeatures[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &device16BitStorageFeatures[ndx];
+               extFeatures.pNext = &deviceMultiviewFeatures[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (is16BitStorageFeatures)
-               log << TestLog::Message << device16BitStorageFeatures[0] << TestLog::EndMessage;
+       if (isMultiviewFeatures)
+               log << TestLog::Message << deviceMultiviewFeatures[0] << TestLog::EndMessage;
 
-       if (is16BitStorageFeatures &&
-               (device16BitStorageFeatures[0].storageBuffer16BitAccess != device16BitStorageFeatures[1].storageBuffer16BitAccess ||
-                device16BitStorageFeatures[0].uniformAndStorageBuffer16BitAccess != device16BitStorageFeatures[1].uniformAndStorageBuffer16BitAccess ||
-                device16BitStorageFeatures[0].storagePushConstant16 != device16BitStorageFeatures[1].storagePushConstant16 ||
-                device16BitStorageFeatures[0].storageInputOutput16 != device16BitStorageFeatures[1].storageInputOutput16))
+       if (isMultiviewFeatures &&
+               (deviceMultiviewFeatures[0].multiview != deviceMultiviewFeatures[1].multiview ||
+                deviceMultiviewFeatures[0].multiviewGeometryShader != deviceMultiviewFeatures[1].multiviewGeometryShader ||
+                deviceMultiviewFeatures[0].multiviewTessellationShader != deviceMultiviewFeatures[1].multiviewTessellationShader))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDevice16BitStorageFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceMultiviewFeatures");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureAccelerationStructureFeaturesKHR (Context& context)
+tcu::TestStatus testPhysicalDeviceFeaturePresentIdFeaturesKHR (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -130,38 +127,34 @@ tcu::TestStatus testPhysicalDeviceFeatureAccelerationStructureFeaturesKHR (Conte
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceAccelerationStructureFeaturesKHR        deviceAccelerationStructureFeaturesKHR[count];
-       const bool                                                                                      isAccelerationStructureFeaturesKHR = checkExtension(properties, "VK_KHR_acceleration_structure");
+       VkPhysicalDevicePresentIdFeaturesKHR    devicePresentIdFeaturesKHR[count];
+       const bool                                                              isPresentIdFeaturesKHR = checkExtension(properties, "VK_KHR_present_id");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceAccelerationStructureFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceAccelerationStructureFeaturesKHR));
-               deviceAccelerationStructureFeaturesKHR[ndx].sType = isAccelerationStructureFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceAccelerationStructureFeaturesKHR[ndx].pNext = DE_NULL;
+               deMemset(&devicePresentIdFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDevicePresentIdFeaturesKHR));
+               devicePresentIdFeaturesKHR[ndx].sType = isPresentIdFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
+               devicePresentIdFeaturesKHR[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceAccelerationStructureFeaturesKHR[ndx];
+               extFeatures.pNext = &devicePresentIdFeaturesKHR[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isAccelerationStructureFeaturesKHR)
-               log << TestLog::Message << deviceAccelerationStructureFeaturesKHR[0] << TestLog::EndMessage;
+       if (isPresentIdFeaturesKHR)
+               log << TestLog::Message << devicePresentIdFeaturesKHR[0] << TestLog::EndMessage;
 
-       if (isAccelerationStructureFeaturesKHR &&
-               (deviceAccelerationStructureFeaturesKHR[0].accelerationStructure != deviceAccelerationStructureFeaturesKHR[1].accelerationStructure ||
-                deviceAccelerationStructureFeaturesKHR[0].accelerationStructureCaptureReplay != deviceAccelerationStructureFeaturesKHR[1].accelerationStructureCaptureReplay ||
-                deviceAccelerationStructureFeaturesKHR[0].accelerationStructureIndirectBuild != deviceAccelerationStructureFeaturesKHR[1].accelerationStructureIndirectBuild ||
-                deviceAccelerationStructureFeaturesKHR[0].accelerationStructureHostCommands != deviceAccelerationStructureFeaturesKHR[1].accelerationStructureHostCommands ||
-                deviceAccelerationStructureFeaturesKHR[0].descriptorBindingAccelerationStructureUpdateAfterBind != deviceAccelerationStructureFeaturesKHR[1].descriptorBindingAccelerationStructureUpdateAfterBind))
+       if (isPresentIdFeaturesKHR &&
+               (devicePresentIdFeaturesKHR[0].presentId != devicePresentIdFeaturesKHR[1].presentId))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceAccelerationStructureFeaturesKHR");
+               TCU_FAIL("Mismatch between VkPhysicalDevicePresentIdFeaturesKHR");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureASTCDecodeFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeaturePresentWaitFeaturesKHR (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -171,34 +164,34 @@ tcu::TestStatus testPhysicalDeviceFeatureASTCDecodeFeaturesEXT (Context& context
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceASTCDecodeFeaturesEXT   deviceASTCDecodeFeaturesEXT[count];
-       const bool                                                              isASTCDecodeFeaturesEXT = checkExtension(properties, "VK_EXT_astc_decode_mode");
+       VkPhysicalDevicePresentWaitFeaturesKHR  devicePresentWaitFeaturesKHR[count];
+       const bool                                                              isPresentWaitFeaturesKHR = checkExtension(properties, "VK_KHR_present_wait");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceASTCDecodeFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceASTCDecodeFeaturesEXT));
-               deviceASTCDecodeFeaturesEXT[ndx].sType = isASTCDecodeFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceASTCDecodeFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&devicePresentWaitFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDevicePresentWaitFeaturesKHR));
+               devicePresentWaitFeaturesKHR[ndx].sType = isPresentWaitFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
+               devicePresentWaitFeaturesKHR[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceASTCDecodeFeaturesEXT[ndx];
+               extFeatures.pNext = &devicePresentWaitFeaturesKHR[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isASTCDecodeFeaturesEXT)
-               log << TestLog::Message << deviceASTCDecodeFeaturesEXT[0] << TestLog::EndMessage;
+       if (isPresentWaitFeaturesKHR)
+               log << TestLog::Message << devicePresentWaitFeaturesKHR[0] << TestLog::EndMessage;
 
-       if (isASTCDecodeFeaturesEXT &&
-               (deviceASTCDecodeFeaturesEXT[0].decodeModeSharedExponent != deviceASTCDecodeFeaturesEXT[1].decodeModeSharedExponent))
+       if (isPresentWaitFeaturesKHR &&
+               (devicePresentWaitFeaturesKHR[0].presentWait != devicePresentWaitFeaturesKHR[1].presentWait))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceASTCDecodeFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDevicePresentWaitFeaturesKHR");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureBlendOperationAdvancedFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeature16BitStorageFeatures (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -208,34 +201,37 @@ tcu::TestStatus testPhysicalDeviceFeatureBlendOperationAdvancedFeaturesEXT (Cont
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT       deviceBlendOperationAdvancedFeaturesEXT[count];
-       const bool                                                                                      isBlendOperationAdvancedFeaturesEXT = checkExtension(properties, "VK_EXT_blend_operation_advanced");
+       VkPhysicalDevice16BitStorageFeatures    device16BitStorageFeatures[count];
+       const bool                                                              is16BitStorageFeatures = context.contextSupports(vk::ApiVersion(0, 1, 1, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceBlendOperationAdvancedFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT));
-               deviceBlendOperationAdvancedFeaturesEXT[ndx].sType = isBlendOperationAdvancedFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceBlendOperationAdvancedFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&device16BitStorageFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDevice16BitStorageFeatures));
+               device16BitStorageFeatures[ndx].sType = is16BitStorageFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               device16BitStorageFeatures[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceBlendOperationAdvancedFeaturesEXT[ndx];
+               extFeatures.pNext = &device16BitStorageFeatures[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isBlendOperationAdvancedFeaturesEXT)
-               log << TestLog::Message << deviceBlendOperationAdvancedFeaturesEXT[0] << TestLog::EndMessage;
+       if (is16BitStorageFeatures)
+               log << TestLog::Message << device16BitStorageFeatures[0] << TestLog::EndMessage;
 
-       if (isBlendOperationAdvancedFeaturesEXT &&
-               (deviceBlendOperationAdvancedFeaturesEXT[0].advancedBlendCoherentOperations != deviceBlendOperationAdvancedFeaturesEXT[1].advancedBlendCoherentOperations))
+       if (is16BitStorageFeatures &&
+               (device16BitStorageFeatures[0].storageBuffer16BitAccess != device16BitStorageFeatures[1].storageBuffer16BitAccess ||
+                device16BitStorageFeatures[0].uniformAndStorageBuffer16BitAccess != device16BitStorageFeatures[1].uniformAndStorageBuffer16BitAccess ||
+                device16BitStorageFeatures[0].storagePushConstant16 != device16BitStorageFeatures[1].storagePushConstant16 ||
+                device16BitStorageFeatures[0].storageInputOutput16 != device16BitStorageFeatures[1].storageInputOutput16))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDevice16BitStorageFeatures");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureBufferDeviceAddressFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureShaderSubgroupExtendedTypesFeatures (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -245,36 +241,34 @@ tcu::TestStatus testPhysicalDeviceFeatureBufferDeviceAddressFeaturesEXT (Context
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceBufferDeviceAddressFeaturesEXT  deviceBufferDeviceAddressFeaturesEXT[count];
-       const bool                                                                              isBufferDeviceAddressFeaturesEXT = checkExtension(properties, "VK_EXT_buffer_device_address");
+       VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures     deviceShaderSubgroupExtendedTypesFeatures[count];
+       const bool                                                                                      isShaderSubgroupExtendedTypesFeatures = context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceBufferDeviceAddressFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceBufferDeviceAddressFeaturesEXT));
-               deviceBufferDeviceAddressFeaturesEXT[ndx].sType = isBufferDeviceAddressFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceBufferDeviceAddressFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&deviceShaderSubgroupExtendedTypesFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures));
+               deviceShaderSubgroupExtendedTypesFeatures[ndx].sType = isShaderSubgroupExtendedTypesFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceShaderSubgroupExtendedTypesFeatures[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceBufferDeviceAddressFeaturesEXT[ndx];
+               extFeatures.pNext = &deviceShaderSubgroupExtendedTypesFeatures[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isBufferDeviceAddressFeaturesEXT)
-               log << TestLog::Message << deviceBufferDeviceAddressFeaturesEXT[0] << TestLog::EndMessage;
+       if (isShaderSubgroupExtendedTypesFeatures)
+               log << TestLog::Message << deviceShaderSubgroupExtendedTypesFeatures[0] << TestLog::EndMessage;
 
-       if (isBufferDeviceAddressFeaturesEXT &&
-               (deviceBufferDeviceAddressFeaturesEXT[0].bufferDeviceAddress != deviceBufferDeviceAddressFeaturesEXT[1].bufferDeviceAddress ||
-                deviceBufferDeviceAddressFeaturesEXT[0].bufferDeviceAddressCaptureReplay != deviceBufferDeviceAddressFeaturesEXT[1].bufferDeviceAddressCaptureReplay ||
-                deviceBufferDeviceAddressFeaturesEXT[0].bufferDeviceAddressMultiDevice != deviceBufferDeviceAddressFeaturesEXT[1].bufferDeviceAddressMultiDevice))
+       if (isShaderSubgroupExtendedTypesFeatures &&
+               (deviceShaderSubgroupExtendedTypesFeatures[0].shaderSubgroupExtendedTypes != deviceShaderSubgroupExtendedTypesFeatures[1].shaderSubgroupExtendedTypes))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceBufferDeviceAddressFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureBufferDeviceAddressFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureSamplerYcbcrConversionFeatures (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -284,36 +278,34 @@ tcu::TestStatus testPhysicalDeviceFeatureBufferDeviceAddressFeatures (Context& c
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceBufferDeviceAddressFeatures     deviceBufferDeviceAddressFeatures[count];
-       const bool                                                                      isBufferDeviceAddressFeatures = checkExtension(properties, "VK_KHR_buffer_device_address") || context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
+       VkPhysicalDeviceSamplerYcbcrConversionFeatures  deviceSamplerYcbcrConversionFeatures[count];
+       const bool                                                                              isSamplerYcbcrConversionFeatures = context.contextSupports(vk::ApiVersion(0, 1, 1, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceBufferDeviceAddressFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures));
-               deviceBufferDeviceAddressFeatures[ndx].sType = isBufferDeviceAddressFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceBufferDeviceAddressFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceSamplerYcbcrConversionFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures));
+               deviceSamplerYcbcrConversionFeatures[ndx].sType = isSamplerYcbcrConversionFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceSamplerYcbcrConversionFeatures[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceBufferDeviceAddressFeatures[ndx];
+               extFeatures.pNext = &deviceSamplerYcbcrConversionFeatures[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isBufferDeviceAddressFeatures)
-               log << TestLog::Message << deviceBufferDeviceAddressFeatures[0] << TestLog::EndMessage;
+       if (isSamplerYcbcrConversionFeatures)
+               log << TestLog::Message << deviceSamplerYcbcrConversionFeatures[0] << TestLog::EndMessage;
 
-       if (isBufferDeviceAddressFeatures &&
-               (deviceBufferDeviceAddressFeatures[0].bufferDeviceAddress != deviceBufferDeviceAddressFeatures[1].bufferDeviceAddress ||
-                deviceBufferDeviceAddressFeatures[0].bufferDeviceAddressCaptureReplay != deviceBufferDeviceAddressFeatures[1].bufferDeviceAddressCaptureReplay ||
-                deviceBufferDeviceAddressFeatures[0].bufferDeviceAddressMultiDevice != deviceBufferDeviceAddressFeatures[1].bufferDeviceAddressMultiDevice))
+       if (isSamplerYcbcrConversionFeatures &&
+               (deviceSamplerYcbcrConversionFeatures[0].samplerYcbcrConversion != deviceSamplerYcbcrConversionFeatures[1].samplerYcbcrConversion))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceBufferDeviceAddressFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceSamplerYcbcrConversionFeatures");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureConditionalRenderingFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureProtectedMemoryFeatures (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -323,35 +315,34 @@ tcu::TestStatus testPhysicalDeviceFeatureConditionalRenderingFeaturesEXT (Contex
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceConditionalRenderingFeaturesEXT deviceConditionalRenderingFeaturesEXT[count];
-       const bool                                                                              isConditionalRenderingFeaturesEXT = checkExtension(properties, "VK_EXT_conditional_rendering");
+       VkPhysicalDeviceProtectedMemoryFeatures deviceProtectedMemoryFeatures[count];
+       const bool                                                              isProtectedMemoryFeatures = context.contextSupports(vk::ApiVersion(0, 1, 1, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceConditionalRenderingFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceConditionalRenderingFeaturesEXT));
-               deviceConditionalRenderingFeaturesEXT[ndx].sType = isConditionalRenderingFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceConditionalRenderingFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&deviceProtectedMemoryFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceProtectedMemoryFeatures));
+               deviceProtectedMemoryFeatures[ndx].sType = isProtectedMemoryFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceProtectedMemoryFeatures[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceConditionalRenderingFeaturesEXT[ndx];
+               extFeatures.pNext = &deviceProtectedMemoryFeatures[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isConditionalRenderingFeaturesEXT)
-               log << TestLog::Message << deviceConditionalRenderingFeaturesEXT[0] << TestLog::EndMessage;
+       if (isProtectedMemoryFeatures)
+               log << TestLog::Message << deviceProtectedMemoryFeatures[0] << TestLog::EndMessage;
 
-       if (isConditionalRenderingFeaturesEXT &&
-               (deviceConditionalRenderingFeaturesEXT[0].conditionalRendering != deviceConditionalRenderingFeaturesEXT[1].conditionalRendering ||
-                deviceConditionalRenderingFeaturesEXT[0].inheritedConditionalRendering != deviceConditionalRenderingFeaturesEXT[1].inheritedConditionalRendering))
+       if (isProtectedMemoryFeatures &&
+               (deviceProtectedMemoryFeatures[0].protectedMemory != deviceProtectedMemoryFeatures[1].protectedMemory))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceConditionalRenderingFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceProtectedMemoryFeatures");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureCustomBorderColorFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureBlendOperationAdvancedFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -361,35 +352,34 @@ tcu::TestStatus testPhysicalDeviceFeatureCustomBorderColorFeaturesEXT (Context&
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceCustomBorderColorFeaturesEXT    deviceCustomBorderColorFeaturesEXT[count];
-       const bool                                                                              isCustomBorderColorFeaturesEXT = checkExtension(properties, "VK_EXT_custom_border_color");
+       VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT       deviceBlendOperationAdvancedFeaturesEXT[count];
+       const bool                                                                                      isBlendOperationAdvancedFeaturesEXT = checkExtension(properties, "VK_EXT_blend_operation_advanced");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceCustomBorderColorFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT));
-               deviceCustomBorderColorFeaturesEXT[ndx].sType = isCustomBorderColorFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceCustomBorderColorFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&deviceBlendOperationAdvancedFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT));
+               deviceBlendOperationAdvancedFeaturesEXT[ndx].sType = isBlendOperationAdvancedFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceBlendOperationAdvancedFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceCustomBorderColorFeaturesEXT[ndx];
+               extFeatures.pNext = &deviceBlendOperationAdvancedFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isCustomBorderColorFeaturesEXT)
-               log << TestLog::Message << deviceCustomBorderColorFeaturesEXT[0] << TestLog::EndMessage;
+       if (isBlendOperationAdvancedFeaturesEXT)
+               log << TestLog::Message << deviceBlendOperationAdvancedFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isCustomBorderColorFeaturesEXT &&
-               (deviceCustomBorderColorFeaturesEXT[0].customBorderColors != deviceCustomBorderColorFeaturesEXT[1].customBorderColors ||
-                deviceCustomBorderColorFeaturesEXT[0].customBorderColorWithoutFormat != deviceCustomBorderColorFeaturesEXT[1].customBorderColorWithoutFormat))
+       if (isBlendOperationAdvancedFeaturesEXT &&
+               (deviceBlendOperationAdvancedFeaturesEXT[0].advancedBlendCoherentOperations != deviceBlendOperationAdvancedFeaturesEXT[1].advancedBlendCoherentOperations))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceCustomBorderColorFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureColorWriteEnableFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureMultiDrawFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -399,34 +389,792 @@ tcu::TestStatus testPhysicalDeviceFeatureColorWriteEnableFeaturesEXT (Context& c
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceColorWriteEnableFeaturesEXT     deviceColorWriteEnableFeaturesEXT[count];
-       const bool                                                                      isColorWriteEnableFeaturesEXT = checkExtension(properties, "VK_EXT_color_write_enable");
+       VkPhysicalDeviceMultiDrawFeaturesEXT    deviceMultiDrawFeaturesEXT[count];
+       const bool                                                              isMultiDrawFeaturesEXT = checkExtension(properties, "VK_EXT_multi_draw");
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceMultiDrawFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceMultiDrawFeaturesEXT));
+               deviceMultiDrawFeaturesEXT[ndx].sType = isMultiDrawFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceMultiDrawFeaturesEXT[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceMultiDrawFeaturesEXT[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isMultiDrawFeaturesEXT)
+               log << TestLog::Message << deviceMultiDrawFeaturesEXT[0] << TestLog::EndMessage;
+
+       if (isMultiDrawFeaturesEXT &&
+               (deviceMultiDrawFeaturesEXT[0].multiDraw != deviceMultiDrawFeaturesEXT[1].multiDraw))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceMultiDrawFeaturesEXT");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureInlineUniformBlockFeatures (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceInlineUniformBlockFeatures      deviceInlineUniformBlockFeatures[count];
+       const bool                                                                      isInlineUniformBlockFeatures = context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceInlineUniformBlockFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceInlineUniformBlockFeatures));
+               deviceInlineUniformBlockFeatures[ndx].sType = isInlineUniformBlockFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceInlineUniformBlockFeatures[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceInlineUniformBlockFeatures[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isInlineUniformBlockFeatures)
+               log << TestLog::Message << deviceInlineUniformBlockFeatures[0] << TestLog::EndMessage;
+
+       if (isInlineUniformBlockFeatures &&
+               (deviceInlineUniformBlockFeatures[0].inlineUniformBlock != deviceInlineUniformBlockFeatures[1].inlineUniformBlock ||
+                deviceInlineUniformBlockFeatures[0].descriptorBindingInlineUniformBlockUpdateAfterBind != deviceInlineUniformBlockFeatures[1].descriptorBindingInlineUniformBlockUpdateAfterBind))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceInlineUniformBlockFeatures");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureMaintenance4Features (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceMaintenance4Features    deviceMaintenance4Features[count];
+       const bool                                                              isMaintenance4Features = context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceMaintenance4Features[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceMaintenance4Features));
+               deviceMaintenance4Features[ndx].sType = isMaintenance4Features ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceMaintenance4Features[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceMaintenance4Features[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isMaintenance4Features)
+               log << TestLog::Message << deviceMaintenance4Features[0] << TestLog::EndMessage;
+
+       if (isMaintenance4Features &&
+               (deviceMaintenance4Features[0].maintenance4 != deviceMaintenance4Features[1].maintenance4))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceMaintenance4Features");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureShaderDrawParametersFeatures (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceShaderDrawParametersFeatures    deviceShaderDrawParametersFeatures[count];
+       const bool                                                                              isShaderDrawParametersFeatures = context.contextSupports(vk::ApiVersion(0, 1, 1, 0));
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceShaderDrawParametersFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderDrawParametersFeatures));
+               deviceShaderDrawParametersFeatures[ndx].sType = isShaderDrawParametersFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceShaderDrawParametersFeatures[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceShaderDrawParametersFeatures[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isShaderDrawParametersFeatures)
+               log << TestLog::Message << deviceShaderDrawParametersFeatures[0] << TestLog::EndMessage;
+
+       if (isShaderDrawParametersFeatures &&
+               (deviceShaderDrawParametersFeatures[0].shaderDrawParameters != deviceShaderDrawParametersFeatures[1].shaderDrawParameters))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderDrawParametersFeatures");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureShaderFloat16Int8Features (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceShaderFloat16Int8Features       deviceShaderFloat16Int8Features[count];
+       const bool                                                                      isShaderFloat16Int8Features = context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceShaderFloat16Int8Features[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderFloat16Int8Features));
+               deviceShaderFloat16Int8Features[ndx].sType = isShaderFloat16Int8Features ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceShaderFloat16Int8Features[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceShaderFloat16Int8Features[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isShaderFloat16Int8Features)
+               log << TestLog::Message << deviceShaderFloat16Int8Features[0] << TestLog::EndMessage;
+
+       if (isShaderFloat16Int8Features &&
+               (deviceShaderFloat16Int8Features[0].shaderFloat16 != deviceShaderFloat16Int8Features[1].shaderFloat16 ||
+                deviceShaderFloat16Int8Features[0].shaderInt8 != deviceShaderFloat16Int8Features[1].shaderInt8))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderFloat16Int8Features");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureHostQueryResetFeatures (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceHostQueryResetFeatures  deviceHostQueryResetFeatures[count];
+       const bool                                                              isHostQueryResetFeatures = context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceHostQueryResetFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceHostQueryResetFeatures));
+               deviceHostQueryResetFeatures[ndx].sType = isHostQueryResetFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceHostQueryResetFeatures[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceHostQueryResetFeatures[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isHostQueryResetFeatures)
+               log << TestLog::Message << deviceHostQueryResetFeatures[0] << TestLog::EndMessage;
+
+       if (isHostQueryResetFeatures &&
+               (deviceHostQueryResetFeatures[0].hostQueryReset != deviceHostQueryResetFeatures[1].hostQueryReset))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceHostQueryResetFeatures");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureGlobalPriorityQueryFeaturesKHR (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR  deviceGlobalPriorityQueryFeaturesKHR[count];
+       const bool                                                                              isGlobalPriorityQueryFeaturesKHR = checkExtension(properties, "VK_KHR_global_priority");
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceGlobalPriorityQueryFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR));
+               deviceGlobalPriorityQueryFeaturesKHR[ndx].sType = isGlobalPriorityQueryFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceGlobalPriorityQueryFeaturesKHR[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceGlobalPriorityQueryFeaturesKHR[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isGlobalPriorityQueryFeaturesKHR)
+               log << TestLog::Message << deviceGlobalPriorityQueryFeaturesKHR[0] << TestLog::EndMessage;
+
+       if (isGlobalPriorityQueryFeaturesKHR &&
+               (deviceGlobalPriorityQueryFeaturesKHR[0].globalPriorityQuery != deviceGlobalPriorityQueryFeaturesKHR[1].globalPriorityQuery))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureDeviceMemoryReportFeaturesEXT (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceDeviceMemoryReportFeaturesEXT   deviceDeviceMemoryReportFeaturesEXT[count];
+       const bool                                                                              isDeviceMemoryReportFeaturesEXT = checkExtension(properties, "VK_EXT_device_memory_report");
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceDeviceMemoryReportFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceDeviceMemoryReportFeaturesEXT));
+               deviceDeviceMemoryReportFeaturesEXT[ndx].sType = isDeviceMemoryReportFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceDeviceMemoryReportFeaturesEXT[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceDeviceMemoryReportFeaturesEXT[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isDeviceMemoryReportFeaturesEXT)
+               log << TestLog::Message << deviceDeviceMemoryReportFeaturesEXT[0] << TestLog::EndMessage;
+
+       if (isDeviceMemoryReportFeaturesEXT &&
+               (deviceDeviceMemoryReportFeaturesEXT[0].deviceMemoryReport != deviceDeviceMemoryReportFeaturesEXT[1].deviceMemoryReport))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceDeviceMemoryReportFeaturesEXT");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureDescriptorIndexingFeatures (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceDescriptorIndexingFeatures      deviceDescriptorIndexingFeatures[count];
+       const bool                                                                      isDescriptorIndexingFeatures = context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceDescriptorIndexingFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceDescriptorIndexingFeatures));
+               deviceDescriptorIndexingFeatures[ndx].sType = isDescriptorIndexingFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceDescriptorIndexingFeatures[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceDescriptorIndexingFeatures[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isDescriptorIndexingFeatures)
+               log << TestLog::Message << deviceDescriptorIndexingFeatures[0] << TestLog::EndMessage;
+
+       if (isDescriptorIndexingFeatures &&
+               (deviceDescriptorIndexingFeatures[0].shaderInputAttachmentArrayDynamicIndexing != deviceDescriptorIndexingFeatures[1].shaderInputAttachmentArrayDynamicIndexing ||
+                deviceDescriptorIndexingFeatures[0].shaderUniformTexelBufferArrayDynamicIndexing != deviceDescriptorIndexingFeatures[1].shaderUniformTexelBufferArrayDynamicIndexing ||
+                deviceDescriptorIndexingFeatures[0].shaderStorageTexelBufferArrayDynamicIndexing != deviceDescriptorIndexingFeatures[1].shaderStorageTexelBufferArrayDynamicIndexing ||
+                deviceDescriptorIndexingFeatures[0].shaderUniformBufferArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderUniformBufferArrayNonUniformIndexing ||
+                deviceDescriptorIndexingFeatures[0].shaderSampledImageArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderSampledImageArrayNonUniformIndexing ||
+                deviceDescriptorIndexingFeatures[0].shaderStorageBufferArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderStorageBufferArrayNonUniformIndexing ||
+                deviceDescriptorIndexingFeatures[0].shaderStorageImageArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderStorageImageArrayNonUniformIndexing ||
+                deviceDescriptorIndexingFeatures[0].shaderInputAttachmentArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderInputAttachmentArrayNonUniformIndexing ||
+                deviceDescriptorIndexingFeatures[0].shaderUniformTexelBufferArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderUniformTexelBufferArrayNonUniformIndexing ||
+                deviceDescriptorIndexingFeatures[0].shaderStorageTexelBufferArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderStorageTexelBufferArrayNonUniformIndexing ||
+                deviceDescriptorIndexingFeatures[0].descriptorBindingUniformBufferUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingUniformBufferUpdateAfterBind ||
+                deviceDescriptorIndexingFeatures[0].descriptorBindingSampledImageUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingSampledImageUpdateAfterBind ||
+                deviceDescriptorIndexingFeatures[0].descriptorBindingStorageImageUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingStorageImageUpdateAfterBind ||
+                deviceDescriptorIndexingFeatures[0].descriptorBindingStorageBufferUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingStorageBufferUpdateAfterBind ||
+                deviceDescriptorIndexingFeatures[0].descriptorBindingUniformTexelBufferUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingUniformTexelBufferUpdateAfterBind ||
+                deviceDescriptorIndexingFeatures[0].descriptorBindingStorageTexelBufferUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingStorageTexelBufferUpdateAfterBind ||
+                deviceDescriptorIndexingFeatures[0].descriptorBindingUpdateUnusedWhilePending != deviceDescriptorIndexingFeatures[1].descriptorBindingUpdateUnusedWhilePending ||
+                deviceDescriptorIndexingFeatures[0].descriptorBindingPartiallyBound != deviceDescriptorIndexingFeatures[1].descriptorBindingPartiallyBound ||
+                deviceDescriptorIndexingFeatures[0].descriptorBindingVariableDescriptorCount != deviceDescriptorIndexingFeatures[1].descriptorBindingVariableDescriptorCount ||
+                deviceDescriptorIndexingFeatures[0].runtimeDescriptorArray != deviceDescriptorIndexingFeatures[1].runtimeDescriptorArray))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceDescriptorIndexingFeatures");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureTimelineSemaphoreFeatures (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceTimelineSemaphoreFeatures       deviceTimelineSemaphoreFeatures[count];
+       const bool                                                                      isTimelineSemaphoreFeatures = context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceTimelineSemaphoreFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures));
+               deviceTimelineSemaphoreFeatures[ndx].sType = isTimelineSemaphoreFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceTimelineSemaphoreFeatures[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceTimelineSemaphoreFeatures[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isTimelineSemaphoreFeatures)
+               log << TestLog::Message << deviceTimelineSemaphoreFeatures[0] << TestLog::EndMessage;
+
+       if (isTimelineSemaphoreFeatures &&
+               (deviceTimelineSemaphoreFeatures[0].timelineSemaphore != deviceTimelineSemaphoreFeatures[1].timelineSemaphore))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceTimelineSemaphoreFeatures");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeature8BitStorageFeatures (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDevice8BitStorageFeatures     device8BitStorageFeatures[count];
+       const bool                                                      is8BitStorageFeatures = context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&device8BitStorageFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDevice8BitStorageFeatures));
+               device8BitStorageFeatures[ndx].sType = is8BitStorageFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               device8BitStorageFeatures[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &device8BitStorageFeatures[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (is8BitStorageFeatures)
+               log << TestLog::Message << device8BitStorageFeatures[0] << TestLog::EndMessage;
+
+       if (is8BitStorageFeatures &&
+               (device8BitStorageFeatures[0].storageBuffer8BitAccess != device8BitStorageFeatures[1].storageBuffer8BitAccess ||
+                device8BitStorageFeatures[0].uniformAndStorageBuffer8BitAccess != device8BitStorageFeatures[1].uniformAndStorageBuffer8BitAccess ||
+                device8BitStorageFeatures[0].storagePushConstant8 != device8BitStorageFeatures[1].storagePushConstant8))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDevice8BitStorageFeatures");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureConditionalRenderingFeaturesEXT (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceConditionalRenderingFeaturesEXT deviceConditionalRenderingFeaturesEXT[count];
+       const bool                                                                              isConditionalRenderingFeaturesEXT = checkExtension(properties, "VK_EXT_conditional_rendering");
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceConditionalRenderingFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceConditionalRenderingFeaturesEXT));
+               deviceConditionalRenderingFeaturesEXT[ndx].sType = isConditionalRenderingFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceConditionalRenderingFeaturesEXT[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceConditionalRenderingFeaturesEXT[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isConditionalRenderingFeaturesEXT)
+               log << TestLog::Message << deviceConditionalRenderingFeaturesEXT[0] << TestLog::EndMessage;
+
+       if (isConditionalRenderingFeaturesEXT &&
+               (deviceConditionalRenderingFeaturesEXT[0].conditionalRendering != deviceConditionalRenderingFeaturesEXT[1].conditionalRendering ||
+                deviceConditionalRenderingFeaturesEXT[0].inheritedConditionalRendering != deviceConditionalRenderingFeaturesEXT[1].inheritedConditionalRendering))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceConditionalRenderingFeaturesEXT");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureVulkanMemoryModelFeatures (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceVulkanMemoryModelFeatures       deviceVulkanMemoryModelFeatures[count];
+       const bool                                                                      isVulkanMemoryModelFeatures = context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceVulkanMemoryModelFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures));
+               deviceVulkanMemoryModelFeatures[ndx].sType = isVulkanMemoryModelFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceVulkanMemoryModelFeatures[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceVulkanMemoryModelFeatures[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isVulkanMemoryModelFeatures)
+               log << TestLog::Message << deviceVulkanMemoryModelFeatures[0] << TestLog::EndMessage;
+
+       if (isVulkanMemoryModelFeatures &&
+               (deviceVulkanMemoryModelFeatures[0].vulkanMemoryModel != deviceVulkanMemoryModelFeatures[1].vulkanMemoryModel ||
+                deviceVulkanMemoryModelFeatures[0].vulkanMemoryModelDeviceScope != deviceVulkanMemoryModelFeatures[1].vulkanMemoryModelDeviceScope ||
+                deviceVulkanMemoryModelFeatures[0].vulkanMemoryModelAvailabilityVisibilityChains != deviceVulkanMemoryModelFeatures[1].vulkanMemoryModelAvailabilityVisibilityChains))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceVulkanMemoryModelFeatures");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureShaderAtomicInt64Features (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceShaderAtomicInt64Features       deviceShaderAtomicInt64Features[count];
+       const bool                                                                      isShaderAtomicInt64Features = context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceShaderAtomicInt64Features[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderAtomicInt64Features));
+               deviceShaderAtomicInt64Features[ndx].sType = isShaderAtomicInt64Features ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceShaderAtomicInt64Features[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceShaderAtomicInt64Features[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isShaderAtomicInt64Features)
+               log << TestLog::Message << deviceShaderAtomicInt64Features[0] << TestLog::EndMessage;
+
+       if (isShaderAtomicInt64Features &&
+               (deviceShaderAtomicInt64Features[0].shaderBufferInt64Atomics != deviceShaderAtomicInt64Features[1].shaderBufferInt64Atomics ||
+                deviceShaderAtomicInt64Features[0].shaderSharedInt64Atomics != deviceShaderAtomicInt64Features[1].shaderSharedInt64Atomics))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderAtomicInt64Features");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureShaderAtomicFloatFeaturesEXT (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceShaderAtomicFloatFeaturesEXT    deviceShaderAtomicFloatFeaturesEXT[count];
+       const bool                                                                              isShaderAtomicFloatFeaturesEXT = checkExtension(properties, "VK_EXT_shader_atomic_float");
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceShaderAtomicFloatFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderAtomicFloatFeaturesEXT));
+               deviceShaderAtomicFloatFeaturesEXT[ndx].sType = isShaderAtomicFloatFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceShaderAtomicFloatFeaturesEXT[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceShaderAtomicFloatFeaturesEXT[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isShaderAtomicFloatFeaturesEXT)
+               log << TestLog::Message << deviceShaderAtomicFloatFeaturesEXT[0] << TestLog::EndMessage;
+
+       if (isShaderAtomicFloatFeaturesEXT &&
+               (deviceShaderAtomicFloatFeaturesEXT[0].shaderBufferFloat32Atomics != deviceShaderAtomicFloatFeaturesEXT[1].shaderBufferFloat32Atomics ||
+                deviceShaderAtomicFloatFeaturesEXT[0].shaderBufferFloat32AtomicAdd != deviceShaderAtomicFloatFeaturesEXT[1].shaderBufferFloat32AtomicAdd ||
+                deviceShaderAtomicFloatFeaturesEXT[0].shaderBufferFloat64Atomics != deviceShaderAtomicFloatFeaturesEXT[1].shaderBufferFloat64Atomics ||
+                deviceShaderAtomicFloatFeaturesEXT[0].shaderBufferFloat64AtomicAdd != deviceShaderAtomicFloatFeaturesEXT[1].shaderBufferFloat64AtomicAdd ||
+                deviceShaderAtomicFloatFeaturesEXT[0].shaderSharedFloat32Atomics != deviceShaderAtomicFloatFeaturesEXT[1].shaderSharedFloat32Atomics ||
+                deviceShaderAtomicFloatFeaturesEXT[0].shaderSharedFloat32AtomicAdd != deviceShaderAtomicFloatFeaturesEXT[1].shaderSharedFloat32AtomicAdd ||
+                deviceShaderAtomicFloatFeaturesEXT[0].shaderSharedFloat64Atomics != deviceShaderAtomicFloatFeaturesEXT[1].shaderSharedFloat64Atomics ||
+                deviceShaderAtomicFloatFeaturesEXT[0].shaderSharedFloat64AtomicAdd != deviceShaderAtomicFloatFeaturesEXT[1].shaderSharedFloat64AtomicAdd ||
+                deviceShaderAtomicFloatFeaturesEXT[0].shaderImageFloat32Atomics != deviceShaderAtomicFloatFeaturesEXT[1].shaderImageFloat32Atomics ||
+                deviceShaderAtomicFloatFeaturesEXT[0].shaderImageFloat32AtomicAdd != deviceShaderAtomicFloatFeaturesEXT[1].shaderImageFloat32AtomicAdd ||
+                deviceShaderAtomicFloatFeaturesEXT[0].sparseImageFloat32Atomics != deviceShaderAtomicFloatFeaturesEXT[1].sparseImageFloat32Atomics ||
+                deviceShaderAtomicFloatFeaturesEXT[0].sparseImageFloat32AtomicAdd != deviceShaderAtomicFloatFeaturesEXT[1].sparseImageFloat32AtomicAdd))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderAtomicFloatFeaturesEXT");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureShaderAtomicFloat2FeaturesEXT (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT   deviceShaderAtomicFloat2FeaturesEXT[count];
+       const bool                                                                              isShaderAtomicFloat2FeaturesEXT = checkExtension(properties, "VK_EXT_shader_atomic_float2");
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceShaderAtomicFloat2FeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT));
+               deviceShaderAtomicFloat2FeaturesEXT[ndx].sType = isShaderAtomicFloat2FeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceShaderAtomicFloat2FeaturesEXT[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceShaderAtomicFloat2FeaturesEXT[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isShaderAtomicFloat2FeaturesEXT)
+               log << TestLog::Message << deviceShaderAtomicFloat2FeaturesEXT[0] << TestLog::EndMessage;
+
+       if (isShaderAtomicFloat2FeaturesEXT &&
+               (deviceShaderAtomicFloat2FeaturesEXT[0].shaderBufferFloat16Atomics != deviceShaderAtomicFloat2FeaturesEXT[1].shaderBufferFloat16Atomics ||
+                deviceShaderAtomicFloat2FeaturesEXT[0].shaderBufferFloat16AtomicAdd != deviceShaderAtomicFloat2FeaturesEXT[1].shaderBufferFloat16AtomicAdd ||
+                deviceShaderAtomicFloat2FeaturesEXT[0].shaderBufferFloat16AtomicMinMax != deviceShaderAtomicFloat2FeaturesEXT[1].shaderBufferFloat16AtomicMinMax ||
+                deviceShaderAtomicFloat2FeaturesEXT[0].shaderBufferFloat32AtomicMinMax != deviceShaderAtomicFloat2FeaturesEXT[1].shaderBufferFloat32AtomicMinMax ||
+                deviceShaderAtomicFloat2FeaturesEXT[0].shaderBufferFloat64AtomicMinMax != deviceShaderAtomicFloat2FeaturesEXT[1].shaderBufferFloat64AtomicMinMax ||
+                deviceShaderAtomicFloat2FeaturesEXT[0].shaderSharedFloat16Atomics != deviceShaderAtomicFloat2FeaturesEXT[1].shaderSharedFloat16Atomics ||
+                deviceShaderAtomicFloat2FeaturesEXT[0].shaderSharedFloat16AtomicAdd != deviceShaderAtomicFloat2FeaturesEXT[1].shaderSharedFloat16AtomicAdd ||
+                deviceShaderAtomicFloat2FeaturesEXT[0].shaderSharedFloat16AtomicMinMax != deviceShaderAtomicFloat2FeaturesEXT[1].shaderSharedFloat16AtomicMinMax ||
+                deviceShaderAtomicFloat2FeaturesEXT[0].shaderSharedFloat32AtomicMinMax != deviceShaderAtomicFloat2FeaturesEXT[1].shaderSharedFloat32AtomicMinMax ||
+                deviceShaderAtomicFloat2FeaturesEXT[0].shaderSharedFloat64AtomicMinMax != deviceShaderAtomicFloat2FeaturesEXT[1].shaderSharedFloat64AtomicMinMax ||
+                deviceShaderAtomicFloat2FeaturesEXT[0].shaderImageFloat32AtomicMinMax != deviceShaderAtomicFloat2FeaturesEXT[1].shaderImageFloat32AtomicMinMax ||
+                deviceShaderAtomicFloat2FeaturesEXT[0].sparseImageFloat32AtomicMinMax != deviceShaderAtomicFloat2FeaturesEXT[1].sparseImageFloat32AtomicMinMax))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureVertexAttributeDivisorFeaturesEXT (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT       deviceVertexAttributeDivisorFeaturesEXT[count];
+       const bool                                                                                      isVertexAttributeDivisorFeaturesEXT = checkExtension(properties, "VK_EXT_vertex_attribute_divisor");
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceVertexAttributeDivisorFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT));
+               deviceVertexAttributeDivisorFeaturesEXT[ndx].sType = isVertexAttributeDivisorFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceVertexAttributeDivisorFeaturesEXT[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceVertexAttributeDivisorFeaturesEXT[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isVertexAttributeDivisorFeaturesEXT)
+               log << TestLog::Message << deviceVertexAttributeDivisorFeaturesEXT[0] << TestLog::EndMessage;
+
+       if (isVertexAttributeDivisorFeaturesEXT &&
+               (deviceVertexAttributeDivisorFeaturesEXT[0].vertexAttributeInstanceRateDivisor != deviceVertexAttributeDivisorFeaturesEXT[1].vertexAttributeInstanceRateDivisor ||
+                deviceVertexAttributeDivisorFeaturesEXT[0].vertexAttributeInstanceRateZeroDivisor != deviceVertexAttributeDivisorFeaturesEXT[1].vertexAttributeInstanceRateZeroDivisor))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureASTCDecodeFeaturesEXT (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceASTCDecodeFeaturesEXT   deviceASTCDecodeFeaturesEXT[count];
+       const bool                                                              isASTCDecodeFeaturesEXT = checkExtension(properties, "VK_EXT_astc_decode_mode");
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceASTCDecodeFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceASTCDecodeFeaturesEXT));
+               deviceASTCDecodeFeaturesEXT[ndx].sType = isASTCDecodeFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceASTCDecodeFeaturesEXT[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceASTCDecodeFeaturesEXT[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isASTCDecodeFeaturesEXT)
+               log << TestLog::Message << deviceASTCDecodeFeaturesEXT[0] << TestLog::EndMessage;
+
+       if (isASTCDecodeFeaturesEXT &&
+               (deviceASTCDecodeFeaturesEXT[0].decodeModeSharedExponent != deviceASTCDecodeFeaturesEXT[1].decodeModeSharedExponent))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceASTCDecodeFeaturesEXT");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureTransformFeedbackFeaturesEXT (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceTransformFeedbackFeaturesEXT    deviceTransformFeedbackFeaturesEXT[count];
+       const bool                                                                              isTransformFeedbackFeaturesEXT = checkExtension(properties, "VK_EXT_transform_feedback");
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceTransformFeedbackFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT));
+               deviceTransformFeedbackFeaturesEXT[ndx].sType = isTransformFeedbackFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceTransformFeedbackFeaturesEXT[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceTransformFeedbackFeaturesEXT[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isTransformFeedbackFeaturesEXT)
+               log << TestLog::Message << deviceTransformFeedbackFeaturesEXT[0] << TestLog::EndMessage;
+
+       if (isTransformFeedbackFeaturesEXT &&
+               (deviceTransformFeedbackFeaturesEXT[0].transformFeedback != deviceTransformFeedbackFeaturesEXT[1].transformFeedback ||
+                deviceTransformFeedbackFeaturesEXT[0].geometryStreams != deviceTransformFeedbackFeaturesEXT[1].geometryStreams))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceTransformFeedbackFeaturesEXT");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureAccelerationStructureFeaturesKHR (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceAccelerationStructureFeaturesKHR        deviceAccelerationStructureFeaturesKHR[count];
+       const bool                                                                                      isAccelerationStructureFeaturesKHR = checkExtension(properties, "VK_KHR_acceleration_structure");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceColorWriteEnableFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceColorWriteEnableFeaturesEXT));
-               deviceColorWriteEnableFeaturesEXT[ndx].sType = isColorWriteEnableFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceColorWriteEnableFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&deviceAccelerationStructureFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceAccelerationStructureFeaturesKHR));
+               deviceAccelerationStructureFeaturesKHR[ndx].sType = isAccelerationStructureFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceAccelerationStructureFeaturesKHR[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceColorWriteEnableFeaturesEXT[ndx];
+               extFeatures.pNext = &deviceAccelerationStructureFeaturesKHR[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isColorWriteEnableFeaturesEXT)
-               log << TestLog::Message << deviceColorWriteEnableFeaturesEXT[0] << TestLog::EndMessage;
+       if (isAccelerationStructureFeaturesKHR)
+               log << TestLog::Message << deviceAccelerationStructureFeaturesKHR[0] << TestLog::EndMessage;
 
-       if (isColorWriteEnableFeaturesEXT &&
-               (deviceColorWriteEnableFeaturesEXT[0].colorWriteEnable != deviceColorWriteEnableFeaturesEXT[1].colorWriteEnable))
+       if (isAccelerationStructureFeaturesKHR &&
+               (deviceAccelerationStructureFeaturesKHR[0].accelerationStructure != deviceAccelerationStructureFeaturesKHR[1].accelerationStructure ||
+                deviceAccelerationStructureFeaturesKHR[0].accelerationStructureCaptureReplay != deviceAccelerationStructureFeaturesKHR[1].accelerationStructureCaptureReplay ||
+                deviceAccelerationStructureFeaturesKHR[0].accelerationStructureIndirectBuild != deviceAccelerationStructureFeaturesKHR[1].accelerationStructureIndirectBuild ||
+                deviceAccelerationStructureFeaturesKHR[0].accelerationStructureHostCommands != deviceAccelerationStructureFeaturesKHR[1].accelerationStructureHostCommands ||
+                deviceAccelerationStructureFeaturesKHR[0].descriptorBindingAccelerationStructureUpdateAfterBind != deviceAccelerationStructureFeaturesKHR[1].descriptorBindingAccelerationStructureUpdateAfterBind))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceColorWriteEnableFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceAccelerationStructureFeaturesKHR");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureDescriptorIndexingFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureRayTracingPipelineFeaturesKHR (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -436,53 +1184,226 @@ tcu::TestStatus testPhysicalDeviceFeatureDescriptorIndexingFeatures (Context& co
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceDescriptorIndexingFeatures      deviceDescriptorIndexingFeatures[count];
-       const bool                                                                      isDescriptorIndexingFeatures = checkExtension(properties, "VK_EXT_descriptor_indexing") || context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
+       VkPhysicalDeviceRayTracingPipelineFeaturesKHR   deviceRayTracingPipelineFeaturesKHR[count];
+       const bool                                                                              isRayTracingPipelineFeaturesKHR = checkExtension(properties, "VK_KHR_ray_tracing_pipeline");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceDescriptorIndexingFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceDescriptorIndexingFeatures));
-               deviceDescriptorIndexingFeatures[ndx].sType = isDescriptorIndexingFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceDescriptorIndexingFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceRayTracingPipelineFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceRayTracingPipelineFeaturesKHR));
+               deviceRayTracingPipelineFeaturesKHR[ndx].sType = isRayTracingPipelineFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceRayTracingPipelineFeaturesKHR[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceDescriptorIndexingFeatures[ndx];
+               extFeatures.pNext = &deviceRayTracingPipelineFeaturesKHR[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isDescriptorIndexingFeatures)
-               log << TestLog::Message << deviceDescriptorIndexingFeatures[0] << TestLog::EndMessage;
+       if (isRayTracingPipelineFeaturesKHR)
+               log << TestLog::Message << deviceRayTracingPipelineFeaturesKHR[0] << TestLog::EndMessage;
 
-       if (isDescriptorIndexingFeatures &&
-               (deviceDescriptorIndexingFeatures[0].shaderInputAttachmentArrayDynamicIndexing != deviceDescriptorIndexingFeatures[1].shaderInputAttachmentArrayDynamicIndexing ||
-                deviceDescriptorIndexingFeatures[0].shaderUniformTexelBufferArrayDynamicIndexing != deviceDescriptorIndexingFeatures[1].shaderUniformTexelBufferArrayDynamicIndexing ||
-                deviceDescriptorIndexingFeatures[0].shaderStorageTexelBufferArrayDynamicIndexing != deviceDescriptorIndexingFeatures[1].shaderStorageTexelBufferArrayDynamicIndexing ||
-                deviceDescriptorIndexingFeatures[0].shaderUniformBufferArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderUniformBufferArrayNonUniformIndexing ||
-                deviceDescriptorIndexingFeatures[0].shaderSampledImageArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderSampledImageArrayNonUniformIndexing ||
-                deviceDescriptorIndexingFeatures[0].shaderStorageBufferArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderStorageBufferArrayNonUniformIndexing ||
-                deviceDescriptorIndexingFeatures[0].shaderStorageImageArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderStorageImageArrayNonUniformIndexing ||
-                deviceDescriptorIndexingFeatures[0].shaderInputAttachmentArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderInputAttachmentArrayNonUniformIndexing ||
-                deviceDescriptorIndexingFeatures[0].shaderUniformTexelBufferArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderUniformTexelBufferArrayNonUniformIndexing ||
-                deviceDescriptorIndexingFeatures[0].shaderStorageTexelBufferArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderStorageTexelBufferArrayNonUniformIndexing ||
-                deviceDescriptorIndexingFeatures[0].descriptorBindingUniformBufferUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingUniformBufferUpdateAfterBind ||
-                deviceDescriptorIndexingFeatures[0].descriptorBindingSampledImageUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingSampledImageUpdateAfterBind ||
-                deviceDescriptorIndexingFeatures[0].descriptorBindingStorageImageUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingStorageImageUpdateAfterBind ||
-                deviceDescriptorIndexingFeatures[0].descriptorBindingStorageBufferUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingStorageBufferUpdateAfterBind ||
-                deviceDescriptorIndexingFeatures[0].descriptorBindingUniformTexelBufferUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingUniformTexelBufferUpdateAfterBind ||
-                deviceDescriptorIndexingFeatures[0].descriptorBindingStorageTexelBufferUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingStorageTexelBufferUpdateAfterBind ||
-                deviceDescriptorIndexingFeatures[0].descriptorBindingUpdateUnusedWhilePending != deviceDescriptorIndexingFeatures[1].descriptorBindingUpdateUnusedWhilePending ||
-                deviceDescriptorIndexingFeatures[0].descriptorBindingPartiallyBound != deviceDescriptorIndexingFeatures[1].descriptorBindingPartiallyBound ||
-                deviceDescriptorIndexingFeatures[0].descriptorBindingVariableDescriptorCount != deviceDescriptorIndexingFeatures[1].descriptorBindingVariableDescriptorCount ||
-                deviceDescriptorIndexingFeatures[0].runtimeDescriptorArray != deviceDescriptorIndexingFeatures[1].runtimeDescriptorArray))
+       if (isRayTracingPipelineFeaturesKHR &&
+               (deviceRayTracingPipelineFeaturesKHR[0].rayTracingPipeline != deviceRayTracingPipelineFeaturesKHR[1].rayTracingPipeline ||
+                deviceRayTracingPipelineFeaturesKHR[0].rayTracingPipelineShaderGroupHandleCaptureReplay != deviceRayTracingPipelineFeaturesKHR[1].rayTracingPipelineShaderGroupHandleCaptureReplay ||
+                deviceRayTracingPipelineFeaturesKHR[0].rayTracingPipelineShaderGroupHandleCaptureReplayMixed != deviceRayTracingPipelineFeaturesKHR[1].rayTracingPipelineShaderGroupHandleCaptureReplayMixed ||
+                deviceRayTracingPipelineFeaturesKHR[0].rayTracingPipelineTraceRaysIndirect != deviceRayTracingPipelineFeaturesKHR[1].rayTracingPipelineTraceRaysIndirect ||
+                deviceRayTracingPipelineFeaturesKHR[0].rayTraversalPrimitiveCulling != deviceRayTracingPipelineFeaturesKHR[1].rayTraversalPrimitiveCulling))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceRayTracingPipelineFeaturesKHR");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureRayQueryFeaturesKHR (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceRayQueryFeaturesKHR     deviceRayQueryFeaturesKHR[count];
+       const bool                                                      isRayQueryFeaturesKHR = checkExtension(properties, "VK_KHR_ray_query");
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceRayQueryFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceRayQueryFeaturesKHR));
+               deviceRayQueryFeaturesKHR[ndx].sType = isRayQueryFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceRayQueryFeaturesKHR[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceRayQueryFeaturesKHR[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isRayQueryFeaturesKHR)
+               log << TestLog::Message << deviceRayQueryFeaturesKHR[0] << TestLog::EndMessage;
+
+       if (isRayQueryFeaturesKHR &&
+               (deviceRayQueryFeaturesKHR[0].rayQuery != deviceRayQueryFeaturesKHR[1].rayQuery))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceRayQueryFeaturesKHR");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureRayTracingMaintenance1FeaturesKHR (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR       deviceRayTracingMaintenance1FeaturesKHR[count];
+       const bool                                                                                      isRayTracingMaintenance1FeaturesKHR = checkExtension(properties, "VK_KHR_ray_tracing_maintenance1");
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceRayTracingMaintenance1FeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR));
+               deviceRayTracingMaintenance1FeaturesKHR[ndx].sType = isRayTracingMaintenance1FeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceRayTracingMaintenance1FeaturesKHR[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceRayTracingMaintenance1FeaturesKHR[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isRayTracingMaintenance1FeaturesKHR)
+               log << TestLog::Message << deviceRayTracingMaintenance1FeaturesKHR[0] << TestLog::EndMessage;
+
+       if (isRayTracingMaintenance1FeaturesKHR &&
+               (deviceRayTracingMaintenance1FeaturesKHR[0].rayTracingMaintenance1 != deviceRayTracingMaintenance1FeaturesKHR[1].rayTracingMaintenance1 ||
+                deviceRayTracingMaintenance1FeaturesKHR[0].rayTracingPipelineTraceRaysIndirect2 != deviceRayTracingMaintenance1FeaturesKHR[1].rayTracingPipelineTraceRaysIndirect2))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureFragmentDensityMapFeaturesEXT (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceFragmentDensityMapFeaturesEXT   deviceFragmentDensityMapFeaturesEXT[count];
+       const bool                                                                              isFragmentDensityMapFeaturesEXT = checkExtension(properties, "VK_EXT_fragment_density_map");
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceFragmentDensityMapFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT));
+               deviceFragmentDensityMapFeaturesEXT[ndx].sType = isFragmentDensityMapFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceFragmentDensityMapFeaturesEXT[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceFragmentDensityMapFeaturesEXT[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isFragmentDensityMapFeaturesEXT)
+               log << TestLog::Message << deviceFragmentDensityMapFeaturesEXT[0] << TestLog::EndMessage;
+
+       if (isFragmentDensityMapFeaturesEXT &&
+               (deviceFragmentDensityMapFeaturesEXT[0].fragmentDensityMap != deviceFragmentDensityMapFeaturesEXT[1].fragmentDensityMap ||
+                deviceFragmentDensityMapFeaturesEXT[0].fragmentDensityMapDynamic != deviceFragmentDensityMapFeaturesEXT[1].fragmentDensityMapDynamic ||
+                deviceFragmentDensityMapFeaturesEXT[0].fragmentDensityMapNonSubsampledImages != deviceFragmentDensityMapFeaturesEXT[1].fragmentDensityMapNonSubsampledImages))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceFragmentDensityMapFeaturesEXT");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureFragmentDensityMap2FeaturesEXT (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceFragmentDensityMap2FeaturesEXT  deviceFragmentDensityMap2FeaturesEXT[count];
+       const bool                                                                              isFragmentDensityMap2FeaturesEXT = checkExtension(properties, "VK_EXT_fragment_density_map2");
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceFragmentDensityMap2FeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT));
+               deviceFragmentDensityMap2FeaturesEXT[ndx].sType = isFragmentDensityMap2FeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceFragmentDensityMap2FeaturesEXT[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceFragmentDensityMap2FeaturesEXT[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isFragmentDensityMap2FeaturesEXT)
+               log << TestLog::Message << deviceFragmentDensityMap2FeaturesEXT[0] << TestLog::EndMessage;
+
+       if (isFragmentDensityMap2FeaturesEXT &&
+               (deviceFragmentDensityMap2FeaturesEXT[0].fragmentDensityMapDeferred != deviceFragmentDensityMap2FeaturesEXT[1].fragmentDensityMapDeferred))
+       {
+               TCU_FAIL("Mismatch between VkPhysicalDeviceFragmentDensityMap2FeaturesEXT");
+       }
+       return tcu::TestStatus::pass("Querying succeeded");
+}
+
+tcu::TestStatus testPhysicalDeviceFeatureScalarBlockLayoutFeatures (Context& context)
+{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+
+       VkPhysicalDeviceScalarBlockLayoutFeatures       deviceScalarBlockLayoutFeatures[count];
+       const bool                                                                      isScalarBlockLayoutFeatures = context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
+
+       for (int ndx = 0; ndx < count; ++ndx)
+       {
+               deMemset(&deviceScalarBlockLayoutFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures));
+               deviceScalarBlockLayoutFeatures[ndx].sType = isScalarBlockLayoutFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceScalarBlockLayoutFeatures[ndx].pNext = DE_NULL;
+
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceScalarBlockLayoutFeatures[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isScalarBlockLayoutFeatures)
+               log << TestLog::Message << deviceScalarBlockLayoutFeatures[0] << TestLog::EndMessage;
+
+       if (isScalarBlockLayoutFeatures &&
+               (deviceScalarBlockLayoutFeatures[0].scalarBlockLayout != deviceScalarBlockLayoutFeatures[1].scalarBlockLayout))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceDescriptorIndexingFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceScalarBlockLayoutFeatures");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureDepthClipEnableFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureUniformBufferStandardLayoutFeatures (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -492,34 +1413,34 @@ tcu::TestStatus testPhysicalDeviceFeatureDepthClipEnableFeaturesEXT (Context& co
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceDepthClipEnableFeaturesEXT      deviceDepthClipEnableFeaturesEXT[count];
-       const bool                                                                      isDepthClipEnableFeaturesEXT = checkExtension(properties, "VK_EXT_depth_clip_enable");
+       VkPhysicalDeviceUniformBufferStandardLayoutFeatures     deviceUniformBufferStandardLayoutFeatures[count];
+       const bool                                                                                      isUniformBufferStandardLayoutFeatures = context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceDepthClipEnableFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT));
-               deviceDepthClipEnableFeaturesEXT[ndx].sType = isDepthClipEnableFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceDepthClipEnableFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&deviceUniformBufferStandardLayoutFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures));
+               deviceUniformBufferStandardLayoutFeatures[ndx].sType = isUniformBufferStandardLayoutFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceUniformBufferStandardLayoutFeatures[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceDepthClipEnableFeaturesEXT[ndx];
+               extFeatures.pNext = &deviceUniformBufferStandardLayoutFeatures[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isDepthClipEnableFeaturesEXT)
-               log << TestLog::Message << deviceDepthClipEnableFeaturesEXT[0] << TestLog::EndMessage;
+       if (isUniformBufferStandardLayoutFeatures)
+               log << TestLog::Message << deviceUniformBufferStandardLayoutFeatures[0] << TestLog::EndMessage;
 
-       if (isDepthClipEnableFeaturesEXT &&
-               (deviceDepthClipEnableFeaturesEXT[0].depthClipEnable != deviceDepthClipEnableFeaturesEXT[1].depthClipEnable))
+       if (isUniformBufferStandardLayoutFeatures &&
+               (deviceUniformBufferStandardLayoutFeatures[0].uniformBufferStandardLayout != deviceUniformBufferStandardLayoutFeatures[1].uniformBufferStandardLayout))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceDepthClipEnableFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceUniformBufferStandardLayoutFeatures");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureDynamicRenderingFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureDepthClipEnableFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -529,34 +1450,34 @@ tcu::TestStatus testPhysicalDeviceFeatureDynamicRenderingFeatures (Context& cont
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceDynamicRenderingFeatures        deviceDynamicRenderingFeatures[count];
-       const bool                                                                      isDynamicRenderingFeatures = checkExtension(properties, "VK_KHR_dynamic_rendering") || context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
+       VkPhysicalDeviceDepthClipEnableFeaturesEXT      deviceDepthClipEnableFeaturesEXT[count];
+       const bool                                                                      isDepthClipEnableFeaturesEXT = checkExtension(properties, "VK_EXT_depth_clip_enable");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceDynamicRenderingFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceDynamicRenderingFeatures));
-               deviceDynamicRenderingFeatures[ndx].sType = isDynamicRenderingFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceDynamicRenderingFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceDepthClipEnableFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT));
+               deviceDepthClipEnableFeaturesEXT[ndx].sType = isDepthClipEnableFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceDepthClipEnableFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceDynamicRenderingFeatures[ndx];
+               extFeatures.pNext = &deviceDepthClipEnableFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isDynamicRenderingFeatures)
-               log << TestLog::Message << deviceDynamicRenderingFeatures[0] << TestLog::EndMessage;
+       if (isDepthClipEnableFeaturesEXT)
+               log << TestLog::Message << deviceDepthClipEnableFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isDynamicRenderingFeatures &&
-               (deviceDynamicRenderingFeatures[0].dynamicRendering != deviceDynamicRenderingFeatures[1].dynamicRendering))
+       if (isDepthClipEnableFeaturesEXT &&
+               (deviceDepthClipEnableFeaturesEXT[0].depthClipEnable != deviceDepthClipEnableFeaturesEXT[1].depthClipEnable))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceDynamicRenderingFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceDepthClipEnableFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureExtendedDynamicStateFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureMemoryPriorityFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -566,34 +1487,34 @@ tcu::TestStatus testPhysicalDeviceFeatureExtendedDynamicStateFeaturesEXT (Contex
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceExtendedDynamicStateFeaturesEXT deviceExtendedDynamicStateFeaturesEXT[count];
-       const bool                                                                              isExtendedDynamicStateFeaturesEXT = checkExtension(properties, "VK_EXT_extended_dynamic_state") || context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
+       VkPhysicalDeviceMemoryPriorityFeaturesEXT       deviceMemoryPriorityFeaturesEXT[count];
+       const bool                                                                      isMemoryPriorityFeaturesEXT = checkExtension(properties, "VK_EXT_memory_priority");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceExtendedDynamicStateFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT));
-               deviceExtendedDynamicStateFeaturesEXT[ndx].sType = isExtendedDynamicStateFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceExtendedDynamicStateFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&deviceMemoryPriorityFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceMemoryPriorityFeaturesEXT));
+               deviceMemoryPriorityFeaturesEXT[ndx].sType = isMemoryPriorityFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceMemoryPriorityFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceExtendedDynamicStateFeaturesEXT[ndx];
+               extFeatures.pNext = &deviceMemoryPriorityFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isExtendedDynamicStateFeaturesEXT)
-               log << TestLog::Message << deviceExtendedDynamicStateFeaturesEXT[0] << TestLog::EndMessage;
+       if (isMemoryPriorityFeaturesEXT)
+               log << TestLog::Message << deviceMemoryPriorityFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isExtendedDynamicStateFeaturesEXT &&
-               (deviceExtendedDynamicStateFeaturesEXT[0].extendedDynamicState != deviceExtendedDynamicStateFeaturesEXT[1].extendedDynamicState))
+       if (isMemoryPriorityFeaturesEXT &&
+               (deviceMemoryPriorityFeaturesEXT[0].memoryPriority != deviceMemoryPriorityFeaturesEXT[1].memoryPriority))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceExtendedDynamicStateFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceMemoryPriorityFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureExtendedDynamicState2FeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeaturePageableDeviceLocalMemoryFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -603,36 +1524,34 @@ tcu::TestStatus testPhysicalDeviceFeatureExtendedDynamicState2FeaturesEXT (Conte
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceExtendedDynamicState2FeaturesEXT        deviceExtendedDynamicState2FeaturesEXT[count];
-       const bool                                                                                      isExtendedDynamicState2FeaturesEXT = checkExtension(properties, "VK_EXT_extended_dynamic_state2");
+       VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT    devicePageableDeviceLocalMemoryFeaturesEXT[count];
+       const bool                                                                                              isPageableDeviceLocalMemoryFeaturesEXT = checkExtension(properties, "VK_EXT_pageable_device_local_memory");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceExtendedDynamicState2FeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT));
-               deviceExtendedDynamicState2FeaturesEXT[ndx].sType = isExtendedDynamicState2FeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceExtendedDynamicState2FeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&devicePageableDeviceLocalMemoryFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT));
+               devicePageableDeviceLocalMemoryFeaturesEXT[ndx].sType = isPageableDeviceLocalMemoryFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               devicePageableDeviceLocalMemoryFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceExtendedDynamicState2FeaturesEXT[ndx];
+               extFeatures.pNext = &devicePageableDeviceLocalMemoryFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isExtendedDynamicState2FeaturesEXT)
-               log << TestLog::Message << deviceExtendedDynamicState2FeaturesEXT[0] << TestLog::EndMessage;
+       if (isPageableDeviceLocalMemoryFeaturesEXT)
+               log << TestLog::Message << devicePageableDeviceLocalMemoryFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isExtendedDynamicState2FeaturesEXT &&
-               (deviceExtendedDynamicState2FeaturesEXT[0].extendedDynamicState2 != deviceExtendedDynamicState2FeaturesEXT[1].extendedDynamicState2 ||
-                deviceExtendedDynamicState2FeaturesEXT[0].extendedDynamicState2LogicOp != deviceExtendedDynamicState2FeaturesEXT[1].extendedDynamicState2LogicOp ||
-                deviceExtendedDynamicState2FeaturesEXT[0].extendedDynamicState2PatchControlPoints != deviceExtendedDynamicState2FeaturesEXT[1].extendedDynamicState2PatchControlPoints))
+       if (isPageableDeviceLocalMemoryFeaturesEXT &&
+               (devicePageableDeviceLocalMemoryFeaturesEXT[0].pageableDeviceLocalMemory != devicePageableDeviceLocalMemoryFeaturesEXT[1].pageableDeviceLocalMemory))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceExtendedDynamicState2FeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureFragmentDensityMapFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureBufferDeviceAddressFeatures (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -642,36 +1561,36 @@ tcu::TestStatus testPhysicalDeviceFeatureFragmentDensityMapFeaturesEXT (Context&
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceFragmentDensityMapFeaturesEXT   deviceFragmentDensityMapFeaturesEXT[count];
-       const bool                                                                              isFragmentDensityMapFeaturesEXT = checkExtension(properties, "VK_EXT_fragment_density_map");
+       VkPhysicalDeviceBufferDeviceAddressFeatures     deviceBufferDeviceAddressFeatures[count];
+       const bool                                                                      isBufferDeviceAddressFeatures = context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceFragmentDensityMapFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT));
-               deviceFragmentDensityMapFeaturesEXT[ndx].sType = isFragmentDensityMapFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceFragmentDensityMapFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&deviceBufferDeviceAddressFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures));
+               deviceBufferDeviceAddressFeatures[ndx].sType = isBufferDeviceAddressFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceBufferDeviceAddressFeatures[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceFragmentDensityMapFeaturesEXT[ndx];
+               extFeatures.pNext = &deviceBufferDeviceAddressFeatures[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isFragmentDensityMapFeaturesEXT)
-               log << TestLog::Message << deviceFragmentDensityMapFeaturesEXT[0] << TestLog::EndMessage;
+       if (isBufferDeviceAddressFeatures)
+               log << TestLog::Message << deviceBufferDeviceAddressFeatures[0] << TestLog::EndMessage;
 
-       if (isFragmentDensityMapFeaturesEXT &&
-               (deviceFragmentDensityMapFeaturesEXT[0].fragmentDensityMap != deviceFragmentDensityMapFeaturesEXT[1].fragmentDensityMap ||
-                deviceFragmentDensityMapFeaturesEXT[0].fragmentDensityMapDynamic != deviceFragmentDensityMapFeaturesEXT[1].fragmentDensityMapDynamic ||
-                deviceFragmentDensityMapFeaturesEXT[0].fragmentDensityMapNonSubsampledImages != deviceFragmentDensityMapFeaturesEXT[1].fragmentDensityMapNonSubsampledImages))
+       if (isBufferDeviceAddressFeatures &&
+               (deviceBufferDeviceAddressFeatures[0].bufferDeviceAddress != deviceBufferDeviceAddressFeatures[1].bufferDeviceAddress ||
+                deviceBufferDeviceAddressFeatures[0].bufferDeviceAddressCaptureReplay != deviceBufferDeviceAddressFeatures[1].bufferDeviceAddressCaptureReplay ||
+                deviceBufferDeviceAddressFeatures[0].bufferDeviceAddressMultiDevice != deviceBufferDeviceAddressFeatures[1].bufferDeviceAddressMultiDevice))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceFragmentDensityMapFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceBufferDeviceAddressFeatures");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureFragmentDensityMap2FeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureBufferDeviceAddressFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -681,34 +1600,36 @@ tcu::TestStatus testPhysicalDeviceFeatureFragmentDensityMap2FeaturesEXT (Context
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceFragmentDensityMap2FeaturesEXT  deviceFragmentDensityMap2FeaturesEXT[count];
-       const bool                                                                              isFragmentDensityMap2FeaturesEXT = checkExtension(properties, "VK_EXT_fragment_density_map2");
+       VkPhysicalDeviceBufferDeviceAddressFeaturesEXT  deviceBufferDeviceAddressFeaturesEXT[count];
+       const bool                                                                              isBufferDeviceAddressFeaturesEXT = checkExtension(properties, "VK_EXT_buffer_device_address");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceFragmentDensityMap2FeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT));
-               deviceFragmentDensityMap2FeaturesEXT[ndx].sType = isFragmentDensityMap2FeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceFragmentDensityMap2FeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&deviceBufferDeviceAddressFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceBufferDeviceAddressFeaturesEXT));
+               deviceBufferDeviceAddressFeaturesEXT[ndx].sType = isBufferDeviceAddressFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceBufferDeviceAddressFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceFragmentDensityMap2FeaturesEXT[ndx];
+               extFeatures.pNext = &deviceBufferDeviceAddressFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isFragmentDensityMap2FeaturesEXT)
-               log << TestLog::Message << deviceFragmentDensityMap2FeaturesEXT[0] << TestLog::EndMessage;
+       if (isBufferDeviceAddressFeaturesEXT)
+               log << TestLog::Message << deviceBufferDeviceAddressFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isFragmentDensityMap2FeaturesEXT &&
-               (deviceFragmentDensityMap2FeaturesEXT[0].fragmentDensityMapDeferred != deviceFragmentDensityMap2FeaturesEXT[1].fragmentDensityMapDeferred))
+       if (isBufferDeviceAddressFeaturesEXT &&
+               (deviceBufferDeviceAddressFeaturesEXT[0].bufferDeviceAddress != deviceBufferDeviceAddressFeaturesEXT[1].bufferDeviceAddress ||
+                deviceBufferDeviceAddressFeaturesEXT[0].bufferDeviceAddressCaptureReplay != deviceBufferDeviceAddressFeaturesEXT[1].bufferDeviceAddressCaptureReplay ||
+                deviceBufferDeviceAddressFeaturesEXT[0].bufferDeviceAddressMultiDevice != deviceBufferDeviceAddressFeaturesEXT[1].bufferDeviceAddressMultiDevice))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceFragmentDensityMap2FeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceBufferDeviceAddressFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureFragmentShadingRateFeaturesKHR (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureImagelessFramebufferFeatures (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -718,36 +1639,34 @@ tcu::TestStatus testPhysicalDeviceFeatureFragmentShadingRateFeaturesKHR (Context
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceFragmentShadingRateFeaturesKHR  deviceFragmentShadingRateFeaturesKHR[count];
-       const bool                                                                              isFragmentShadingRateFeaturesKHR = checkExtension(properties, "VK_KHR_fragment_shading_rate");
+       VkPhysicalDeviceImagelessFramebufferFeatures    deviceImagelessFramebufferFeatures[count];
+       const bool                                                                              isImagelessFramebufferFeatures = context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceFragmentShadingRateFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceFragmentShadingRateFeaturesKHR));
-               deviceFragmentShadingRateFeaturesKHR[ndx].sType = isFragmentShadingRateFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceFragmentShadingRateFeaturesKHR[ndx].pNext = DE_NULL;
+               deMemset(&deviceImagelessFramebufferFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceImagelessFramebufferFeatures));
+               deviceImagelessFramebufferFeatures[ndx].sType = isImagelessFramebufferFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceImagelessFramebufferFeatures[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceFragmentShadingRateFeaturesKHR[ndx];
+               extFeatures.pNext = &deviceImagelessFramebufferFeatures[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isFragmentShadingRateFeaturesKHR)
-               log << TestLog::Message << deviceFragmentShadingRateFeaturesKHR[0] << TestLog::EndMessage;
+       if (isImagelessFramebufferFeatures)
+               log << TestLog::Message << deviceImagelessFramebufferFeatures[0] << TestLog::EndMessage;
 
-       if (isFragmentShadingRateFeaturesKHR &&
-               (deviceFragmentShadingRateFeaturesKHR[0].pipelineFragmentShadingRate != deviceFragmentShadingRateFeaturesKHR[1].pipelineFragmentShadingRate ||
-                deviceFragmentShadingRateFeaturesKHR[0].primitiveFragmentShadingRate != deviceFragmentShadingRateFeaturesKHR[1].primitiveFragmentShadingRate ||
-                deviceFragmentShadingRateFeaturesKHR[0].attachmentFragmentShadingRate != deviceFragmentShadingRateFeaturesKHR[1].attachmentFragmentShadingRate))
+       if (isImagelessFramebufferFeatures &&
+               (deviceImagelessFramebufferFeatures[0].imagelessFramebuffer != deviceImagelessFramebufferFeatures[1].imagelessFramebuffer))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceFragmentShadingRateFeaturesKHR");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceImagelessFramebufferFeatures");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureGlobalPriorityQueryFeaturesKHR (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureTextureCompressionASTCHDRFeatures (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -757,34 +1676,34 @@ tcu::TestStatus testPhysicalDeviceFeatureGlobalPriorityQueryFeaturesKHR (Context
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR  deviceGlobalPriorityQueryFeaturesKHR[count];
-       const bool                                                                              isGlobalPriorityQueryFeaturesKHR = checkExtension(properties, "VK_KHR_global_priority");
+       VkPhysicalDeviceTextureCompressionASTCHDRFeatures       deviceTextureCompressionASTCHDRFeatures[count];
+       const bool                                                                                      isTextureCompressionASTCHDRFeatures = context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceGlobalPriorityQueryFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR));
-               deviceGlobalPriorityQueryFeaturesKHR[ndx].sType = isGlobalPriorityQueryFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceGlobalPriorityQueryFeaturesKHR[ndx].pNext = DE_NULL;
+               deMemset(&deviceTextureCompressionASTCHDRFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeatures));
+               deviceTextureCompressionASTCHDRFeatures[ndx].sType = isTextureCompressionASTCHDRFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceTextureCompressionASTCHDRFeatures[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceGlobalPriorityQueryFeaturesKHR[ndx];
+               extFeatures.pNext = &deviceTextureCompressionASTCHDRFeatures[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isGlobalPriorityQueryFeaturesKHR)
-               log << TestLog::Message << deviceGlobalPriorityQueryFeaturesKHR[0] << TestLog::EndMessage;
+       if (isTextureCompressionASTCHDRFeatures)
+               log << TestLog::Message << deviceTextureCompressionASTCHDRFeatures[0] << TestLog::EndMessage;
 
-       if (isGlobalPriorityQueryFeaturesKHR &&
-               (deviceGlobalPriorityQueryFeaturesKHR[0].globalPriorityQuery != deviceGlobalPriorityQueryFeaturesKHR[1].globalPriorityQuery))
+       if (isTextureCompressionASTCHDRFeatures &&
+               (deviceTextureCompressionASTCHDRFeatures[0].textureCompressionASTC_HDR != deviceTextureCompressionASTCHDRFeatures[1].textureCompressionASTC_HDR))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceTextureCompressionASTCHDRFeatures");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureInlineUniformBlockFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureYcbcrImageArraysFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -794,35 +1713,34 @@ tcu::TestStatus testPhysicalDeviceFeatureInlineUniformBlockFeatures (Context& co
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceInlineUniformBlockFeatures      deviceInlineUniformBlockFeatures[count];
-       const bool                                                                      isInlineUniformBlockFeatures = checkExtension(properties, "VK_EXT_inline_uniform_block") || context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
+       VkPhysicalDeviceYcbcrImageArraysFeaturesEXT     deviceYcbcrImageArraysFeaturesEXT[count];
+       const bool                                                                      isYcbcrImageArraysFeaturesEXT = checkExtension(properties, "VK_EXT_ycbcr_image_arrays");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceInlineUniformBlockFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceInlineUniformBlockFeatures));
-               deviceInlineUniformBlockFeatures[ndx].sType = isInlineUniformBlockFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceInlineUniformBlockFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceYcbcrImageArraysFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT));
+               deviceYcbcrImageArraysFeaturesEXT[ndx].sType = isYcbcrImageArraysFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceYcbcrImageArraysFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceInlineUniformBlockFeatures[ndx];
+               extFeatures.pNext = &deviceYcbcrImageArraysFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isInlineUniformBlockFeatures)
-               log << TestLog::Message << deviceInlineUniformBlockFeatures[0] << TestLog::EndMessage;
+       if (isYcbcrImageArraysFeaturesEXT)
+               log << TestLog::Message << deviceYcbcrImageArraysFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isInlineUniformBlockFeatures &&
-               (deviceInlineUniformBlockFeatures[0].inlineUniformBlock != deviceInlineUniformBlockFeatures[1].inlineUniformBlock ||
-                deviceInlineUniformBlockFeatures[0].descriptorBindingInlineUniformBlockUpdateAfterBind != deviceInlineUniformBlockFeatures[1].descriptorBindingInlineUniformBlockUpdateAfterBind))
+       if (isYcbcrImageArraysFeaturesEXT &&
+               (deviceYcbcrImageArraysFeaturesEXT[0].ycbcrImageArrays != deviceYcbcrImageArraysFeaturesEXT[1].ycbcrImageArrays))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceInlineUniformBlockFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceYcbcrImageArraysFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureIndexTypeUint8FeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeaturePerformanceQueryFeaturesKHR (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -832,34 +1750,35 @@ tcu::TestStatus testPhysicalDeviceFeatureIndexTypeUint8FeaturesEXT (Context& con
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceIndexTypeUint8FeaturesEXT       deviceIndexTypeUint8FeaturesEXT[count];
-       const bool                                                                      isIndexTypeUint8FeaturesEXT = checkExtension(properties, "VK_EXT_index_type_uint8");
+       VkPhysicalDevicePerformanceQueryFeaturesKHR     devicePerformanceQueryFeaturesKHR[count];
+       const bool                                                                      isPerformanceQueryFeaturesKHR = checkExtension(properties, "VK_KHR_performance_query");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceIndexTypeUint8FeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceIndexTypeUint8FeaturesEXT));
-               deviceIndexTypeUint8FeaturesEXT[ndx].sType = isIndexTypeUint8FeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceIndexTypeUint8FeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&devicePerformanceQueryFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDevicePerformanceQueryFeaturesKHR));
+               devicePerformanceQueryFeaturesKHR[ndx].sType = isPerformanceQueryFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
+               devicePerformanceQueryFeaturesKHR[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceIndexTypeUint8FeaturesEXT[ndx];
+               extFeatures.pNext = &devicePerformanceQueryFeaturesKHR[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isIndexTypeUint8FeaturesEXT)
-               log << TestLog::Message << deviceIndexTypeUint8FeaturesEXT[0] << TestLog::EndMessage;
+       if (isPerformanceQueryFeaturesKHR)
+               log << TestLog::Message << devicePerformanceQueryFeaturesKHR[0] << TestLog::EndMessage;
 
-       if (isIndexTypeUint8FeaturesEXT &&
-               (deviceIndexTypeUint8FeaturesEXT[0].indexTypeUint8 != deviceIndexTypeUint8FeaturesEXT[1].indexTypeUint8))
+       if (isPerformanceQueryFeaturesKHR &&
+               (devicePerformanceQueryFeaturesKHR[0].performanceCounterQueryPools != devicePerformanceQueryFeaturesKHR[1].performanceCounterQueryPools ||
+                devicePerformanceQueryFeaturesKHR[0].performanceCounterMultipleQueryPools != devicePerformanceQueryFeaturesKHR[1].performanceCounterMultipleQueryPools))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceIndexTypeUint8FeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDevicePerformanceQueryFeaturesKHR");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureImagelessFramebufferFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureShaderClockFeaturesKHR (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -869,34 +1788,35 @@ tcu::TestStatus testPhysicalDeviceFeatureImagelessFramebufferFeatures (Context&
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceImagelessFramebufferFeatures    deviceImagelessFramebufferFeatures[count];
-       const bool                                                                              isImagelessFramebufferFeatures = checkExtension(properties, "VK_KHR_imageless_framebuffer") || context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
+       VkPhysicalDeviceShaderClockFeaturesKHR  deviceShaderClockFeaturesKHR[count];
+       const bool                                                              isShaderClockFeaturesKHR = checkExtension(properties, "VK_KHR_shader_clock");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceImagelessFramebufferFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceImagelessFramebufferFeatures));
-               deviceImagelessFramebufferFeatures[ndx].sType = isImagelessFramebufferFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceImagelessFramebufferFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceShaderClockFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderClockFeaturesKHR));
+               deviceShaderClockFeaturesKHR[ndx].sType = isShaderClockFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceShaderClockFeaturesKHR[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceImagelessFramebufferFeatures[ndx];
+               extFeatures.pNext = &deviceShaderClockFeaturesKHR[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isImagelessFramebufferFeatures)
-               log << TestLog::Message << deviceImagelessFramebufferFeatures[0] << TestLog::EndMessage;
+       if (isShaderClockFeaturesKHR)
+               log << TestLog::Message << deviceShaderClockFeaturesKHR[0] << TestLog::EndMessage;
 
-       if (isImagelessFramebufferFeatures &&
-               (deviceImagelessFramebufferFeatures[0].imagelessFramebuffer != deviceImagelessFramebufferFeatures[1].imagelessFramebuffer))
+       if (isShaderClockFeaturesKHR &&
+               (deviceShaderClockFeaturesKHR[0].shaderSubgroupClock != deviceShaderClockFeaturesKHR[1].shaderSubgroupClock ||
+                deviceShaderClockFeaturesKHR[0].shaderDeviceClock != deviceShaderClockFeaturesKHR[1].shaderDeviceClock))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceImagelessFramebufferFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderClockFeaturesKHR");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureImageRobustnessFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureIndexTypeUint8FeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -906,34 +1826,34 @@ tcu::TestStatus testPhysicalDeviceFeatureImageRobustnessFeatures (Context& conte
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceImageRobustnessFeatures deviceImageRobustnessFeatures[count];
-       const bool                                                              isImageRobustnessFeatures = checkExtension(properties, "VK_EXT_image_robustness") || context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
+       VkPhysicalDeviceIndexTypeUint8FeaturesEXT       deviceIndexTypeUint8FeaturesEXT[count];
+       const bool                                                                      isIndexTypeUint8FeaturesEXT = checkExtension(properties, "VK_EXT_index_type_uint8");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceImageRobustnessFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceImageRobustnessFeatures));
-               deviceImageRobustnessFeatures[ndx].sType = isImageRobustnessFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceImageRobustnessFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceIndexTypeUint8FeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceIndexTypeUint8FeaturesEXT));
+               deviceIndexTypeUint8FeaturesEXT[ndx].sType = isIndexTypeUint8FeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceIndexTypeUint8FeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceImageRobustnessFeatures[ndx];
+               extFeatures.pNext = &deviceIndexTypeUint8FeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isImageRobustnessFeatures)
-               log << TestLog::Message << deviceImageRobustnessFeatures[0] << TestLog::EndMessage;
+       if (isIndexTypeUint8FeaturesEXT)
+               log << TestLog::Message << deviceIndexTypeUint8FeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isImageRobustnessFeatures &&
-               (deviceImageRobustnessFeatures[0].robustImageAccess != deviceImageRobustnessFeatures[1].robustImageAccess))
+       if (isIndexTypeUint8FeaturesEXT &&
+               (deviceIndexTypeUint8FeaturesEXT[0].indexTypeUint8 != deviceIndexTypeUint8FeaturesEXT[1].indexTypeUint8))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceImageRobustnessFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceIndexTypeUint8FeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureHostQueryResetFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureFragmentShaderInterlockFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -943,34 +1863,36 @@ tcu::TestStatus testPhysicalDeviceFeatureHostQueryResetFeatures (Context& contex
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceHostQueryResetFeatures  deviceHostQueryResetFeatures[count];
-       const bool                                                              isHostQueryResetFeatures = checkExtension(properties, "VK_EXT_host_query_reset") || context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
+       VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT      deviceFragmentShaderInterlockFeaturesEXT[count];
+       const bool                                                                                      isFragmentShaderInterlockFeaturesEXT = checkExtension(properties, "VK_EXT_fragment_shader_interlock");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceHostQueryResetFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceHostQueryResetFeatures));
-               deviceHostQueryResetFeatures[ndx].sType = isHostQueryResetFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceHostQueryResetFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceFragmentShaderInterlockFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT));
+               deviceFragmentShaderInterlockFeaturesEXT[ndx].sType = isFragmentShaderInterlockFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceFragmentShaderInterlockFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceHostQueryResetFeatures[ndx];
+               extFeatures.pNext = &deviceFragmentShaderInterlockFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isHostQueryResetFeatures)
-               log << TestLog::Message << deviceHostQueryResetFeatures[0] << TestLog::EndMessage;
+       if (isFragmentShaderInterlockFeaturesEXT)
+               log << TestLog::Message << deviceFragmentShaderInterlockFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isHostQueryResetFeatures &&
-               (deviceHostQueryResetFeatures[0].hostQueryReset != deviceHostQueryResetFeatures[1].hostQueryReset))
+       if (isFragmentShaderInterlockFeaturesEXT &&
+               (deviceFragmentShaderInterlockFeaturesEXT[0].fragmentShaderSampleInterlock != deviceFragmentShaderInterlockFeaturesEXT[1].fragmentShaderSampleInterlock ||
+                deviceFragmentShaderInterlockFeaturesEXT[0].fragmentShaderPixelInterlock != deviceFragmentShaderInterlockFeaturesEXT[1].fragmentShaderPixelInterlock ||
+                deviceFragmentShaderInterlockFeaturesEXT[0].fragmentShaderShadingRateInterlock != deviceFragmentShaderInterlockFeaturesEXT[1].fragmentShaderShadingRateInterlock))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceHostQueryResetFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureLineRasterizationFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureSeparateDepthStencilLayoutsFeatures (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -980,39 +1902,34 @@ tcu::TestStatus testPhysicalDeviceFeatureLineRasterizationFeaturesEXT (Context&
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceLineRasterizationFeaturesEXT    deviceLineRasterizationFeaturesEXT[count];
-       const bool                                                                              isLineRasterizationFeaturesEXT = checkExtension(properties, "VK_EXT_line_rasterization");
+       VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures     deviceSeparateDepthStencilLayoutsFeatures[count];
+       const bool                                                                                      isSeparateDepthStencilLayoutsFeatures = context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceLineRasterizationFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceLineRasterizationFeaturesEXT));
-               deviceLineRasterizationFeaturesEXT[ndx].sType = isLineRasterizationFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceLineRasterizationFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&deviceSeparateDepthStencilLayoutsFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures));
+               deviceSeparateDepthStencilLayoutsFeatures[ndx].sType = isSeparateDepthStencilLayoutsFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceSeparateDepthStencilLayoutsFeatures[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceLineRasterizationFeaturesEXT[ndx];
+               extFeatures.pNext = &deviceSeparateDepthStencilLayoutsFeatures[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isLineRasterizationFeaturesEXT)
-               log << TestLog::Message << deviceLineRasterizationFeaturesEXT[0] << TestLog::EndMessage;
+       if (isSeparateDepthStencilLayoutsFeatures)
+               log << TestLog::Message << deviceSeparateDepthStencilLayoutsFeatures[0] << TestLog::EndMessage;
 
-       if (isLineRasterizationFeaturesEXT &&
-               (deviceLineRasterizationFeaturesEXT[0].rectangularLines != deviceLineRasterizationFeaturesEXT[1].rectangularLines ||
-                deviceLineRasterizationFeaturesEXT[0].bresenhamLines != deviceLineRasterizationFeaturesEXT[1].bresenhamLines ||
-                deviceLineRasterizationFeaturesEXT[0].smoothLines != deviceLineRasterizationFeaturesEXT[1].smoothLines ||
-                deviceLineRasterizationFeaturesEXT[0].stippledRectangularLines != deviceLineRasterizationFeaturesEXT[1].stippledRectangularLines ||
-                deviceLineRasterizationFeaturesEXT[0].stippledBresenhamLines != deviceLineRasterizationFeaturesEXT[1].stippledBresenhamLines ||
-                deviceLineRasterizationFeaturesEXT[0].stippledSmoothLines != deviceLineRasterizationFeaturesEXT[1].stippledSmoothLines))
+       if (isSeparateDepthStencilLayoutsFeatures &&
+               (deviceSeparateDepthStencilLayoutsFeatures[0].separateDepthStencilLayouts != deviceSeparateDepthStencilLayoutsFeatures[1].separateDepthStencilLayouts))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceLineRasterizationFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureMaintenance4Features (Context& context)
+tcu::TestStatus testPhysicalDeviceFeaturePrimitiveTopologyListRestartFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1022,34 +1939,35 @@ tcu::TestStatus testPhysicalDeviceFeatureMaintenance4Features (Context& context)
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceMaintenance4Features    deviceMaintenance4Features[count];
-       const bool                                                              isMaintenance4Features = checkExtension(properties, "VK_KHR_maintenance4") || context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
+       VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT devicePrimitiveTopologyListRestartFeaturesEXT[count];
+       const bool                                                                                              isPrimitiveTopologyListRestartFeaturesEXT = checkExtension(properties, "VK_EXT_primitive_topology_list_restart");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceMaintenance4Features[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceMaintenance4Features));
-               deviceMaintenance4Features[ndx].sType = isMaintenance4Features ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceMaintenance4Features[ndx].pNext = DE_NULL;
+               deMemset(&devicePrimitiveTopologyListRestartFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT));
+               devicePrimitiveTopologyListRestartFeaturesEXT[ndx].sType = isPrimitiveTopologyListRestartFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               devicePrimitiveTopologyListRestartFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceMaintenance4Features[ndx];
+               extFeatures.pNext = &devicePrimitiveTopologyListRestartFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isMaintenance4Features)
-               log << TestLog::Message << deviceMaintenance4Features[0] << TestLog::EndMessage;
+       if (isPrimitiveTopologyListRestartFeaturesEXT)
+               log << TestLog::Message << devicePrimitiveTopologyListRestartFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isMaintenance4Features &&
-               (deviceMaintenance4Features[0].maintenance4 != deviceMaintenance4Features[1].maintenance4))
+       if (isPrimitiveTopologyListRestartFeaturesEXT &&
+               (devicePrimitiveTopologyListRestartFeaturesEXT[0].primitiveTopologyListRestart != devicePrimitiveTopologyListRestartFeaturesEXT[1].primitiveTopologyListRestart ||
+                devicePrimitiveTopologyListRestartFeaturesEXT[0].primitiveTopologyPatchListRestart != devicePrimitiveTopologyListRestartFeaturesEXT[1].primitiveTopologyPatchListRestart))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceMaintenance4Features");
+               TCU_FAIL("Mismatch between VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureMultiviewFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeaturePipelineExecutablePropertiesFeaturesKHR (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1059,36 +1977,34 @@ tcu::TestStatus testPhysicalDeviceFeatureMultiviewFeatures (Context& context)
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceMultiviewFeatures       deviceMultiviewFeatures[count];
-       const bool                                                      isMultiviewFeatures = checkExtension(properties, "VK_KHR_multiview") || context.contextSupports(vk::ApiVersion(0, 1, 1, 0));
+       VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR devicePipelineExecutablePropertiesFeaturesKHR[count];
+       const bool                                                                                              isPipelineExecutablePropertiesFeaturesKHR = checkExtension(properties, "VK_KHR_pipeline_executable_properties");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceMultiviewFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceMultiviewFeatures));
-               deviceMultiviewFeatures[ndx].sType = isMultiviewFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceMultiviewFeatures[ndx].pNext = DE_NULL;
+               deMemset(&devicePipelineExecutablePropertiesFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR));
+               devicePipelineExecutablePropertiesFeaturesKHR[ndx].sType = isPipelineExecutablePropertiesFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
+               devicePipelineExecutablePropertiesFeaturesKHR[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceMultiviewFeatures[ndx];
+               extFeatures.pNext = &devicePipelineExecutablePropertiesFeaturesKHR[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isMultiviewFeatures)
-               log << TestLog::Message << deviceMultiviewFeatures[0] << TestLog::EndMessage;
+       if (isPipelineExecutablePropertiesFeaturesKHR)
+               log << TestLog::Message << devicePipelineExecutablePropertiesFeaturesKHR[0] << TestLog::EndMessage;
 
-       if (isMultiviewFeatures &&
-               (deviceMultiviewFeatures[0].multiview != deviceMultiviewFeatures[1].multiview ||
-                deviceMultiviewFeatures[0].multiviewGeometryShader != deviceMultiviewFeatures[1].multiviewGeometryShader ||
-                deviceMultiviewFeatures[0].multiviewTessellationShader != deviceMultiviewFeatures[1].multiviewTessellationShader))
+       if (isPipelineExecutablePropertiesFeaturesKHR &&
+               (devicePipelineExecutablePropertiesFeaturesKHR[0].pipelineExecutableInfo != devicePipelineExecutablePropertiesFeaturesKHR[1].pipelineExecutableInfo))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceMultiviewFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureMultiDrawFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureShaderDemoteToHelperInvocationFeatures (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1098,34 +2014,34 @@ tcu::TestStatus testPhysicalDeviceFeatureMultiDrawFeaturesEXT (Context& context)
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceMultiDrawFeaturesEXT    deviceMultiDrawFeaturesEXT[count];
-       const bool                                                              isMultiDrawFeaturesEXT = checkExtension(properties, "VK_EXT_multi_draw");
+       VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures  deviceShaderDemoteToHelperInvocationFeatures[count];
+       const bool                                                                                              isShaderDemoteToHelperInvocationFeatures = context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceMultiDrawFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceMultiDrawFeaturesEXT));
-               deviceMultiDrawFeaturesEXT[ndx].sType = isMultiDrawFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceMultiDrawFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&deviceShaderDemoteToHelperInvocationFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures));
+               deviceShaderDemoteToHelperInvocationFeatures[ndx].sType = isShaderDemoteToHelperInvocationFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceShaderDemoteToHelperInvocationFeatures[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceMultiDrawFeaturesEXT[ndx];
+               extFeatures.pNext = &deviceShaderDemoteToHelperInvocationFeatures[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isMultiDrawFeaturesEXT)
-               log << TestLog::Message << deviceMultiDrawFeaturesEXT[0] << TestLog::EndMessage;
+       if (isShaderDemoteToHelperInvocationFeatures)
+               log << TestLog::Message << deviceShaderDemoteToHelperInvocationFeatures[0] << TestLog::EndMessage;
 
-       if (isMultiDrawFeaturesEXT &&
-               (deviceMultiDrawFeaturesEXT[0].multiDraw != deviceMultiDrawFeaturesEXT[1].multiDraw))
+       if (isShaderDemoteToHelperInvocationFeatures &&
+               (deviceShaderDemoteToHelperInvocationFeatures[0].shaderDemoteToHelperInvocation != deviceShaderDemoteToHelperInvocationFeatures[1].shaderDemoteToHelperInvocation))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceMultiDrawFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureMemoryPriorityFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureTexelBufferAlignmentFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1135,34 +2051,34 @@ tcu::TestStatus testPhysicalDeviceFeatureMemoryPriorityFeaturesEXT (Context& con
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceMemoryPriorityFeaturesEXT       deviceMemoryPriorityFeaturesEXT[count];
-       const bool                                                                      isMemoryPriorityFeaturesEXT = checkExtension(properties, "VK_EXT_memory_priority");
+       VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT deviceTexelBufferAlignmentFeaturesEXT[count];
+       const bool                                                                              isTexelBufferAlignmentFeaturesEXT = checkExtension(properties, "VK_EXT_texel_buffer_alignment") || context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceMemoryPriorityFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceMemoryPriorityFeaturesEXT));
-               deviceMemoryPriorityFeaturesEXT[ndx].sType = isMemoryPriorityFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceMemoryPriorityFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&deviceTexelBufferAlignmentFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT));
+               deviceTexelBufferAlignmentFeaturesEXT[ndx].sType = isTexelBufferAlignmentFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceTexelBufferAlignmentFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceMemoryPriorityFeaturesEXT[ndx];
+               extFeatures.pNext = &deviceTexelBufferAlignmentFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isMemoryPriorityFeaturesEXT)
-               log << TestLog::Message << deviceMemoryPriorityFeaturesEXT[0] << TestLog::EndMessage;
+       if (isTexelBufferAlignmentFeaturesEXT)
+               log << TestLog::Message << deviceTexelBufferAlignmentFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isMemoryPriorityFeaturesEXT &&
-               (deviceMemoryPriorityFeaturesEXT[0].memoryPriority != deviceMemoryPriorityFeaturesEXT[1].memoryPriority))
+       if (isTexelBufferAlignmentFeaturesEXT &&
+               (deviceTexelBufferAlignmentFeaturesEXT[0].texelBufferAlignment != deviceTexelBufferAlignmentFeaturesEXT[1].texelBufferAlignment))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceMemoryPriorityFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureDeviceMemoryReportFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureSubgroupSizeControlFeatures (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1172,34 +2088,35 @@ tcu::TestStatus testPhysicalDeviceFeatureDeviceMemoryReportFeaturesEXT (Context&
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceDeviceMemoryReportFeaturesEXT   deviceDeviceMemoryReportFeaturesEXT[count];
-       const bool                                                                              isDeviceMemoryReportFeaturesEXT = checkExtension(properties, "VK_EXT_device_memory_report");
+       VkPhysicalDeviceSubgroupSizeControlFeatures     deviceSubgroupSizeControlFeatures[count];
+       const bool                                                                      isSubgroupSizeControlFeatures = context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceDeviceMemoryReportFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceDeviceMemoryReportFeaturesEXT));
-               deviceDeviceMemoryReportFeaturesEXT[ndx].sType = isDeviceMemoryReportFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceDeviceMemoryReportFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&deviceSubgroupSizeControlFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceSubgroupSizeControlFeatures));
+               deviceSubgroupSizeControlFeatures[ndx].sType = isSubgroupSizeControlFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceSubgroupSizeControlFeatures[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceDeviceMemoryReportFeaturesEXT[ndx];
+               extFeatures.pNext = &deviceSubgroupSizeControlFeatures[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isDeviceMemoryReportFeaturesEXT)
-               log << TestLog::Message << deviceDeviceMemoryReportFeaturesEXT[0] << TestLog::EndMessage;
+       if (isSubgroupSizeControlFeatures)
+               log << TestLog::Message << deviceSubgroupSizeControlFeatures[0] << TestLog::EndMessage;
 
-       if (isDeviceMemoryReportFeaturesEXT &&
-               (deviceDeviceMemoryReportFeaturesEXT[0].deviceMemoryReport != deviceDeviceMemoryReportFeaturesEXT[1].deviceMemoryReport))
+       if (isSubgroupSizeControlFeatures &&
+               (deviceSubgroupSizeControlFeatures[0].subgroupSizeControl != deviceSubgroupSizeControlFeatures[1].subgroupSizeControl ||
+                deviceSubgroupSizeControlFeatures[0].computeFullSubgroups != deviceSubgroupSizeControlFeatures[1].computeFullSubgroups))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceDeviceMemoryReportFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceSubgroupSizeControlFeatures");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeaturePerformanceQueryFeaturesKHR (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureLineRasterizationFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1209,30 +2126,34 @@ tcu::TestStatus testPhysicalDeviceFeaturePerformanceQueryFeaturesKHR (Context& c
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDevicePerformanceQueryFeaturesKHR     devicePerformanceQueryFeaturesKHR[count];
-       const bool                                                                      isPerformanceQueryFeaturesKHR = checkExtension(properties, "VK_KHR_performance_query");
+       VkPhysicalDeviceLineRasterizationFeaturesEXT    deviceLineRasterizationFeaturesEXT[count];
+       const bool                                                                              isLineRasterizationFeaturesEXT = checkExtension(properties, "VK_EXT_line_rasterization");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&devicePerformanceQueryFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDevicePerformanceQueryFeaturesKHR));
-               devicePerformanceQueryFeaturesKHR[ndx].sType = isPerformanceQueryFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
-               devicePerformanceQueryFeaturesKHR[ndx].pNext = DE_NULL;
+               deMemset(&deviceLineRasterizationFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceLineRasterizationFeaturesEXT));
+               deviceLineRasterizationFeaturesEXT[ndx].sType = isLineRasterizationFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceLineRasterizationFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &devicePerformanceQueryFeaturesKHR[ndx];
+               extFeatures.pNext = &deviceLineRasterizationFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isPerformanceQueryFeaturesKHR)
-               log << TestLog::Message << devicePerformanceQueryFeaturesKHR[0] << TestLog::EndMessage;
+       if (isLineRasterizationFeaturesEXT)
+               log << TestLog::Message << deviceLineRasterizationFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isPerformanceQueryFeaturesKHR &&
-               (devicePerformanceQueryFeaturesKHR[0].performanceCounterQueryPools != devicePerformanceQueryFeaturesKHR[1].performanceCounterQueryPools ||
-                devicePerformanceQueryFeaturesKHR[0].performanceCounterMultipleQueryPools != devicePerformanceQueryFeaturesKHR[1].performanceCounterMultipleQueryPools))
+       if (isLineRasterizationFeaturesEXT &&
+               (deviceLineRasterizationFeaturesEXT[0].rectangularLines != deviceLineRasterizationFeaturesEXT[1].rectangularLines ||
+                deviceLineRasterizationFeaturesEXT[0].bresenhamLines != deviceLineRasterizationFeaturesEXT[1].bresenhamLines ||
+                deviceLineRasterizationFeaturesEXT[0].smoothLines != deviceLineRasterizationFeaturesEXT[1].smoothLines ||
+                deviceLineRasterizationFeaturesEXT[0].stippledRectangularLines != deviceLineRasterizationFeaturesEXT[1].stippledRectangularLines ||
+                deviceLineRasterizationFeaturesEXT[0].stippledBresenhamLines != deviceLineRasterizationFeaturesEXT[1].stippledBresenhamLines ||
+                deviceLineRasterizationFeaturesEXT[0].stippledSmoothLines != deviceLineRasterizationFeaturesEXT[1].stippledSmoothLines))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDevicePerformanceQueryFeaturesKHR");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceLineRasterizationFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
@@ -1248,7 +2169,7 @@ tcu::TestStatus testPhysicalDeviceFeaturePipelineCreationCacheControlFeatures (C
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
        VkPhysicalDevicePipelineCreationCacheControlFeatures    devicePipelineCreationCacheControlFeatures[count];
-       const bool                                                                                              isPipelineCreationCacheControlFeatures = checkExtension(properties, "VK_EXT_pipeline_creation_cache_control") || context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
+       const bool                                                                                              isPipelineCreationCacheControlFeatures = context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
@@ -1274,7 +2195,7 @@ tcu::TestStatus testPhysicalDeviceFeaturePipelineCreationCacheControlFeatures (C
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeaturePipelineExecutablePropertiesFeaturesKHR (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureVulkan11Features (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1284,34 +2205,45 @@ tcu::TestStatus testPhysicalDeviceFeaturePipelineExecutablePropertiesFeaturesKHR
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR devicePipelineExecutablePropertiesFeaturesKHR[count];
-       const bool                                                                                              isPipelineExecutablePropertiesFeaturesKHR = checkExtension(properties, "VK_KHR_pipeline_executable_properties");
+       VkPhysicalDeviceVulkan11Features        deviceVulkan11Features[count];
+       const bool                                                      isVulkan11Features = context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&devicePipelineExecutablePropertiesFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR));
-               devicePipelineExecutablePropertiesFeaturesKHR[ndx].sType = isPipelineExecutablePropertiesFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
-               devicePipelineExecutablePropertiesFeaturesKHR[ndx].pNext = DE_NULL;
+               deMemset(&deviceVulkan11Features[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceVulkan11Features));
+               deviceVulkan11Features[ndx].sType = isVulkan11Features ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceVulkan11Features[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &devicePipelineExecutablePropertiesFeaturesKHR[ndx];
+               extFeatures.pNext = &deviceVulkan11Features[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isPipelineExecutablePropertiesFeaturesKHR)
-               log << TestLog::Message << devicePipelineExecutablePropertiesFeaturesKHR[0] << TestLog::EndMessage;
+       if (isVulkan11Features)
+               log << TestLog::Message << deviceVulkan11Features[0] << TestLog::EndMessage;
 
-       if (isPipelineExecutablePropertiesFeaturesKHR &&
-               (devicePipelineExecutablePropertiesFeaturesKHR[0].pipelineExecutableInfo != devicePipelineExecutablePropertiesFeaturesKHR[1].pipelineExecutableInfo))
+       if (isVulkan11Features &&
+               (deviceVulkan11Features[0].storageBuffer16BitAccess != deviceVulkan11Features[1].storageBuffer16BitAccess ||
+                deviceVulkan11Features[0].uniformAndStorageBuffer16BitAccess != deviceVulkan11Features[1].uniformAndStorageBuffer16BitAccess ||
+                deviceVulkan11Features[0].storagePushConstant16 != deviceVulkan11Features[1].storagePushConstant16 ||
+                deviceVulkan11Features[0].storageInputOutput16 != deviceVulkan11Features[1].storageInputOutput16 ||
+                deviceVulkan11Features[0].multiview != deviceVulkan11Features[1].multiview ||
+                deviceVulkan11Features[0].multiviewGeometryShader != deviceVulkan11Features[1].multiviewGeometryShader ||
+                deviceVulkan11Features[0].multiviewTessellationShader != deviceVulkan11Features[1].multiviewTessellationShader ||
+                deviceVulkan11Features[0].variablePointersStorageBuffer != deviceVulkan11Features[1].variablePointersStorageBuffer ||
+                deviceVulkan11Features[0].variablePointers != deviceVulkan11Features[1].variablePointers ||
+                deviceVulkan11Features[0].protectedMemory != deviceVulkan11Features[1].protectedMemory ||
+                deviceVulkan11Features[0].samplerYcbcrConversion != deviceVulkan11Features[1].samplerYcbcrConversion ||
+                deviceVulkan11Features[0].shaderDrawParameters != deviceVulkan11Features[1].shaderDrawParameters))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceVulkan11Features");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeaturePresentIdFeaturesKHR (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureVulkan12Features (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1321,34 +2253,80 @@ tcu::TestStatus testPhysicalDeviceFeaturePresentIdFeaturesKHR (Context& context)
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDevicePresentIdFeaturesKHR    devicePresentIdFeaturesKHR[count];
-       const bool                                                              isPresentIdFeaturesKHR = checkExtension(properties, "VK_KHR_present_id");
+       VkPhysicalDeviceVulkan12Features        deviceVulkan12Features[count];
+       const bool                                                      isVulkan12Features = context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&devicePresentIdFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDevicePresentIdFeaturesKHR));
-               devicePresentIdFeaturesKHR[ndx].sType = isPresentIdFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
-               devicePresentIdFeaturesKHR[ndx].pNext = DE_NULL;
+               deMemset(&deviceVulkan12Features[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceVulkan12Features));
+               deviceVulkan12Features[ndx].sType = isVulkan12Features ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceVulkan12Features[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &devicePresentIdFeaturesKHR[ndx];
+               extFeatures.pNext = &deviceVulkan12Features[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isPresentIdFeaturesKHR)
-               log << TestLog::Message << devicePresentIdFeaturesKHR[0] << TestLog::EndMessage;
+       if (isVulkan12Features)
+               log << TestLog::Message << deviceVulkan12Features[0] << TestLog::EndMessage;
 
-       if (isPresentIdFeaturesKHR &&
-               (devicePresentIdFeaturesKHR[0].presentId != devicePresentIdFeaturesKHR[1].presentId))
+       if (isVulkan12Features &&
+               (deviceVulkan12Features[0].samplerMirrorClampToEdge != deviceVulkan12Features[1].samplerMirrorClampToEdge ||
+                deviceVulkan12Features[0].drawIndirectCount != deviceVulkan12Features[1].drawIndirectCount ||
+                deviceVulkan12Features[0].storageBuffer8BitAccess != deviceVulkan12Features[1].storageBuffer8BitAccess ||
+                deviceVulkan12Features[0].uniformAndStorageBuffer8BitAccess != deviceVulkan12Features[1].uniformAndStorageBuffer8BitAccess ||
+                deviceVulkan12Features[0].storagePushConstant8 != deviceVulkan12Features[1].storagePushConstant8 ||
+                deviceVulkan12Features[0].shaderBufferInt64Atomics != deviceVulkan12Features[1].shaderBufferInt64Atomics ||
+                deviceVulkan12Features[0].shaderSharedInt64Atomics != deviceVulkan12Features[1].shaderSharedInt64Atomics ||
+                deviceVulkan12Features[0].shaderFloat16 != deviceVulkan12Features[1].shaderFloat16 ||
+                deviceVulkan12Features[0].shaderInt8 != deviceVulkan12Features[1].shaderInt8 ||
+                deviceVulkan12Features[0].descriptorIndexing != deviceVulkan12Features[1].descriptorIndexing ||
+                deviceVulkan12Features[0].shaderInputAttachmentArrayDynamicIndexing != deviceVulkan12Features[1].shaderInputAttachmentArrayDynamicIndexing ||
+                deviceVulkan12Features[0].shaderUniformTexelBufferArrayDynamicIndexing != deviceVulkan12Features[1].shaderUniformTexelBufferArrayDynamicIndexing ||
+                deviceVulkan12Features[0].shaderStorageTexelBufferArrayDynamicIndexing != deviceVulkan12Features[1].shaderStorageTexelBufferArrayDynamicIndexing ||
+                deviceVulkan12Features[0].shaderUniformBufferArrayNonUniformIndexing != deviceVulkan12Features[1].shaderUniformBufferArrayNonUniformIndexing ||
+                deviceVulkan12Features[0].shaderSampledImageArrayNonUniformIndexing != deviceVulkan12Features[1].shaderSampledImageArrayNonUniformIndexing ||
+                deviceVulkan12Features[0].shaderStorageBufferArrayNonUniformIndexing != deviceVulkan12Features[1].shaderStorageBufferArrayNonUniformIndexing ||
+                deviceVulkan12Features[0].shaderStorageImageArrayNonUniformIndexing != deviceVulkan12Features[1].shaderStorageImageArrayNonUniformIndexing ||
+                deviceVulkan12Features[0].shaderInputAttachmentArrayNonUniformIndexing != deviceVulkan12Features[1].shaderInputAttachmentArrayNonUniformIndexing ||
+                deviceVulkan12Features[0].shaderUniformTexelBufferArrayNonUniformIndexing != deviceVulkan12Features[1].shaderUniformTexelBufferArrayNonUniformIndexing ||
+                deviceVulkan12Features[0].shaderStorageTexelBufferArrayNonUniformIndexing != deviceVulkan12Features[1].shaderStorageTexelBufferArrayNonUniformIndexing ||
+                deviceVulkan12Features[0].descriptorBindingUniformBufferUpdateAfterBind != deviceVulkan12Features[1].descriptorBindingUniformBufferUpdateAfterBind ||
+                deviceVulkan12Features[0].descriptorBindingSampledImageUpdateAfterBind != deviceVulkan12Features[1].descriptorBindingSampledImageUpdateAfterBind ||
+                deviceVulkan12Features[0].descriptorBindingStorageImageUpdateAfterBind != deviceVulkan12Features[1].descriptorBindingStorageImageUpdateAfterBind ||
+                deviceVulkan12Features[0].descriptorBindingStorageBufferUpdateAfterBind != deviceVulkan12Features[1].descriptorBindingStorageBufferUpdateAfterBind ||
+                deviceVulkan12Features[0].descriptorBindingUniformTexelBufferUpdateAfterBind != deviceVulkan12Features[1].descriptorBindingUniformTexelBufferUpdateAfterBind ||
+                deviceVulkan12Features[0].descriptorBindingStorageTexelBufferUpdateAfterBind != deviceVulkan12Features[1].descriptorBindingStorageTexelBufferUpdateAfterBind ||
+                deviceVulkan12Features[0].descriptorBindingUpdateUnusedWhilePending != deviceVulkan12Features[1].descriptorBindingUpdateUnusedWhilePending ||
+                deviceVulkan12Features[0].descriptorBindingPartiallyBound != deviceVulkan12Features[1].descriptorBindingPartiallyBound ||
+                deviceVulkan12Features[0].descriptorBindingVariableDescriptorCount != deviceVulkan12Features[1].descriptorBindingVariableDescriptorCount ||
+                deviceVulkan12Features[0].runtimeDescriptorArray != deviceVulkan12Features[1].runtimeDescriptorArray ||
+                deviceVulkan12Features[0].samplerFilterMinmax != deviceVulkan12Features[1].samplerFilterMinmax ||
+                deviceVulkan12Features[0].scalarBlockLayout != deviceVulkan12Features[1].scalarBlockLayout ||
+                deviceVulkan12Features[0].imagelessFramebuffer != deviceVulkan12Features[1].imagelessFramebuffer ||
+                deviceVulkan12Features[0].uniformBufferStandardLayout != deviceVulkan12Features[1].uniformBufferStandardLayout ||
+                deviceVulkan12Features[0].shaderSubgroupExtendedTypes != deviceVulkan12Features[1].shaderSubgroupExtendedTypes ||
+                deviceVulkan12Features[0].separateDepthStencilLayouts != deviceVulkan12Features[1].separateDepthStencilLayouts ||
+                deviceVulkan12Features[0].hostQueryReset != deviceVulkan12Features[1].hostQueryReset ||
+                deviceVulkan12Features[0].timelineSemaphore != deviceVulkan12Features[1].timelineSemaphore ||
+                deviceVulkan12Features[0].bufferDeviceAddress != deviceVulkan12Features[1].bufferDeviceAddress ||
+                deviceVulkan12Features[0].bufferDeviceAddressCaptureReplay != deviceVulkan12Features[1].bufferDeviceAddressCaptureReplay ||
+                deviceVulkan12Features[0].bufferDeviceAddressMultiDevice != deviceVulkan12Features[1].bufferDeviceAddressMultiDevice ||
+                deviceVulkan12Features[0].vulkanMemoryModel != deviceVulkan12Features[1].vulkanMemoryModel ||
+                deviceVulkan12Features[0].vulkanMemoryModelDeviceScope != deviceVulkan12Features[1].vulkanMemoryModelDeviceScope ||
+                deviceVulkan12Features[0].vulkanMemoryModelAvailabilityVisibilityChains != deviceVulkan12Features[1].vulkanMemoryModelAvailabilityVisibilityChains ||
+                deviceVulkan12Features[0].shaderOutputViewportIndex != deviceVulkan12Features[1].shaderOutputViewportIndex ||
+                deviceVulkan12Features[0].shaderOutputLayer != deviceVulkan12Features[1].shaderOutputLayer ||
+                deviceVulkan12Features[0].subgroupBroadcastDynamicId != deviceVulkan12Features[1].subgroupBroadcastDynamicId))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDevicePresentIdFeaturesKHR");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceVulkan12Features");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeaturePresentWaitFeaturesKHR (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureVulkan13Features (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1358,34 +2336,48 @@ tcu::TestStatus testPhysicalDeviceFeaturePresentWaitFeaturesKHR (Context& contex
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDevicePresentWaitFeaturesKHR  devicePresentWaitFeaturesKHR[count];
-       const bool                                                              isPresentWaitFeaturesKHR = checkExtension(properties, "VK_KHR_present_wait");
+       VkPhysicalDeviceVulkan13Features        deviceVulkan13Features[count];
+       const bool                                                      isVulkan13Features = context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&devicePresentWaitFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDevicePresentWaitFeaturesKHR));
-               devicePresentWaitFeaturesKHR[ndx].sType = isPresentWaitFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
-               devicePresentWaitFeaturesKHR[ndx].pNext = DE_NULL;
+               deMemset(&deviceVulkan13Features[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceVulkan13Features));
+               deviceVulkan13Features[ndx].sType = isVulkan13Features ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceVulkan13Features[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &devicePresentWaitFeaturesKHR[ndx];
+               extFeatures.pNext = &deviceVulkan13Features[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isPresentWaitFeaturesKHR)
-               log << TestLog::Message << devicePresentWaitFeaturesKHR[0] << TestLog::EndMessage;
+       if (isVulkan13Features)
+               log << TestLog::Message << deviceVulkan13Features[0] << TestLog::EndMessage;
 
-       if (isPresentWaitFeaturesKHR &&
-               (devicePresentWaitFeaturesKHR[0].presentWait != devicePresentWaitFeaturesKHR[1].presentWait))
+       if (isVulkan13Features &&
+               (deviceVulkan13Features[0].robustImageAccess != deviceVulkan13Features[1].robustImageAccess ||
+                deviceVulkan13Features[0].inlineUniformBlock != deviceVulkan13Features[1].inlineUniformBlock ||
+                deviceVulkan13Features[0].descriptorBindingInlineUniformBlockUpdateAfterBind != deviceVulkan13Features[1].descriptorBindingInlineUniformBlockUpdateAfterBind ||
+                deviceVulkan13Features[0].pipelineCreationCacheControl != deviceVulkan13Features[1].pipelineCreationCacheControl ||
+                deviceVulkan13Features[0].privateData != deviceVulkan13Features[1].privateData ||
+                deviceVulkan13Features[0].shaderDemoteToHelperInvocation != deviceVulkan13Features[1].shaderDemoteToHelperInvocation ||
+                deviceVulkan13Features[0].shaderTerminateInvocation != deviceVulkan13Features[1].shaderTerminateInvocation ||
+                deviceVulkan13Features[0].subgroupSizeControl != deviceVulkan13Features[1].subgroupSizeControl ||
+                deviceVulkan13Features[0].computeFullSubgroups != deviceVulkan13Features[1].computeFullSubgroups ||
+                deviceVulkan13Features[0].synchronization2 != deviceVulkan13Features[1].synchronization2 ||
+                deviceVulkan13Features[0].textureCompressionASTC_HDR != deviceVulkan13Features[1].textureCompressionASTC_HDR ||
+                deviceVulkan13Features[0].shaderZeroInitializeWorkgroupMemory != deviceVulkan13Features[1].shaderZeroInitializeWorkgroupMemory ||
+                deviceVulkan13Features[0].dynamicRendering != deviceVulkan13Features[1].dynamicRendering ||
+                deviceVulkan13Features[0].shaderIntegerDotProduct != deviceVulkan13Features[1].shaderIntegerDotProduct ||
+                deviceVulkan13Features[0].maintenance4 != deviceVulkan13Features[1].maintenance4))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDevicePresentWaitFeaturesKHR");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceVulkan13Features");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureProtectedMemoryFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureCustomBorderColorFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1395,34 +2387,35 @@ tcu::TestStatus testPhysicalDeviceFeatureProtectedMemoryFeatures (Context& conte
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceProtectedMemoryFeatures deviceProtectedMemoryFeatures[count];
-       const bool                                                              isProtectedMemoryFeatures = context.contextSupports(vk::ApiVersion(0, 1, 1, 0));
+       VkPhysicalDeviceCustomBorderColorFeaturesEXT    deviceCustomBorderColorFeaturesEXT[count];
+       const bool                                                                              isCustomBorderColorFeaturesEXT = checkExtension(properties, "VK_EXT_custom_border_color");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceProtectedMemoryFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceProtectedMemoryFeatures));
-               deviceProtectedMemoryFeatures[ndx].sType = isProtectedMemoryFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceProtectedMemoryFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceCustomBorderColorFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT));
+               deviceCustomBorderColorFeaturesEXT[ndx].sType = isCustomBorderColorFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceCustomBorderColorFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceProtectedMemoryFeatures[ndx];
+               extFeatures.pNext = &deviceCustomBorderColorFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isProtectedMemoryFeatures)
-               log << TestLog::Message << deviceProtectedMemoryFeatures[0] << TestLog::EndMessage;
+       if (isCustomBorderColorFeaturesEXT)
+               log << TestLog::Message << deviceCustomBorderColorFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isProtectedMemoryFeatures &&
-               (deviceProtectedMemoryFeatures[0].protectedMemory != deviceProtectedMemoryFeatures[1].protectedMemory))
+       if (isCustomBorderColorFeaturesEXT &&
+               (deviceCustomBorderColorFeaturesEXT[0].customBorderColors != deviceCustomBorderColorFeaturesEXT[1].customBorderColors ||
+                deviceCustomBorderColorFeaturesEXT[0].customBorderColorWithoutFormat != deviceCustomBorderColorFeaturesEXT[1].customBorderColorWithoutFormat))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceProtectedMemoryFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceCustomBorderColorFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureProvokingVertexFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureBorderColorSwizzleFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1432,35 +2425,35 @@ tcu::TestStatus testPhysicalDeviceFeatureProvokingVertexFeaturesEXT (Context& co
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceProvokingVertexFeaturesEXT      deviceProvokingVertexFeaturesEXT[count];
-       const bool                                                                      isProvokingVertexFeaturesEXT = checkExtension(properties, "VK_EXT_provoking_vertex");
+       VkPhysicalDeviceBorderColorSwizzleFeaturesEXT   deviceBorderColorSwizzleFeaturesEXT[count];
+       const bool                                                                              isBorderColorSwizzleFeaturesEXT = checkExtension(properties, "VK_EXT_border_color_swizzle");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceProvokingVertexFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT));
-               deviceProvokingVertexFeaturesEXT[ndx].sType = isProvokingVertexFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceProvokingVertexFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&deviceBorderColorSwizzleFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceBorderColorSwizzleFeaturesEXT));
+               deviceBorderColorSwizzleFeaturesEXT[ndx].sType = isBorderColorSwizzleFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceBorderColorSwizzleFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceProvokingVertexFeaturesEXT[ndx];
+               extFeatures.pNext = &deviceBorderColorSwizzleFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isProvokingVertexFeaturesEXT)
-               log << TestLog::Message << deviceProvokingVertexFeaturesEXT[0] << TestLog::EndMessage;
+       if (isBorderColorSwizzleFeaturesEXT)
+               log << TestLog::Message << deviceBorderColorSwizzleFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isProvokingVertexFeaturesEXT &&
-               (deviceProvokingVertexFeaturesEXT[0].provokingVertexLast != deviceProvokingVertexFeaturesEXT[1].provokingVertexLast ||
-                deviceProvokingVertexFeaturesEXT[0].transformFeedbackPreservesProvokingVertex != deviceProvokingVertexFeaturesEXT[1].transformFeedbackPreservesProvokingVertex))
+       if (isBorderColorSwizzleFeaturesEXT &&
+               (deviceBorderColorSwizzleFeaturesEXT[0].borderColorSwizzle != deviceBorderColorSwizzleFeaturesEXT[1].borderColorSwizzle ||
+                deviceBorderColorSwizzleFeaturesEXT[0].borderColorSwizzleFromImage != deviceBorderColorSwizzleFeaturesEXT[1].borderColorSwizzleFromImage))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceProvokingVertexFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceBorderColorSwizzleFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeaturePrimitiveTopologyListRestartFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureExtendedDynamicStateFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1470,35 +2463,34 @@ tcu::TestStatus testPhysicalDeviceFeaturePrimitiveTopologyListRestartFeaturesEXT
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT devicePrimitiveTopologyListRestartFeaturesEXT[count];
-       const bool                                                                                              isPrimitiveTopologyListRestartFeaturesEXT = checkExtension(properties, "VK_EXT_primitive_topology_list_restart");
+       VkPhysicalDeviceExtendedDynamicStateFeaturesEXT deviceExtendedDynamicStateFeaturesEXT[count];
+       const bool                                                                              isExtendedDynamicStateFeaturesEXT = checkExtension(properties, "VK_EXT_extended_dynamic_state") || context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&devicePrimitiveTopologyListRestartFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT));
-               devicePrimitiveTopologyListRestartFeaturesEXT[ndx].sType = isPrimitiveTopologyListRestartFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               devicePrimitiveTopologyListRestartFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&deviceExtendedDynamicStateFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT));
+               deviceExtendedDynamicStateFeaturesEXT[ndx].sType = isExtendedDynamicStateFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceExtendedDynamicStateFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &devicePrimitiveTopologyListRestartFeaturesEXT[ndx];
+               extFeatures.pNext = &deviceExtendedDynamicStateFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isPrimitiveTopologyListRestartFeaturesEXT)
-               log << TestLog::Message << devicePrimitiveTopologyListRestartFeaturesEXT[0] << TestLog::EndMessage;
+       if (isExtendedDynamicStateFeaturesEXT)
+               log << TestLog::Message << deviceExtendedDynamicStateFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isPrimitiveTopologyListRestartFeaturesEXT &&
-               (devicePrimitiveTopologyListRestartFeaturesEXT[0].primitiveTopologyListRestart != devicePrimitiveTopologyListRestartFeaturesEXT[1].primitiveTopologyListRestart ||
-                devicePrimitiveTopologyListRestartFeaturesEXT[0].primitiveTopologyPatchListRestart != devicePrimitiveTopologyListRestartFeaturesEXT[1].primitiveTopologyPatchListRestart))
+       if (isExtendedDynamicStateFeaturesEXT &&
+               (deviceExtendedDynamicStateFeaturesEXT[0].extendedDynamicState != deviceExtendedDynamicStateFeaturesEXT[1].extendedDynamicState))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceExtendedDynamicStateFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeaturePrivateDataFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureExtendedDynamicState2FeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1508,34 +2500,36 @@ tcu::TestStatus testPhysicalDeviceFeaturePrivateDataFeatures (Context& context)
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDevicePrivateDataFeatures     devicePrivateDataFeatures[count];
-       const bool                                                      isPrivateDataFeatures = checkExtension(properties, "VK_EXT_private_data") || context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
+       VkPhysicalDeviceExtendedDynamicState2FeaturesEXT        deviceExtendedDynamicState2FeaturesEXT[count];
+       const bool                                                                                      isExtendedDynamicState2FeaturesEXT = checkExtension(properties, "VK_EXT_extended_dynamic_state2") || context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&devicePrivateDataFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDevicePrivateDataFeatures));
-               devicePrivateDataFeatures[ndx].sType = isPrivateDataFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               devicePrivateDataFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceExtendedDynamicState2FeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT));
+               deviceExtendedDynamicState2FeaturesEXT[ndx].sType = isExtendedDynamicState2FeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceExtendedDynamicState2FeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &devicePrivateDataFeatures[ndx];
+               extFeatures.pNext = &deviceExtendedDynamicState2FeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isPrivateDataFeatures)
-               log << TestLog::Message << devicePrivateDataFeatures[0] << TestLog::EndMessage;
+       if (isExtendedDynamicState2FeaturesEXT)
+               log << TestLog::Message << deviceExtendedDynamicState2FeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isPrivateDataFeatures &&
-               (devicePrivateDataFeatures[0].privateData != devicePrivateDataFeatures[1].privateData))
+       if (isExtendedDynamicState2FeaturesEXT &&
+               (deviceExtendedDynamicState2FeaturesEXT[0].extendedDynamicState2 != deviceExtendedDynamicState2FeaturesEXT[1].extendedDynamicState2 ||
+                deviceExtendedDynamicState2FeaturesEXT[0].extendedDynamicState2LogicOp != deviceExtendedDynamicState2FeaturesEXT[1].extendedDynamicState2LogicOp ||
+                deviceExtendedDynamicState2FeaturesEXT[0].extendedDynamicState2PatchControlPoints != deviceExtendedDynamicState2FeaturesEXT[1].extendedDynamicState2PatchControlPoints))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDevicePrivateDataFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceExtendedDynamicState2FeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureRayTracingPipelineFeaturesKHR (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureZeroInitializeWorkgroupMemoryFeatures (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1545,38 +2539,34 @@ tcu::TestStatus testPhysicalDeviceFeatureRayTracingPipelineFeaturesKHR (Context&
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceRayTracingPipelineFeaturesKHR   deviceRayTracingPipelineFeaturesKHR[count];
-       const bool                                                                              isRayTracingPipelineFeaturesKHR = checkExtension(properties, "VK_KHR_ray_tracing_pipeline");
+       VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures   deviceZeroInitializeWorkgroupMemoryFeatures[count];
+       const bool                                                                                              isZeroInitializeWorkgroupMemoryFeatures = context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceRayTracingPipelineFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceRayTracingPipelineFeaturesKHR));
-               deviceRayTracingPipelineFeaturesKHR[ndx].sType = isRayTracingPipelineFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceRayTracingPipelineFeaturesKHR[ndx].pNext = DE_NULL;
+               deMemset(&deviceZeroInitializeWorkgroupMemoryFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures));
+               deviceZeroInitializeWorkgroupMemoryFeatures[ndx].sType = isZeroInitializeWorkgroupMemoryFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceZeroInitializeWorkgroupMemoryFeatures[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceRayTracingPipelineFeaturesKHR[ndx];
+               extFeatures.pNext = &deviceZeroInitializeWorkgroupMemoryFeatures[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isRayTracingPipelineFeaturesKHR)
-               log << TestLog::Message << deviceRayTracingPipelineFeaturesKHR[0] << TestLog::EndMessage;
+       if (isZeroInitializeWorkgroupMemoryFeatures)
+               log << TestLog::Message << deviceZeroInitializeWorkgroupMemoryFeatures[0] << TestLog::EndMessage;
 
-       if (isRayTracingPipelineFeaturesKHR &&
-               (deviceRayTracingPipelineFeaturesKHR[0].rayTracingPipeline != deviceRayTracingPipelineFeaturesKHR[1].rayTracingPipeline ||
-                deviceRayTracingPipelineFeaturesKHR[0].rayTracingPipelineShaderGroupHandleCaptureReplay != deviceRayTracingPipelineFeaturesKHR[1].rayTracingPipelineShaderGroupHandleCaptureReplay ||
-                deviceRayTracingPipelineFeaturesKHR[0].rayTracingPipelineShaderGroupHandleCaptureReplayMixed != deviceRayTracingPipelineFeaturesKHR[1].rayTracingPipelineShaderGroupHandleCaptureReplayMixed ||
-                deviceRayTracingPipelineFeaturesKHR[0].rayTracingPipelineTraceRaysIndirect != deviceRayTracingPipelineFeaturesKHR[1].rayTracingPipelineTraceRaysIndirect ||
-                deviceRayTracingPipelineFeaturesKHR[0].rayTraversalPrimitiveCulling != deviceRayTracingPipelineFeaturesKHR[1].rayTraversalPrimitiveCulling))
+       if (isZeroInitializeWorkgroupMemoryFeatures &&
+               (deviceZeroInitializeWorkgroupMemoryFeatures[0].shaderZeroInitializeWorkgroupMemory != deviceZeroInitializeWorkgroupMemoryFeatures[1].shaderZeroInitializeWorkgroupMemory))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceRayTracingPipelineFeaturesKHR");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureRayQueryFeaturesKHR (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureShaderSubgroupUniformControlFlowFeaturesKHR (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1586,29 +2576,29 @@ tcu::TestStatus testPhysicalDeviceFeatureRayQueryFeaturesKHR (Context& context)
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceRayQueryFeaturesKHR     deviceRayQueryFeaturesKHR[count];
-       const bool                                                      isRayQueryFeaturesKHR = checkExtension(properties, "VK_KHR_ray_query");
+       VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR     deviceShaderSubgroupUniformControlFlowFeaturesKHR[count];
+       const bool                                                                                                      isShaderSubgroupUniformControlFlowFeaturesKHR = checkExtension(properties, "VK_KHR_shader_subgroup_uniform_control_flow");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceRayQueryFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceRayQueryFeaturesKHR));
-               deviceRayQueryFeaturesKHR[ndx].sType = isRayQueryFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceRayQueryFeaturesKHR[ndx].pNext = DE_NULL;
+               deMemset(&deviceShaderSubgroupUniformControlFlowFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR));
+               deviceShaderSubgroupUniformControlFlowFeaturesKHR[ndx].sType = isShaderSubgroupUniformControlFlowFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceShaderSubgroupUniformControlFlowFeaturesKHR[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceRayQueryFeaturesKHR[ndx];
+               extFeatures.pNext = &deviceShaderSubgroupUniformControlFlowFeaturesKHR[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isRayQueryFeaturesKHR)
-               log << TestLog::Message << deviceRayQueryFeaturesKHR[0] << TestLog::EndMessage;
+       if (isShaderSubgroupUniformControlFlowFeaturesKHR)
+               log << TestLog::Message << deviceShaderSubgroupUniformControlFlowFeaturesKHR[0] << TestLog::EndMessage;
 
-       if (isRayQueryFeaturesKHR &&
-               (deviceRayQueryFeaturesKHR[0].rayQuery != deviceRayQueryFeaturesKHR[1].rayQuery))
+       if (isShaderSubgroupUniformControlFlowFeaturesKHR &&
+               (deviceShaderSubgroupUniformControlFlowFeaturesKHR[0].shaderSubgroupUniformControlFlow != deviceShaderSubgroupUniformControlFlowFeaturesKHR[1].shaderSubgroupUniformControlFlow))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceRayQueryFeaturesKHR");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
@@ -1652,7 +2642,7 @@ tcu::TestStatus testPhysicalDeviceFeatureRobustness2FeaturesEXT (Context& contex
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureSamplerYcbcrConversionFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureImageRobustnessFeatures (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1662,34 +2652,34 @@ tcu::TestStatus testPhysicalDeviceFeatureSamplerYcbcrConversionFeatures (Context
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceSamplerYcbcrConversionFeatures  deviceSamplerYcbcrConversionFeatures[count];
-       const bool                                                                              isSamplerYcbcrConversionFeatures = checkExtension(properties, "VK_KHR_sampler_ycbcr_conversion") || context.contextSupports(vk::ApiVersion(0, 1, 1, 0));
+       VkPhysicalDeviceImageRobustnessFeatures deviceImageRobustnessFeatures[count];
+       const bool                                                              isImageRobustnessFeatures = context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceSamplerYcbcrConversionFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures));
-               deviceSamplerYcbcrConversionFeatures[ndx].sType = isSamplerYcbcrConversionFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceSamplerYcbcrConversionFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceImageRobustnessFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceImageRobustnessFeatures));
+               deviceImageRobustnessFeatures[ndx].sType = isImageRobustnessFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceImageRobustnessFeatures[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceSamplerYcbcrConversionFeatures[ndx];
+               extFeatures.pNext = &deviceImageRobustnessFeatures[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isSamplerYcbcrConversionFeatures)
-               log << TestLog::Message << deviceSamplerYcbcrConversionFeatures[0] << TestLog::EndMessage;
+       if (isImageRobustnessFeatures)
+               log << TestLog::Message << deviceImageRobustnessFeatures[0] << TestLog::EndMessage;
 
-       if (isSamplerYcbcrConversionFeatures &&
-               (deviceSamplerYcbcrConversionFeatures[0].samplerYcbcrConversion != deviceSamplerYcbcrConversionFeatures[1].samplerYcbcrConversion))
+       if (isImageRobustnessFeatures &&
+               (deviceImageRobustnessFeatures[0].robustImageAccess != deviceImageRobustnessFeatures[1].robustImageAccess))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceSamplerYcbcrConversionFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceImageRobustnessFeatures");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureScalarBlockLayoutFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureWorkgroupMemoryExplicitLayoutFeaturesKHR (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1699,34 +2689,37 @@ tcu::TestStatus testPhysicalDeviceFeatureScalarBlockLayoutFeatures (Context& con
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceScalarBlockLayoutFeatures       deviceScalarBlockLayoutFeatures[count];
-       const bool                                                                      isScalarBlockLayoutFeatures = checkExtension(properties, "VK_EXT_scalar_block_layout") || context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
+       VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR        deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[count];
+       const bool                                                                                                      isWorkgroupMemoryExplicitLayoutFeaturesKHR = checkExtension(properties, "VK_KHR_workgroup_memory_explicit_layout");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceScalarBlockLayoutFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures));
-               deviceScalarBlockLayoutFeatures[ndx].sType = isScalarBlockLayoutFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceScalarBlockLayoutFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR));
+               deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[ndx].sType = isWorkgroupMemoryExplicitLayoutFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceScalarBlockLayoutFeatures[ndx];
+               extFeatures.pNext = &deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isScalarBlockLayoutFeatures)
-               log << TestLog::Message << deviceScalarBlockLayoutFeatures[0] << TestLog::EndMessage;
+       if (isWorkgroupMemoryExplicitLayoutFeaturesKHR)
+               log << TestLog::Message << deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[0] << TestLog::EndMessage;
 
-       if (isScalarBlockLayoutFeatures &&
-               (deviceScalarBlockLayoutFeatures[0].scalarBlockLayout != deviceScalarBlockLayoutFeatures[1].scalarBlockLayout))
+       if (isWorkgroupMemoryExplicitLayoutFeaturesKHR &&
+               (deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[0].workgroupMemoryExplicitLayout != deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[1].workgroupMemoryExplicitLayout ||
+                deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[0].workgroupMemoryExplicitLayoutScalarBlockLayout != deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[1].workgroupMemoryExplicitLayoutScalarBlockLayout ||
+                deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[0].workgroupMemoryExplicitLayout8BitAccess != deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[1].workgroupMemoryExplicitLayout8BitAccess ||
+                deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[0].workgroupMemoryExplicitLayout16BitAccess != deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[1].workgroupMemoryExplicitLayout16BitAccess))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceScalarBlockLayoutFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureSeparateDepthStencilLayoutsFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeaturePortabilitySubsetFeaturesKHR (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1736,34 +2729,48 @@ tcu::TestStatus testPhysicalDeviceFeatureSeparateDepthStencilLayoutsFeatures (Co
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures     deviceSeparateDepthStencilLayoutsFeatures[count];
-       const bool                                                                                      isSeparateDepthStencilLayoutsFeatures = checkExtension(properties, "VK_KHR_separate_depth_stencil_layouts") || context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
+       VkPhysicalDevicePortabilitySubsetFeaturesKHR    devicePortabilitySubsetFeaturesKHR[count];
+       const bool                                                                              isPortabilitySubsetFeaturesKHR = checkExtension(properties, "VK_KHR_portability_subset");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceSeparateDepthStencilLayoutsFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures));
-               deviceSeparateDepthStencilLayoutsFeatures[ndx].sType = isSeparateDepthStencilLayoutsFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceSeparateDepthStencilLayoutsFeatures[ndx].pNext = DE_NULL;
+               deMemset(&devicePortabilitySubsetFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDevicePortabilitySubsetFeaturesKHR));
+               devicePortabilitySubsetFeaturesKHR[ndx].sType = isPortabilitySubsetFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
+               devicePortabilitySubsetFeaturesKHR[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceSeparateDepthStencilLayoutsFeatures[ndx];
+               extFeatures.pNext = &devicePortabilitySubsetFeaturesKHR[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isSeparateDepthStencilLayoutsFeatures)
-               log << TestLog::Message << deviceSeparateDepthStencilLayoutsFeatures[0] << TestLog::EndMessage;
+       if (isPortabilitySubsetFeaturesKHR)
+               log << TestLog::Message << devicePortabilitySubsetFeaturesKHR[0] << TestLog::EndMessage;
 
-       if (isSeparateDepthStencilLayoutsFeatures &&
-               (deviceSeparateDepthStencilLayoutsFeatures[0].separateDepthStencilLayouts != deviceSeparateDepthStencilLayoutsFeatures[1].separateDepthStencilLayouts))
+       if (isPortabilitySubsetFeaturesKHR &&
+               (devicePortabilitySubsetFeaturesKHR[0].constantAlphaColorBlendFactors != devicePortabilitySubsetFeaturesKHR[1].constantAlphaColorBlendFactors ||
+                devicePortabilitySubsetFeaturesKHR[0].events != devicePortabilitySubsetFeaturesKHR[1].events ||
+                devicePortabilitySubsetFeaturesKHR[0].imageViewFormatReinterpretation != devicePortabilitySubsetFeaturesKHR[1].imageViewFormatReinterpretation ||
+                devicePortabilitySubsetFeaturesKHR[0].imageViewFormatSwizzle != devicePortabilitySubsetFeaturesKHR[1].imageViewFormatSwizzle ||
+                devicePortabilitySubsetFeaturesKHR[0].imageView2DOn3DImage != devicePortabilitySubsetFeaturesKHR[1].imageView2DOn3DImage ||
+                devicePortabilitySubsetFeaturesKHR[0].multisampleArrayImage != devicePortabilitySubsetFeaturesKHR[1].multisampleArrayImage ||
+                devicePortabilitySubsetFeaturesKHR[0].mutableComparisonSamplers != devicePortabilitySubsetFeaturesKHR[1].mutableComparisonSamplers ||
+                devicePortabilitySubsetFeaturesKHR[0].pointPolygons != devicePortabilitySubsetFeaturesKHR[1].pointPolygons ||
+                devicePortabilitySubsetFeaturesKHR[0].samplerMipLodBias != devicePortabilitySubsetFeaturesKHR[1].samplerMipLodBias ||
+                devicePortabilitySubsetFeaturesKHR[0].separateStencilMaskRef != devicePortabilitySubsetFeaturesKHR[1].separateStencilMaskRef ||
+                devicePortabilitySubsetFeaturesKHR[0].shaderSampleRateInterpolationFunctions != devicePortabilitySubsetFeaturesKHR[1].shaderSampleRateInterpolationFunctions ||
+                devicePortabilitySubsetFeaturesKHR[0].tessellationIsolines != devicePortabilitySubsetFeaturesKHR[1].tessellationIsolines ||
+                devicePortabilitySubsetFeaturesKHR[0].tessellationPointMode != devicePortabilitySubsetFeaturesKHR[1].tessellationPointMode ||
+                devicePortabilitySubsetFeaturesKHR[0].triangleFans != devicePortabilitySubsetFeaturesKHR[1].triangleFans ||
+                devicePortabilitySubsetFeaturesKHR[0].vertexAttributeAccessBeyondStride != devicePortabilitySubsetFeaturesKHR[1].vertexAttributeAccessBeyondStride))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDevicePortabilitySubsetFeaturesKHR");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureShaderAtomicInt64Features (Context& context)
+tcu::TestStatus testPhysicalDeviceFeature4444FormatsFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1773,35 +2780,35 @@ tcu::TestStatus testPhysicalDeviceFeatureShaderAtomicInt64Features (Context& con
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceShaderAtomicInt64Features       deviceShaderAtomicInt64Features[count];
-       const bool                                                                      isShaderAtomicInt64Features = checkExtension(properties, "VK_KHR_shader_atomic_int64") || context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
+       VkPhysicalDevice4444FormatsFeaturesEXT  device4444FormatsFeaturesEXT[count];
+       const bool                                                              is4444FormatsFeaturesEXT = checkExtension(properties, "VK_EXT_4444_formats") || context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceShaderAtomicInt64Features[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderAtomicInt64Features));
-               deviceShaderAtomicInt64Features[ndx].sType = isShaderAtomicInt64Features ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceShaderAtomicInt64Features[ndx].pNext = DE_NULL;
+               deMemset(&device4444FormatsFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDevice4444FormatsFeaturesEXT));
+               device4444FormatsFeaturesEXT[ndx].sType = is4444FormatsFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               device4444FormatsFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceShaderAtomicInt64Features[ndx];
+               extFeatures.pNext = &device4444FormatsFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isShaderAtomicInt64Features)
-               log << TestLog::Message << deviceShaderAtomicInt64Features[0] << TestLog::EndMessage;
+       if (is4444FormatsFeaturesEXT)
+               log << TestLog::Message << device4444FormatsFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isShaderAtomicInt64Features &&
-               (deviceShaderAtomicInt64Features[0].shaderBufferInt64Atomics != deviceShaderAtomicInt64Features[1].shaderBufferInt64Atomics ||
-                deviceShaderAtomicInt64Features[0].shaderSharedInt64Atomics != deviceShaderAtomicInt64Features[1].shaderSharedInt64Atomics))
+       if (is4444FormatsFeaturesEXT &&
+               (device4444FormatsFeaturesEXT[0].formatA4R4G4B4 != device4444FormatsFeaturesEXT[1].formatA4R4G4B4 ||
+                device4444FormatsFeaturesEXT[0].formatA4B4G4R4 != device4444FormatsFeaturesEXT[1].formatA4B4G4R4))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderAtomicInt64Features");
+               TCU_FAIL("Mismatch between VkPhysicalDevice4444FormatsFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureShaderAtomicFloatFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureShaderImageAtomicInt64FeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1811,45 +2818,35 @@ tcu::TestStatus testPhysicalDeviceFeatureShaderAtomicFloatFeaturesEXT (Context&
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceShaderAtomicFloatFeaturesEXT    deviceShaderAtomicFloatFeaturesEXT[count];
-       const bool                                                                              isShaderAtomicFloatFeaturesEXT = checkExtension(properties, "VK_EXT_shader_atomic_float");
+       VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT       deviceShaderImageAtomicInt64FeaturesEXT[count];
+       const bool                                                                                      isShaderImageAtomicInt64FeaturesEXT = checkExtension(properties, "VK_EXT_shader_image_atomic_int64");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceShaderAtomicFloatFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderAtomicFloatFeaturesEXT));
-               deviceShaderAtomicFloatFeaturesEXT[ndx].sType = isShaderAtomicFloatFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceShaderAtomicFloatFeaturesEXT[ndx].pNext = DE_NULL;
-
-               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
-               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceShaderAtomicFloatFeaturesEXT[ndx];
-
-               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
-       }
+               deMemset(&deviceShaderImageAtomicInt64FeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT));
+               deviceShaderImageAtomicInt64FeaturesEXT[ndx].sType = isShaderImageAtomicInt64FeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceShaderImageAtomicInt64FeaturesEXT[ndx].pNext = DE_NULL;
 
-       if (isShaderAtomicFloatFeaturesEXT)
-               log << TestLog::Message << deviceShaderAtomicFloatFeaturesEXT[0] << TestLog::EndMessage;
-
-       if (isShaderAtomicFloatFeaturesEXT &&
-               (deviceShaderAtomicFloatFeaturesEXT[0].shaderBufferFloat32Atomics != deviceShaderAtomicFloatFeaturesEXT[1].shaderBufferFloat32Atomics ||
-                deviceShaderAtomicFloatFeaturesEXT[0].shaderBufferFloat32AtomicAdd != deviceShaderAtomicFloatFeaturesEXT[1].shaderBufferFloat32AtomicAdd ||
-                deviceShaderAtomicFloatFeaturesEXT[0].shaderBufferFloat64Atomics != deviceShaderAtomicFloatFeaturesEXT[1].shaderBufferFloat64Atomics ||
-                deviceShaderAtomicFloatFeaturesEXT[0].shaderBufferFloat64AtomicAdd != deviceShaderAtomicFloatFeaturesEXT[1].shaderBufferFloat64AtomicAdd ||
-                deviceShaderAtomicFloatFeaturesEXT[0].shaderSharedFloat32Atomics != deviceShaderAtomicFloatFeaturesEXT[1].shaderSharedFloat32Atomics ||
-                deviceShaderAtomicFloatFeaturesEXT[0].shaderSharedFloat32AtomicAdd != deviceShaderAtomicFloatFeaturesEXT[1].shaderSharedFloat32AtomicAdd ||
-                deviceShaderAtomicFloatFeaturesEXT[0].shaderSharedFloat64Atomics != deviceShaderAtomicFloatFeaturesEXT[1].shaderSharedFloat64Atomics ||
-                deviceShaderAtomicFloatFeaturesEXT[0].shaderSharedFloat64AtomicAdd != deviceShaderAtomicFloatFeaturesEXT[1].shaderSharedFloat64AtomicAdd ||
-                deviceShaderAtomicFloatFeaturesEXT[0].shaderImageFloat32Atomics != deviceShaderAtomicFloatFeaturesEXT[1].shaderImageFloat32Atomics ||
-                deviceShaderAtomicFloatFeaturesEXT[0].shaderImageFloat32AtomicAdd != deviceShaderAtomicFloatFeaturesEXT[1].shaderImageFloat32AtomicAdd ||
-                deviceShaderAtomicFloatFeaturesEXT[0].sparseImageFloat32Atomics != deviceShaderAtomicFloatFeaturesEXT[1].sparseImageFloat32Atomics ||
-                deviceShaderAtomicFloatFeaturesEXT[0].sparseImageFloat32AtomicAdd != deviceShaderAtomicFloatFeaturesEXT[1].sparseImageFloat32AtomicAdd))
+               deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+               extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+               extFeatures.pNext = &deviceShaderImageAtomicInt64FeaturesEXT[ndx];
+
+               vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+       }
+
+       if (isShaderImageAtomicInt64FeaturesEXT)
+               log << TestLog::Message << deviceShaderImageAtomicInt64FeaturesEXT[0] << TestLog::EndMessage;
+
+       if (isShaderImageAtomicInt64FeaturesEXT &&
+               (deviceShaderImageAtomicInt64FeaturesEXT[0].shaderImageInt64Atomics != deviceShaderImageAtomicInt64FeaturesEXT[1].shaderImageInt64Atomics ||
+                deviceShaderImageAtomicInt64FeaturesEXT[0].sparseImageInt64Atomics != deviceShaderImageAtomicInt64FeaturesEXT[1].sparseImageInt64Atomics))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderAtomicFloatFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureShaderAtomicFloat2FeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureFragmentShadingRateFeaturesKHR (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1859,45 +2856,36 @@ tcu::TestStatus testPhysicalDeviceFeatureShaderAtomicFloat2FeaturesEXT (Context&
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT   deviceShaderAtomicFloat2FeaturesEXT[count];
-       const bool                                                                              isShaderAtomicFloat2FeaturesEXT = checkExtension(properties, "VK_EXT_shader_atomic_float2");
+       VkPhysicalDeviceFragmentShadingRateFeaturesKHR  deviceFragmentShadingRateFeaturesKHR[count];
+       const bool                                                                              isFragmentShadingRateFeaturesKHR = checkExtension(properties, "VK_KHR_fragment_shading_rate");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceShaderAtomicFloat2FeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT));
-               deviceShaderAtomicFloat2FeaturesEXT[ndx].sType = isShaderAtomicFloat2FeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceShaderAtomicFloat2FeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&deviceFragmentShadingRateFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceFragmentShadingRateFeaturesKHR));
+               deviceFragmentShadingRateFeaturesKHR[ndx].sType = isFragmentShadingRateFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceFragmentShadingRateFeaturesKHR[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceShaderAtomicFloat2FeaturesEXT[ndx];
+               extFeatures.pNext = &deviceFragmentShadingRateFeaturesKHR[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isShaderAtomicFloat2FeaturesEXT)
-               log << TestLog::Message << deviceShaderAtomicFloat2FeaturesEXT[0] << TestLog::EndMessage;
+       if (isFragmentShadingRateFeaturesKHR)
+               log << TestLog::Message << deviceFragmentShadingRateFeaturesKHR[0] << TestLog::EndMessage;
 
-       if (isShaderAtomicFloat2FeaturesEXT &&
-               (deviceShaderAtomicFloat2FeaturesEXT[0].shaderBufferFloat16Atomics != deviceShaderAtomicFloat2FeaturesEXT[1].shaderBufferFloat16Atomics ||
-                deviceShaderAtomicFloat2FeaturesEXT[0].shaderBufferFloat16AtomicAdd != deviceShaderAtomicFloat2FeaturesEXT[1].shaderBufferFloat16AtomicAdd ||
-                deviceShaderAtomicFloat2FeaturesEXT[0].shaderBufferFloat16AtomicMinMax != deviceShaderAtomicFloat2FeaturesEXT[1].shaderBufferFloat16AtomicMinMax ||
-                deviceShaderAtomicFloat2FeaturesEXT[0].shaderBufferFloat32AtomicMinMax != deviceShaderAtomicFloat2FeaturesEXT[1].shaderBufferFloat32AtomicMinMax ||
-                deviceShaderAtomicFloat2FeaturesEXT[0].shaderBufferFloat64AtomicMinMax != deviceShaderAtomicFloat2FeaturesEXT[1].shaderBufferFloat64AtomicMinMax ||
-                deviceShaderAtomicFloat2FeaturesEXT[0].shaderSharedFloat16Atomics != deviceShaderAtomicFloat2FeaturesEXT[1].shaderSharedFloat16Atomics ||
-                deviceShaderAtomicFloat2FeaturesEXT[0].shaderSharedFloat16AtomicAdd != deviceShaderAtomicFloat2FeaturesEXT[1].shaderSharedFloat16AtomicAdd ||
-                deviceShaderAtomicFloat2FeaturesEXT[0].shaderSharedFloat16AtomicMinMax != deviceShaderAtomicFloat2FeaturesEXT[1].shaderSharedFloat16AtomicMinMax ||
-                deviceShaderAtomicFloat2FeaturesEXT[0].shaderSharedFloat32AtomicMinMax != deviceShaderAtomicFloat2FeaturesEXT[1].shaderSharedFloat32AtomicMinMax ||
-                deviceShaderAtomicFloat2FeaturesEXT[0].shaderSharedFloat64AtomicMinMax != deviceShaderAtomicFloat2FeaturesEXT[1].shaderSharedFloat64AtomicMinMax ||
-                deviceShaderAtomicFloat2FeaturesEXT[0].shaderImageFloat32AtomicMinMax != deviceShaderAtomicFloat2FeaturesEXT[1].shaderImageFloat32AtomicMinMax ||
-                deviceShaderAtomicFloat2FeaturesEXT[0].sparseImageFloat32AtomicMinMax != deviceShaderAtomicFloat2FeaturesEXT[1].sparseImageFloat32AtomicMinMax))
+       if (isFragmentShadingRateFeaturesKHR &&
+               (deviceFragmentShadingRateFeaturesKHR[0].pipelineFragmentShadingRate != deviceFragmentShadingRateFeaturesKHR[1].pipelineFragmentShadingRate ||
+                deviceFragmentShadingRateFeaturesKHR[0].primitiveFragmentShadingRate != deviceFragmentShadingRateFeaturesKHR[1].primitiveFragmentShadingRate ||
+                deviceFragmentShadingRateFeaturesKHR[0].attachmentFragmentShadingRate != deviceFragmentShadingRateFeaturesKHR[1].attachmentFragmentShadingRate))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceFragmentShadingRateFeaturesKHR");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureShaderFloat16Int8Features (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureShaderTerminateInvocationFeatures (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1907,35 +2895,34 @@ tcu::TestStatus testPhysicalDeviceFeatureShaderFloat16Int8Features (Context& con
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceShaderFloat16Int8Features       deviceShaderFloat16Int8Features[count];
-       const bool                                                                      isShaderFloat16Int8Features = checkExtension(properties, "VK_KHR_shader_float16_int8") || context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
+       VkPhysicalDeviceShaderTerminateInvocationFeatures       deviceShaderTerminateInvocationFeatures[count];
+       const bool                                                                                      isShaderTerminateInvocationFeatures = context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceShaderFloat16Int8Features[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderFloat16Int8Features));
-               deviceShaderFloat16Int8Features[ndx].sType = isShaderFloat16Int8Features ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceShaderFloat16Int8Features[ndx].pNext = DE_NULL;
+               deMemset(&deviceShaderTerminateInvocationFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderTerminateInvocationFeatures));
+               deviceShaderTerminateInvocationFeatures[ndx].sType = isShaderTerminateInvocationFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceShaderTerminateInvocationFeatures[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceShaderFloat16Int8Features[ndx];
+               extFeatures.pNext = &deviceShaderTerminateInvocationFeatures[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isShaderFloat16Int8Features)
-               log << TestLog::Message << deviceShaderFloat16Int8Features[0] << TestLog::EndMessage;
+       if (isShaderTerminateInvocationFeatures)
+               log << TestLog::Message << deviceShaderTerminateInvocationFeatures[0] << TestLog::EndMessage;
 
-       if (isShaderFloat16Int8Features &&
-               (deviceShaderFloat16Int8Features[0].shaderFloat16 != deviceShaderFloat16Int8Features[1].shaderFloat16 ||
-                deviceShaderFloat16Int8Features[0].shaderInt8 != deviceShaderFloat16Int8Features[1].shaderInt8))
+       if (isShaderTerminateInvocationFeatures &&
+               (deviceShaderTerminateInvocationFeatures[0].shaderTerminateInvocation != deviceShaderTerminateInvocationFeatures[1].shaderTerminateInvocation))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderFloat16Int8Features");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderTerminateInvocationFeatures");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureShaderClockFeaturesKHR (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureImage2DViewOf3DFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1945,35 +2932,35 @@ tcu::TestStatus testPhysicalDeviceFeatureShaderClockFeaturesKHR (Context& contex
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceShaderClockFeaturesKHR  deviceShaderClockFeaturesKHR[count];
-       const bool                                                              isShaderClockFeaturesKHR = checkExtension(properties, "VK_KHR_shader_clock");
+       VkPhysicalDeviceImage2DViewOf3DFeaturesEXT      deviceImage2DViewOf3DFeaturesEXT[count];
+       const bool                                                                      isImage2DViewOf3DFeaturesEXT = checkExtension(properties, "VK_EXT_image_2d_view_of_3d");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceShaderClockFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderClockFeaturesKHR));
-               deviceShaderClockFeaturesKHR[ndx].sType = isShaderClockFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceShaderClockFeaturesKHR[ndx].pNext = DE_NULL;
+               deMemset(&deviceImage2DViewOf3DFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceImage2DViewOf3DFeaturesEXT));
+               deviceImage2DViewOf3DFeaturesEXT[ndx].sType = isImage2DViewOf3DFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceImage2DViewOf3DFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceShaderClockFeaturesKHR[ndx];
+               extFeatures.pNext = &deviceImage2DViewOf3DFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isShaderClockFeaturesKHR)
-               log << TestLog::Message << deviceShaderClockFeaturesKHR[0] << TestLog::EndMessage;
+       if (isImage2DViewOf3DFeaturesEXT)
+               log << TestLog::Message << deviceImage2DViewOf3DFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isShaderClockFeaturesKHR &&
-               (deviceShaderClockFeaturesKHR[0].shaderSubgroupClock != deviceShaderClockFeaturesKHR[1].shaderSubgroupClock ||
-                deviceShaderClockFeaturesKHR[0].shaderDeviceClock != deviceShaderClockFeaturesKHR[1].shaderDeviceClock))
+       if (isImage2DViewOf3DFeaturesEXT &&
+               (deviceImage2DViewOf3DFeaturesEXT[0].image2DViewOf3D != deviceImage2DViewOf3DFeaturesEXT[1].image2DViewOf3D ||
+                deviceImage2DViewOf3DFeaturesEXT[0].sampler2DViewOf3D != deviceImage2DViewOf3DFeaturesEXT[1].sampler2DViewOf3D))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderClockFeaturesKHR");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceImage2DViewOf3DFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureShaderDemoteToHelperInvocationFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureDepthClipControlFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -1983,34 +2970,34 @@ tcu::TestStatus testPhysicalDeviceFeatureShaderDemoteToHelperInvocationFeatures
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures  deviceShaderDemoteToHelperInvocationFeatures[count];
-       const bool                                                                                              isShaderDemoteToHelperInvocationFeatures = checkExtension(properties, "VK_EXT_shader_demote_to_helper_invocation") || context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
+       VkPhysicalDeviceDepthClipControlFeaturesEXT     deviceDepthClipControlFeaturesEXT[count];
+       const bool                                                                      isDepthClipControlFeaturesEXT = checkExtension(properties, "VK_EXT_depth_clip_control");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceShaderDemoteToHelperInvocationFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures));
-               deviceShaderDemoteToHelperInvocationFeatures[ndx].sType = isShaderDemoteToHelperInvocationFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceShaderDemoteToHelperInvocationFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceDepthClipControlFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceDepthClipControlFeaturesEXT));
+               deviceDepthClipControlFeaturesEXT[ndx].sType = isDepthClipControlFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceDepthClipControlFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceShaderDemoteToHelperInvocationFeatures[ndx];
+               extFeatures.pNext = &deviceDepthClipControlFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isShaderDemoteToHelperInvocationFeatures)
-               log << TestLog::Message << deviceShaderDemoteToHelperInvocationFeatures[0] << TestLog::EndMessage;
+       if (isDepthClipControlFeaturesEXT)
+               log << TestLog::Message << deviceDepthClipControlFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isShaderDemoteToHelperInvocationFeatures &&
-               (deviceShaderDemoteToHelperInvocationFeatures[0].shaderDemoteToHelperInvocation != deviceShaderDemoteToHelperInvocationFeatures[1].shaderDemoteToHelperInvocation))
+       if (isDepthClipControlFeaturesEXT &&
+               (deviceDepthClipControlFeaturesEXT[0].depthClipControl != deviceDepthClipControlFeaturesEXT[1].depthClipControl))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceDepthClipControlFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureShaderDrawParametersFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureVertexInputDynamicStateFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -2020,34 +3007,34 @@ tcu::TestStatus testPhysicalDeviceFeatureShaderDrawParametersFeatures (Context&
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceShaderDrawParametersFeatures    deviceShaderDrawParametersFeatures[count];
-       const bool                                                                              isShaderDrawParametersFeatures = context.contextSupports(vk::ApiVersion(0, 1, 1, 0));
+       VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT      deviceVertexInputDynamicStateFeaturesEXT[count];
+       const bool                                                                                      isVertexInputDynamicStateFeaturesEXT = checkExtension(properties, "VK_EXT_vertex_input_dynamic_state");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceShaderDrawParametersFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderDrawParametersFeatures));
-               deviceShaderDrawParametersFeatures[ndx].sType = isShaderDrawParametersFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceShaderDrawParametersFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceVertexInputDynamicStateFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT));
+               deviceVertexInputDynamicStateFeaturesEXT[ndx].sType = isVertexInputDynamicStateFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceVertexInputDynamicStateFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceShaderDrawParametersFeatures[ndx];
+               extFeatures.pNext = &deviceVertexInputDynamicStateFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isShaderDrawParametersFeatures)
-               log << TestLog::Message << deviceShaderDrawParametersFeatures[0] << TestLog::EndMessage;
+       if (isVertexInputDynamicStateFeaturesEXT)
+               log << TestLog::Message << deviceVertexInputDynamicStateFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isShaderDrawParametersFeatures &&
-               (deviceShaderDrawParametersFeatures[0].shaderDrawParameters != deviceShaderDrawParametersFeatures[1].shaderDrawParameters))
+       if (isVertexInputDynamicStateFeaturesEXT &&
+               (deviceVertexInputDynamicStateFeaturesEXT[0].vertexInputDynamicState != deviceVertexInputDynamicStateFeaturesEXT[1].vertexInputDynamicState))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderDrawParametersFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureShaderIntegerDotProductFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureColorWriteEnableFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -2057,34 +3044,34 @@ tcu::TestStatus testPhysicalDeviceFeatureShaderIntegerDotProductFeatures (Contex
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceShaderIntegerDotProductFeatures deviceShaderIntegerDotProductFeatures[count];
-       const bool                                                                              isShaderIntegerDotProductFeatures = checkExtension(properties, "VK_KHR_shader_integer_dot_product") || context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
+       VkPhysicalDeviceColorWriteEnableFeaturesEXT     deviceColorWriteEnableFeaturesEXT[count];
+       const bool                                                                      isColorWriteEnableFeaturesEXT = checkExtension(properties, "VK_EXT_color_write_enable");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceShaderIntegerDotProductFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures));
-               deviceShaderIntegerDotProductFeatures[ndx].sType = isShaderIntegerDotProductFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceShaderIntegerDotProductFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceColorWriteEnableFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceColorWriteEnableFeaturesEXT));
+               deviceColorWriteEnableFeaturesEXT[ndx].sType = isColorWriteEnableFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceColorWriteEnableFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceShaderIntegerDotProductFeatures[ndx];
+               extFeatures.pNext = &deviceColorWriteEnableFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isShaderIntegerDotProductFeatures)
-               log << TestLog::Message << deviceShaderIntegerDotProductFeatures[0] << TestLog::EndMessage;
+       if (isColorWriteEnableFeaturesEXT)
+               log << TestLog::Message << deviceColorWriteEnableFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isShaderIntegerDotProductFeatures &&
-               (deviceShaderIntegerDotProductFeatures[0].shaderIntegerDotProduct != deviceShaderIntegerDotProductFeatures[1].shaderIntegerDotProduct))
+       if (isColorWriteEnableFeaturesEXT &&
+               (deviceColorWriteEnableFeaturesEXT[0].colorWriteEnable != deviceColorWriteEnableFeaturesEXT[1].colorWriteEnable))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderIntegerDotProductFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceColorWriteEnableFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureShaderSubgroupExtendedTypesFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureSynchronization2Features (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -2094,34 +3081,34 @@ tcu::TestStatus testPhysicalDeviceFeatureShaderSubgroupExtendedTypesFeatures (Co
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures     deviceShaderSubgroupExtendedTypesFeatures[count];
-       const bool                                                                                      isShaderSubgroupExtendedTypesFeatures = checkExtension(properties, "VK_KHR_shader_subgroup_extended_types") || context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
+       VkPhysicalDeviceSynchronization2Features        deviceSynchronization2Features[count];
+       const bool                                                                      isSynchronization2Features = context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceShaderSubgroupExtendedTypesFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures));
-               deviceShaderSubgroupExtendedTypesFeatures[ndx].sType = isShaderSubgroupExtendedTypesFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceShaderSubgroupExtendedTypesFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceSynchronization2Features[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceSynchronization2Features));
+               deviceSynchronization2Features[ndx].sType = isSynchronization2Features ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceSynchronization2Features[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceShaderSubgroupExtendedTypesFeatures[ndx];
+               extFeatures.pNext = &deviceSynchronization2Features[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isShaderSubgroupExtendedTypesFeatures)
-               log << TestLog::Message << deviceShaderSubgroupExtendedTypesFeatures[0] << TestLog::EndMessage;
+       if (isSynchronization2Features)
+               log << TestLog::Message << deviceSynchronization2Features[0] << TestLog::EndMessage;
 
-       if (isShaderSubgroupExtendedTypesFeatures &&
-               (deviceShaderSubgroupExtendedTypesFeatures[0].shaderSubgroupExtendedTypes != deviceShaderSubgroupExtendedTypesFeatures[1].shaderSubgroupExtendedTypes))
+       if (isSynchronization2Features &&
+               (deviceSynchronization2Features[0].synchronization2 != deviceSynchronization2Features[1].synchronization2))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceSynchronization2Features");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureShaderTerminateInvocationFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeaturePrimitivesGeneratedQueryFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -2131,34 +3118,36 @@ tcu::TestStatus testPhysicalDeviceFeatureShaderTerminateInvocationFeatures (Cont
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceShaderTerminateInvocationFeatures       deviceShaderTerminateInvocationFeatures[count];
-       const bool                                                                                      isShaderTerminateInvocationFeatures = checkExtension(properties, "VK_KHR_shader_terminate_invocation") || context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
+       VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT     devicePrimitivesGeneratedQueryFeaturesEXT[count];
+       const bool                                                                                      isPrimitivesGeneratedQueryFeaturesEXT = checkExtension(properties, "VK_EXT_primitives_generated_query");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceShaderTerminateInvocationFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderTerminateInvocationFeatures));
-               deviceShaderTerminateInvocationFeatures[ndx].sType = isShaderTerminateInvocationFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceShaderTerminateInvocationFeatures[ndx].pNext = DE_NULL;
+               deMemset(&devicePrimitivesGeneratedQueryFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT));
+               devicePrimitivesGeneratedQueryFeaturesEXT[ndx].sType = isPrimitivesGeneratedQueryFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               devicePrimitivesGeneratedQueryFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceShaderTerminateInvocationFeatures[ndx];
+               extFeatures.pNext = &devicePrimitivesGeneratedQueryFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isShaderTerminateInvocationFeatures)
-               log << TestLog::Message << deviceShaderTerminateInvocationFeatures[0] << TestLog::EndMessage;
+       if (isPrimitivesGeneratedQueryFeaturesEXT)
+               log << TestLog::Message << devicePrimitivesGeneratedQueryFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isShaderTerminateInvocationFeatures &&
-               (deviceShaderTerminateInvocationFeatures[0].shaderTerminateInvocation != deviceShaderTerminateInvocationFeatures[1].shaderTerminateInvocation))
+       if (isPrimitivesGeneratedQueryFeaturesEXT &&
+               (devicePrimitivesGeneratedQueryFeaturesEXT[0].primitivesGeneratedQuery != devicePrimitivesGeneratedQueryFeaturesEXT[1].primitivesGeneratedQuery ||
+                devicePrimitivesGeneratedQueryFeaturesEXT[0].primitivesGeneratedQueryWithRasterizerDiscard != devicePrimitivesGeneratedQueryFeaturesEXT[1].primitivesGeneratedQueryWithRasterizerDiscard ||
+                devicePrimitivesGeneratedQueryFeaturesEXT[0].primitivesGeneratedQueryWithNonZeroStreams != devicePrimitivesGeneratedQueryFeaturesEXT[1].primitivesGeneratedQueryWithNonZeroStreams))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderTerminateInvocationFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureSubgroupSizeControlFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureMultisampledRenderToSingleSampledFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -2168,35 +3157,34 @@ tcu::TestStatus testPhysicalDeviceFeatureSubgroupSizeControlFeatures (Context& c
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceSubgroupSizeControlFeatures     deviceSubgroupSizeControlFeatures[count];
-       const bool                                                                      isSubgroupSizeControlFeatures = checkExtension(properties, "VK_EXT_subgroup_size_control") || context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
+       VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT    deviceMultisampledRenderToSingleSampledFeaturesEXT[count];
+       const bool                                                                                                              isMultisampledRenderToSingleSampledFeaturesEXT = checkExtension(properties, "VK_EXT_multisampled_render_to_single_sampled");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceSubgroupSizeControlFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceSubgroupSizeControlFeatures));
-               deviceSubgroupSizeControlFeatures[ndx].sType = isSubgroupSizeControlFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceSubgroupSizeControlFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceMultisampledRenderToSingleSampledFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT));
+               deviceMultisampledRenderToSingleSampledFeaturesEXT[ndx].sType = isMultisampledRenderToSingleSampledFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceMultisampledRenderToSingleSampledFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceSubgroupSizeControlFeatures[ndx];
+               extFeatures.pNext = &deviceMultisampledRenderToSingleSampledFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isSubgroupSizeControlFeatures)
-               log << TestLog::Message << deviceSubgroupSizeControlFeatures[0] << TestLog::EndMessage;
+       if (isMultisampledRenderToSingleSampledFeaturesEXT)
+               log << TestLog::Message << deviceMultisampledRenderToSingleSampledFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isSubgroupSizeControlFeatures &&
-               (deviceSubgroupSizeControlFeatures[0].subgroupSizeControl != deviceSubgroupSizeControlFeatures[1].subgroupSizeControl ||
-                deviceSubgroupSizeControlFeatures[0].computeFullSubgroups != deviceSubgroupSizeControlFeatures[1].computeFullSubgroups))
+       if (isMultisampledRenderToSingleSampledFeaturesEXT &&
+               (deviceMultisampledRenderToSingleSampledFeaturesEXT[0].multisampledRenderToSingleSampled != deviceMultisampledRenderToSingleSampledFeaturesEXT[1].multisampledRenderToSingleSampled))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceSubgroupSizeControlFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureSynchronization2Features (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureYcbcr2Plane444FormatsFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -2206,34 +3194,34 @@ tcu::TestStatus testPhysicalDeviceFeatureSynchronization2Features (Context& cont
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceSynchronization2Features        deviceSynchronization2Features[count];
-       const bool                                                                      isSynchronization2Features = checkExtension(properties, "VK_KHR_synchronization2") || context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
+       VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT        deviceYcbcr2Plane444FormatsFeaturesEXT[count];
+       const bool                                                                                      isYcbcr2Plane444FormatsFeaturesEXT = checkExtension(properties, "VK_EXT_ycbcr_2plane_444_formats") || context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceSynchronization2Features[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceSynchronization2Features));
-               deviceSynchronization2Features[ndx].sType = isSynchronization2Features ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceSynchronization2Features[ndx].pNext = DE_NULL;
+               deMemset(&deviceYcbcr2Plane444FormatsFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT));
+               deviceYcbcr2Plane444FormatsFeaturesEXT[ndx].sType = isYcbcr2Plane444FormatsFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceYcbcr2Plane444FormatsFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceSynchronization2Features[ndx];
+               extFeatures.pNext = &deviceYcbcr2Plane444FormatsFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isSynchronization2Features)
-               log << TestLog::Message << deviceSynchronization2Features[0] << TestLog::EndMessage;
+       if (isYcbcr2Plane444FormatsFeaturesEXT)
+               log << TestLog::Message << deviceYcbcr2Plane444FormatsFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isSynchronization2Features &&
-               (deviceSynchronization2Features[0].synchronization2 != deviceSynchronization2Features[1].synchronization2))
+       if (isYcbcr2Plane444FormatsFeaturesEXT &&
+               (deviceYcbcr2Plane444FormatsFeaturesEXT[0].ycbcr2plane444Formats != deviceYcbcr2Plane444FormatsFeaturesEXT[1].ycbcr2plane444Formats))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceSynchronization2Features");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureFragmentShaderInterlockFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureProvokingVertexFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -2243,36 +3231,35 @@ tcu::TestStatus testPhysicalDeviceFeatureFragmentShaderInterlockFeaturesEXT (Con
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT      deviceFragmentShaderInterlockFeaturesEXT[count];
-       const bool                                                                                      isFragmentShaderInterlockFeaturesEXT = checkExtension(properties, "VK_EXT_fragment_shader_interlock");
+       VkPhysicalDeviceProvokingVertexFeaturesEXT      deviceProvokingVertexFeaturesEXT[count];
+       const bool                                                                      isProvokingVertexFeaturesEXT = checkExtension(properties, "VK_EXT_provoking_vertex");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceFragmentShaderInterlockFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT));
-               deviceFragmentShaderInterlockFeaturesEXT[ndx].sType = isFragmentShaderInterlockFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceFragmentShaderInterlockFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&deviceProvokingVertexFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT));
+               deviceProvokingVertexFeaturesEXT[ndx].sType = isProvokingVertexFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceProvokingVertexFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceFragmentShaderInterlockFeaturesEXT[ndx];
+               extFeatures.pNext = &deviceProvokingVertexFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isFragmentShaderInterlockFeaturesEXT)
-               log << TestLog::Message << deviceFragmentShaderInterlockFeaturesEXT[0] << TestLog::EndMessage;
+       if (isProvokingVertexFeaturesEXT)
+               log << TestLog::Message << deviceProvokingVertexFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isFragmentShaderInterlockFeaturesEXT &&
-               (deviceFragmentShaderInterlockFeaturesEXT[0].fragmentShaderSampleInterlock != deviceFragmentShaderInterlockFeaturesEXT[1].fragmentShaderSampleInterlock ||
-                deviceFragmentShaderInterlockFeaturesEXT[0].fragmentShaderPixelInterlock != deviceFragmentShaderInterlockFeaturesEXT[1].fragmentShaderPixelInterlock ||
-                deviceFragmentShaderInterlockFeaturesEXT[0].fragmentShaderShadingRateInterlock != deviceFragmentShaderInterlockFeaturesEXT[1].fragmentShaderShadingRateInterlock))
+       if (isProvokingVertexFeaturesEXT &&
+               (deviceProvokingVertexFeaturesEXT[0].provokingVertexLast != deviceProvokingVertexFeaturesEXT[1].provokingVertexLast ||
+                deviceProvokingVertexFeaturesEXT[0].transformFeedbackPreservesProvokingVertex != deviceProvokingVertexFeaturesEXT[1].transformFeedbackPreservesProvokingVertex))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceProvokingVertexFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureTexelBufferAlignmentFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureShaderIntegerDotProductFeatures (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -2282,34 +3269,34 @@ tcu::TestStatus testPhysicalDeviceFeatureTexelBufferAlignmentFeaturesEXT (Contex
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT deviceTexelBufferAlignmentFeaturesEXT[count];
-       const bool                                                                              isTexelBufferAlignmentFeaturesEXT = checkExtension(properties, "VK_EXT_texel_buffer_alignment");
+       VkPhysicalDeviceShaderIntegerDotProductFeatures deviceShaderIntegerDotProductFeatures[count];
+       const bool                                                                              isShaderIntegerDotProductFeatures = context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceTexelBufferAlignmentFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT));
-               deviceTexelBufferAlignmentFeaturesEXT[ndx].sType = isTexelBufferAlignmentFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceTexelBufferAlignmentFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&deviceShaderIntegerDotProductFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures));
+               deviceShaderIntegerDotProductFeatures[ndx].sType = isShaderIntegerDotProductFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceShaderIntegerDotProductFeatures[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceTexelBufferAlignmentFeaturesEXT[ndx];
+               extFeatures.pNext = &deviceShaderIntegerDotProductFeatures[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isTexelBufferAlignmentFeaturesEXT)
-               log << TestLog::Message << deviceTexelBufferAlignmentFeaturesEXT[0] << TestLog::EndMessage;
+       if (isShaderIntegerDotProductFeatures)
+               log << TestLog::Message << deviceShaderIntegerDotProductFeatures[0] << TestLog::EndMessage;
 
-       if (isTexelBufferAlignmentFeaturesEXT &&
-               (deviceTexelBufferAlignmentFeaturesEXT[0].texelBufferAlignment != deviceTexelBufferAlignmentFeaturesEXT[1].texelBufferAlignment))
+       if (isShaderIntegerDotProductFeatures &&
+               (deviceShaderIntegerDotProductFeatures[0].shaderIntegerDotProduct != deviceShaderIntegerDotProductFeatures[1].shaderIntegerDotProduct))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderIntegerDotProductFeatures");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureTextureCompressionASTCHDRFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureFragmentShaderBarycentricFeaturesKHR (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -2319,34 +3306,34 @@ tcu::TestStatus testPhysicalDeviceFeatureTextureCompressionASTCHDRFeatures (Cont
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceTextureCompressionASTCHDRFeatures       deviceTextureCompressionASTCHDRFeatures[count];
-       const bool                                                                                      isTextureCompressionASTCHDRFeatures = checkExtension(properties, "VK_EXT_texture_compression_astc_hdr") || context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
+       VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR    deviceFragmentShaderBarycentricFeaturesKHR[count];
+       const bool                                                                                              isFragmentShaderBarycentricFeaturesKHR = checkExtension(properties, "VK_KHR_fragment_shader_barycentric");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceTextureCompressionASTCHDRFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeatures));
-               deviceTextureCompressionASTCHDRFeatures[ndx].sType = isTextureCompressionASTCHDRFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceTextureCompressionASTCHDRFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceFragmentShaderBarycentricFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR));
+               deviceFragmentShaderBarycentricFeaturesKHR[ndx].sType = isFragmentShaderBarycentricFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceFragmentShaderBarycentricFeaturesKHR[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceTextureCompressionASTCHDRFeatures[ndx];
+               extFeatures.pNext = &deviceFragmentShaderBarycentricFeaturesKHR[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isTextureCompressionASTCHDRFeatures)
-               log << TestLog::Message << deviceTextureCompressionASTCHDRFeatures[0] << TestLog::EndMessage;
+       if (isFragmentShaderBarycentricFeaturesKHR)
+               log << TestLog::Message << deviceFragmentShaderBarycentricFeaturesKHR[0] << TestLog::EndMessage;
 
-       if (isTextureCompressionASTCHDRFeatures &&
-               (deviceTextureCompressionASTCHDRFeatures[0].textureCompressionASTC_HDR != deviceTextureCompressionASTCHDRFeatures[1].textureCompressionASTC_HDR))
+       if (isFragmentShaderBarycentricFeaturesKHR &&
+               (deviceFragmentShaderBarycentricFeaturesKHR[0].fragmentShaderBarycentric != deviceFragmentShaderBarycentricFeaturesKHR[1].fragmentShaderBarycentric))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceTextureCompressionASTCHDRFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureTimelineSemaphoreFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureRGBA10X6FormatsFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -2356,34 +3343,34 @@ tcu::TestStatus testPhysicalDeviceFeatureTimelineSemaphoreFeatures (Context& con
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceTimelineSemaphoreFeatures       deviceTimelineSemaphoreFeatures[count];
-       const bool                                                                      isTimelineSemaphoreFeatures = checkExtension(properties, "VK_KHR_timeline_semaphore") || context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
+       VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT      deviceRGBA10X6FormatsFeaturesEXT[count];
+       const bool                                                                      isRGBA10X6FormatsFeaturesEXT = checkExtension(properties, "VK_EXT_rgba10x6_formats");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceTimelineSemaphoreFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures));
-               deviceTimelineSemaphoreFeatures[ndx].sType = isTimelineSemaphoreFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceTimelineSemaphoreFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceRGBA10X6FormatsFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT));
+               deviceRGBA10X6FormatsFeaturesEXT[ndx].sType = isRGBA10X6FormatsFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceRGBA10X6FormatsFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceTimelineSemaphoreFeatures[ndx];
+               extFeatures.pNext = &deviceRGBA10X6FormatsFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isTimelineSemaphoreFeatures)
-               log << TestLog::Message << deviceTimelineSemaphoreFeatures[0] << TestLog::EndMessage;
+       if (isRGBA10X6FormatsFeaturesEXT)
+               log << TestLog::Message << deviceRGBA10X6FormatsFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isTimelineSemaphoreFeatures &&
-               (deviceTimelineSemaphoreFeatures[0].timelineSemaphore != deviceTimelineSemaphoreFeatures[1].timelineSemaphore))
+       if (isRGBA10X6FormatsFeaturesEXT &&
+               (deviceRGBA10X6FormatsFeaturesEXT[0].formatRgba10x6WithoutYCbCrSampler != deviceRGBA10X6FormatsFeaturesEXT[1].formatRgba10x6WithoutYCbCrSampler))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceTimelineSemaphoreFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureTransformFeedbackFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureDynamicRenderingFeatures (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -2393,35 +3380,34 @@ tcu::TestStatus testPhysicalDeviceFeatureTransformFeedbackFeaturesEXT (Context&
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceTransformFeedbackFeaturesEXT    deviceTransformFeedbackFeaturesEXT[count];
-       const bool                                                                              isTransformFeedbackFeaturesEXT = checkExtension(properties, "VK_EXT_transform_feedback");
+       VkPhysicalDeviceDynamicRenderingFeatures        deviceDynamicRenderingFeatures[count];
+       const bool                                                                      isDynamicRenderingFeatures = context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceTransformFeedbackFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT));
-               deviceTransformFeedbackFeaturesEXT[ndx].sType = isTransformFeedbackFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceTransformFeedbackFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&deviceDynamicRenderingFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceDynamicRenderingFeatures));
+               deviceDynamicRenderingFeatures[ndx].sType = isDynamicRenderingFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceDynamicRenderingFeatures[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceTransformFeedbackFeaturesEXT[ndx];
+               extFeatures.pNext = &deviceDynamicRenderingFeatures[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isTransformFeedbackFeaturesEXT)
-               log << TestLog::Message << deviceTransformFeedbackFeaturesEXT[0] << TestLog::EndMessage;
+       if (isDynamicRenderingFeatures)
+               log << TestLog::Message << deviceDynamicRenderingFeatures[0] << TestLog::EndMessage;
 
-       if (isTransformFeedbackFeaturesEXT &&
-               (deviceTransformFeedbackFeaturesEXT[0].transformFeedback != deviceTransformFeedbackFeaturesEXT[1].transformFeedback ||
-                deviceTransformFeedbackFeaturesEXT[0].geometryStreams != deviceTransformFeedbackFeaturesEXT[1].geometryStreams))
+       if (isDynamicRenderingFeatures &&
+               (deviceDynamicRenderingFeatures[0].dynamicRendering != deviceDynamicRenderingFeatures[1].dynamicRendering))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceTransformFeedbackFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceDynamicRenderingFeatures");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureUniformBufferStandardLayoutFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureImageViewMinLodFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -2431,34 +3417,34 @@ tcu::TestStatus testPhysicalDeviceFeatureUniformBufferStandardLayoutFeatures (Co
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceUniformBufferStandardLayoutFeatures     deviceUniformBufferStandardLayoutFeatures[count];
-       const bool                                                                                      isUniformBufferStandardLayoutFeatures = checkExtension(properties, "VK_KHR_uniform_buffer_standard_layout") || context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
+       VkPhysicalDeviceImageViewMinLodFeaturesEXT      deviceImageViewMinLodFeaturesEXT[count];
+       const bool                                                                      isImageViewMinLodFeaturesEXT = checkExtension(properties, "VK_EXT_image_view_min_lod");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceUniformBufferStandardLayoutFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures));
-               deviceUniformBufferStandardLayoutFeatures[ndx].sType = isUniformBufferStandardLayoutFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceUniformBufferStandardLayoutFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceImageViewMinLodFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceImageViewMinLodFeaturesEXT));
+               deviceImageViewMinLodFeaturesEXT[ndx].sType = isImageViewMinLodFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceImageViewMinLodFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceUniformBufferStandardLayoutFeatures[ndx];
+               extFeatures.pNext = &deviceImageViewMinLodFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isUniformBufferStandardLayoutFeatures)
-               log << TestLog::Message << deviceUniformBufferStandardLayoutFeatures[0] << TestLog::EndMessage;
+       if (isImageViewMinLodFeaturesEXT)
+               log << TestLog::Message << deviceImageViewMinLodFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isUniformBufferStandardLayoutFeatures &&
-               (deviceUniformBufferStandardLayoutFeatures[0].uniformBufferStandardLayout != deviceUniformBufferStandardLayoutFeatures[1].uniformBufferStandardLayout))
+       if (isImageViewMinLodFeaturesEXT &&
+               (deviceImageViewMinLodFeaturesEXT[0].minLod != deviceImageViewMinLodFeaturesEXT[1].minLod))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceUniformBufferStandardLayoutFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceImageViewMinLodFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureWorkgroupMemoryExplicitLayoutFeaturesKHR (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureGraphicsPipelineLibraryFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -2468,37 +3454,34 @@ tcu::TestStatus testPhysicalDeviceFeatureWorkgroupMemoryExplicitLayoutFeaturesKH
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR        deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[count];
-       const bool                                                                                                      isWorkgroupMemoryExplicitLayoutFeaturesKHR = checkExtension(properties, "VK_KHR_workgroup_memory_explicit_layout");
+       VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT      deviceGraphicsPipelineLibraryFeaturesEXT[count];
+       const bool                                                                                      isGraphicsPipelineLibraryFeaturesEXT = checkExtension(properties, "VK_EXT_graphics_pipeline_library");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR));
-               deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[ndx].sType = isWorkgroupMemoryExplicitLayoutFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[ndx].pNext = DE_NULL;
+               deMemset(&deviceGraphicsPipelineLibraryFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT));
+               deviceGraphicsPipelineLibraryFeaturesEXT[ndx].sType = isGraphicsPipelineLibraryFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceGraphicsPipelineLibraryFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[ndx];
+               extFeatures.pNext = &deviceGraphicsPipelineLibraryFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isWorkgroupMemoryExplicitLayoutFeaturesKHR)
-               log << TestLog::Message << deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[0] << TestLog::EndMessage;
+       if (isGraphicsPipelineLibraryFeaturesEXT)
+               log << TestLog::Message << deviceGraphicsPipelineLibraryFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isWorkgroupMemoryExplicitLayoutFeaturesKHR &&
-               (deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[0].workgroupMemoryExplicitLayout != deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[1].workgroupMemoryExplicitLayout ||
-                deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[0].workgroupMemoryExplicitLayoutScalarBlockLayout != deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[1].workgroupMemoryExplicitLayoutScalarBlockLayout ||
-                deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[0].workgroupMemoryExplicitLayout8BitAccess != deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[1].workgroupMemoryExplicitLayout8BitAccess ||
-                deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[0].workgroupMemoryExplicitLayout16BitAccess != deviceWorkgroupMemoryExplicitLayoutFeaturesKHR[1].workgroupMemoryExplicitLayout16BitAccess))
+       if (isGraphicsPipelineLibraryFeaturesEXT &&
+               (deviceGraphicsPipelineLibraryFeaturesEXT[0].graphicsPipelineLibrary != deviceGraphicsPipelineLibraryFeaturesEXT[1].graphicsPipelineLibrary))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureVariablePointersFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureShaderModuleIdentifierFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -2508,35 +3491,34 @@ tcu::TestStatus testPhysicalDeviceFeatureVariablePointersFeatures (Context& cont
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceVariablePointersFeatures        deviceVariablePointersFeatures[count];
-       const bool                                                                      isVariablePointersFeatures = checkExtension(properties, "VK_KHR_variable_pointers") || context.contextSupports(vk::ApiVersion(0, 1, 1, 0));
+       VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT       deviceShaderModuleIdentifierFeaturesEXT[count];
+       const bool                                                                                      isShaderModuleIdentifierFeaturesEXT = checkExtension(properties, "VK_EXT_shader_module_identifier");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceVariablePointersFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceVariablePointersFeatures));
-               deviceVariablePointersFeatures[ndx].sType = isVariablePointersFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceVariablePointersFeatures[ndx].pNext = DE_NULL;
+               deMemset(&deviceShaderModuleIdentifierFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT));
+               deviceShaderModuleIdentifierFeaturesEXT[ndx].sType = isShaderModuleIdentifierFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceShaderModuleIdentifierFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceVariablePointersFeatures[ndx];
+               extFeatures.pNext = &deviceShaderModuleIdentifierFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isVariablePointersFeatures)
-               log << TestLog::Message << deviceVariablePointersFeatures[0] << TestLog::EndMessage;
+       if (isShaderModuleIdentifierFeaturesEXT)
+               log << TestLog::Message << deviceShaderModuleIdentifierFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isVariablePointersFeatures &&
-               (deviceVariablePointersFeatures[0].variablePointersStorageBuffer != deviceVariablePointersFeatures[1].variablePointersStorageBuffer ||
-                deviceVariablePointersFeatures[0].variablePointers != deviceVariablePointersFeatures[1].variablePointers))
+       if (isShaderModuleIdentifierFeaturesEXT &&
+               (deviceShaderModuleIdentifierFeaturesEXT[0].shaderModuleIdentifier != deviceShaderModuleIdentifierFeaturesEXT[1].shaderModuleIdentifier))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceVariablePointersFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureVertexAttributeDivisorFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureImageCompressionControlFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -2546,35 +3528,34 @@ tcu::TestStatus testPhysicalDeviceFeatureVertexAttributeDivisorFeaturesEXT (Cont
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT       deviceVertexAttributeDivisorFeaturesEXT[count];
-       const bool                                                                                      isVertexAttributeDivisorFeaturesEXT = checkExtension(properties, "VK_EXT_vertex_attribute_divisor");
+       VkPhysicalDeviceImageCompressionControlFeaturesEXT      deviceImageCompressionControlFeaturesEXT[count];
+       const bool                                                                                      isImageCompressionControlFeaturesEXT = checkExtension(properties, "VK_EXT_image_compression_control");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceVertexAttributeDivisorFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT));
-               deviceVertexAttributeDivisorFeaturesEXT[ndx].sType = isVertexAttributeDivisorFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceVertexAttributeDivisorFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&deviceImageCompressionControlFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceImageCompressionControlFeaturesEXT));
+               deviceImageCompressionControlFeaturesEXT[ndx].sType = isImageCompressionControlFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceImageCompressionControlFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceVertexAttributeDivisorFeaturesEXT[ndx];
+               extFeatures.pNext = &deviceImageCompressionControlFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isVertexAttributeDivisorFeaturesEXT)
-               log << TestLog::Message << deviceVertexAttributeDivisorFeaturesEXT[0] << TestLog::EndMessage;
+       if (isImageCompressionControlFeaturesEXT)
+               log << TestLog::Message << deviceImageCompressionControlFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isVertexAttributeDivisorFeaturesEXT &&
-               (deviceVertexAttributeDivisorFeaturesEXT[0].vertexAttributeInstanceRateDivisor != deviceVertexAttributeDivisorFeaturesEXT[1].vertexAttributeInstanceRateDivisor ||
-                deviceVertexAttributeDivisorFeaturesEXT[0].vertexAttributeInstanceRateZeroDivisor != deviceVertexAttributeDivisorFeaturesEXT[1].vertexAttributeInstanceRateZeroDivisor))
+       if (isImageCompressionControlFeaturesEXT &&
+               (deviceImageCompressionControlFeaturesEXT[0].imageCompressionControl != deviceImageCompressionControlFeaturesEXT[1].imageCompressionControl))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceImageCompressionControlFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureVertexInputDynamicStateFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureImageCompressionControlSwapchainFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -2584,34 +3565,34 @@ tcu::TestStatus testPhysicalDeviceFeatureVertexInputDynamicStateFeaturesEXT (Con
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT      deviceVertexInputDynamicStateFeaturesEXT[count];
-       const bool                                                                                      isVertexInputDynamicStateFeaturesEXT = checkExtension(properties, "VK_EXT_vertex_input_dynamic_state");
+       VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT     deviceImageCompressionControlSwapchainFeaturesEXT[count];
+       const bool                                                                                                      isImageCompressionControlSwapchainFeaturesEXT = checkExtension(properties, "VK_EXT_image_compression_control_swapchain");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceVertexInputDynamicStateFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT));
-               deviceVertexInputDynamicStateFeaturesEXT[ndx].sType = isVertexInputDynamicStateFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceVertexInputDynamicStateFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&deviceImageCompressionControlSwapchainFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT));
+               deviceImageCompressionControlSwapchainFeaturesEXT[ndx].sType = isImageCompressionControlSwapchainFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceImageCompressionControlSwapchainFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceVertexInputDynamicStateFeaturesEXT[ndx];
+               extFeatures.pNext = &deviceImageCompressionControlSwapchainFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isVertexInputDynamicStateFeaturesEXT)
-               log << TestLog::Message << deviceVertexInputDynamicStateFeaturesEXT[0] << TestLog::EndMessage;
+       if (isImageCompressionControlSwapchainFeaturesEXT)
+               log << TestLog::Message << deviceImageCompressionControlSwapchainFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isVertexInputDynamicStateFeaturesEXT &&
-               (deviceVertexInputDynamicStateFeaturesEXT[0].vertexInputDynamicState != deviceVertexInputDynamicStateFeaturesEXT[1].vertexInputDynamicState))
+       if (isImageCompressionControlSwapchainFeaturesEXT &&
+               (deviceImageCompressionControlSwapchainFeaturesEXT[0].imageCompressionControlSwapchain != deviceImageCompressionControlSwapchainFeaturesEXT[1].imageCompressionControlSwapchain))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureVulkanMemoryModelFeaturesKHR (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureSubpassMergeFeedbackFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -2621,36 +3602,34 @@ tcu::TestStatus testPhysicalDeviceFeatureVulkanMemoryModelFeaturesKHR (Context&
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceVulkanMemoryModelFeaturesKHR    deviceVulkanMemoryModelFeaturesKHR[count];
-       const bool                                                                              isVulkanMemoryModelFeaturesKHR = context.contextSupports(vk::ApiVersion(0, 1, 2, 0));
+       VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT deviceSubpassMergeFeedbackFeaturesEXT[count];
+       const bool                                                                              isSubpassMergeFeedbackFeaturesEXT = checkExtension(properties, "VK_EXT_subpass_merge_feedback");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceVulkanMemoryModelFeaturesKHR[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceVulkanMemoryModelFeaturesKHR));
-               deviceVulkanMemoryModelFeaturesKHR[ndx].sType = isVulkanMemoryModelFeaturesKHR ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceVulkanMemoryModelFeaturesKHR[ndx].pNext = DE_NULL;
+               deMemset(&deviceSubpassMergeFeedbackFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT));
+               deviceSubpassMergeFeedbackFeaturesEXT[ndx].sType = isSubpassMergeFeedbackFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceSubpassMergeFeedbackFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceVulkanMemoryModelFeaturesKHR[ndx];
+               extFeatures.pNext = &deviceSubpassMergeFeedbackFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isVulkanMemoryModelFeaturesKHR)
-               log << TestLog::Message << deviceVulkanMemoryModelFeaturesKHR[0] << TestLog::EndMessage;
+       if (isSubpassMergeFeedbackFeaturesEXT)
+               log << TestLog::Message << deviceSubpassMergeFeedbackFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isVulkanMemoryModelFeaturesKHR &&
-               (deviceVulkanMemoryModelFeaturesKHR[0].vulkanMemoryModel != deviceVulkanMemoryModelFeaturesKHR[1].vulkanMemoryModel ||
-                deviceVulkanMemoryModelFeaturesKHR[0].vulkanMemoryModelDeviceScope != deviceVulkanMemoryModelFeaturesKHR[1].vulkanMemoryModelDeviceScope ||
-                deviceVulkanMemoryModelFeaturesKHR[0].vulkanMemoryModelAvailabilityVisibilityChains != deviceVulkanMemoryModelFeaturesKHR[1].vulkanMemoryModelAvailabilityVisibilityChains))
+       if (isSubpassMergeFeedbackFeaturesEXT &&
+               (deviceSubpassMergeFeedbackFeaturesEXT[0].subpassMergeFeedback != deviceSubpassMergeFeedbackFeaturesEXT[1].subpassMergeFeedback))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceVulkanMemoryModelFeaturesKHR");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureYcbcrImageArraysFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeaturePipelinePropertiesFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -2660,34 +3639,34 @@ tcu::TestStatus testPhysicalDeviceFeatureYcbcrImageArraysFeaturesEXT (Context& c
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceYcbcrImageArraysFeaturesEXT     deviceYcbcrImageArraysFeaturesEXT[count];
-       const bool                                                                      isYcbcrImageArraysFeaturesEXT = checkExtension(properties, "VK_EXT_ycbcr_image_arrays");
+       VkPhysicalDevicePipelinePropertiesFeaturesEXT   devicePipelinePropertiesFeaturesEXT[count];
+       const bool                                                                              isPipelinePropertiesFeaturesEXT = checkExtension(properties, "VK_EXT_pipeline_properties");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceYcbcrImageArraysFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT));
-               deviceYcbcrImageArraysFeaturesEXT[ndx].sType = isYcbcrImageArraysFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceYcbcrImageArraysFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&devicePipelinePropertiesFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDevicePipelinePropertiesFeaturesEXT));
+               devicePipelinePropertiesFeaturesEXT[ndx].sType = isPipelinePropertiesFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               devicePipelinePropertiesFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceYcbcrImageArraysFeaturesEXT[ndx];
+               extFeatures.pNext = &devicePipelinePropertiesFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isYcbcrImageArraysFeaturesEXT)
-               log << TestLog::Message << deviceYcbcrImageArraysFeaturesEXT[0] << TestLog::EndMessage;
+       if (isPipelinePropertiesFeaturesEXT)
+               log << TestLog::Message << devicePipelinePropertiesFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isYcbcrImageArraysFeaturesEXT &&
-               (deviceYcbcrImageArraysFeaturesEXT[0].ycbcrImageArrays != deviceYcbcrImageArraysFeaturesEXT[1].ycbcrImageArrays))
+       if (isPipelinePropertiesFeaturesEXT &&
+               (devicePipelinePropertiesFeaturesEXT[0].pipelinePropertiesIdentifier != devicePipelinePropertiesFeaturesEXT[1].pipelinePropertiesIdentifier))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceYcbcrImageArraysFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDevicePipelinePropertiesFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureYcbcr2Plane444FormatsFeaturesEXT (Context& context)
+tcu::TestStatus testPhysicalDeviceFeatureNonSeamlessCubeMapFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -2697,34 +3676,34 @@ tcu::TestStatus testPhysicalDeviceFeatureYcbcr2Plane444FormatsFeaturesEXT (Conte
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT        deviceYcbcr2Plane444FormatsFeaturesEXT[count];
-       const bool                                                                                      isYcbcr2Plane444FormatsFeaturesEXT = checkExtension(properties, "VK_EXT_ycbcr_2plane_444_formats");
+       VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT   deviceNonSeamlessCubeMapFeaturesEXT[count];
+       const bool                                                                              isNonSeamlessCubeMapFeaturesEXT = checkExtension(properties, "VK_EXT_non_seamless_cube_map");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceYcbcr2Plane444FormatsFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT));
-               deviceYcbcr2Plane444FormatsFeaturesEXT[ndx].sType = isYcbcr2Plane444FormatsFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceYcbcr2Plane444FormatsFeaturesEXT[ndx].pNext = DE_NULL;
+               deMemset(&deviceNonSeamlessCubeMapFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT));
+               deviceNonSeamlessCubeMapFeaturesEXT[ndx].sType = isNonSeamlessCubeMapFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               deviceNonSeamlessCubeMapFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceYcbcr2Plane444FormatsFeaturesEXT[ndx];
+               extFeatures.pNext = &deviceNonSeamlessCubeMapFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isYcbcr2Plane444FormatsFeaturesEXT)
-               log << TestLog::Message << deviceYcbcr2Plane444FormatsFeaturesEXT[0] << TestLog::EndMessage;
+       if (isNonSeamlessCubeMapFeaturesEXT)
+               log << TestLog::Message << deviceNonSeamlessCubeMapFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isYcbcr2Plane444FormatsFeaturesEXT &&
-               (deviceYcbcr2Plane444FormatsFeaturesEXT[0].ycbcr2plane444Formats != deviceYcbcr2Plane444FormatsFeaturesEXT[1].ycbcr2plane444Formats))
+       if (isNonSeamlessCubeMapFeaturesEXT &&
+               (deviceNonSeamlessCubeMapFeaturesEXT[0].nonSeamlessCubeMap != deviceNonSeamlessCubeMapFeaturesEXT[1].nonSeamlessCubeMap))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT");
+               TCU_FAIL("Mismatch between VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
 
-tcu::TestStatus testPhysicalDeviceFeatureZeroInitializeWorkgroupMemoryFeatures (Context& context)
+tcu::TestStatus testPhysicalDeviceFeaturePipelineRobustnessFeaturesEXT (Context& context)
 {
        const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
        const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
@@ -2734,29 +3713,29 @@ tcu::TestStatus testPhysicalDeviceFeatureZeroInitializeWorkgroupMemoryFeatures (
        VkPhysicalDeviceFeatures2       extFeatures;
        vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
 
-       VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures   deviceZeroInitializeWorkgroupMemoryFeatures[count];
-       const bool                                                                                              isZeroInitializeWorkgroupMemoryFeatures = checkExtension(properties, "VK_KHR_zero_initialize_workgroup_memory") || context.contextSupports(vk::ApiVersion(0, 1, 3, 0));
+       VkPhysicalDevicePipelineRobustnessFeaturesEXT   devicePipelineRobustnessFeaturesEXT[count];
+       const bool                                                                              isPipelineRobustnessFeaturesEXT = checkExtension(properties, "VK_EXT_pipeline_robustness");
 
        for (int ndx = 0; ndx < count; ++ndx)
        {
-               deMemset(&deviceZeroInitializeWorkgroupMemoryFeatures[ndx], 0xFF * ndx, sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures));
-               deviceZeroInitializeWorkgroupMemoryFeatures[ndx].sType = isZeroInitializeWorkgroupMemoryFeatures ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES : VK_STRUCTURE_TYPE_MAX_ENUM;
-               deviceZeroInitializeWorkgroupMemoryFeatures[ndx].pNext = DE_NULL;
+               deMemset(&devicePipelineRobustnessFeaturesEXT[ndx], 0xFF * ndx, sizeof(VkPhysicalDevicePipelineRobustnessFeaturesEXT));
+               devicePipelineRobustnessFeaturesEXT[ndx].sType = isPipelineRobustnessFeaturesEXT ? VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT : VK_STRUCTURE_TYPE_MAX_ENUM;
+               devicePipelineRobustnessFeaturesEXT[ndx].pNext = DE_NULL;
 
                deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
                extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-               extFeatures.pNext = &deviceZeroInitializeWorkgroupMemoryFeatures[ndx];
+               extFeatures.pNext = &devicePipelineRobustnessFeaturesEXT[ndx];
 
                vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
        }
 
-       if (isZeroInitializeWorkgroupMemoryFeatures)
-               log << TestLog::Message << deviceZeroInitializeWorkgroupMemoryFeatures[0] << TestLog::EndMessage;
+       if (isPipelineRobustnessFeaturesEXT)
+               log << TestLog::Message << devicePipelineRobustnessFeaturesEXT[0] << TestLog::EndMessage;
 
-       if (isZeroInitializeWorkgroupMemoryFeatures &&
-               (deviceZeroInitializeWorkgroupMemoryFeatures[0].shaderZeroInitializeWorkgroupMemory != deviceZeroInitializeWorkgroupMemoryFeatures[1].shaderZeroInitializeWorkgroupMemory))
+       if (isPipelineRobustnessFeaturesEXT &&
+               (devicePipelineRobustnessFeaturesEXT[0].pipelineRobustness != devicePipelineRobustnessFeaturesEXT[1].pipelineRobustness))
        {
-               TCU_FAIL("Mismatch between VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures");
+               TCU_FAIL("Mismatch between VkPhysicalDevicePipelineRobustnessFeaturesEXT");
        }
        return tcu::TestStatus::pass("Querying succeeded");
 }
@@ -2765,77 +3744,101 @@ tcu::TestStatus testPhysicalDeviceFeatureZeroInitializeWorkgroupMemoryFeatures (
 void addSeparateFeatureTests (tcu::TestCaseGroup* testGroup)
 {
 
-       addFunctionCase(testGroup, "4444_formats_features_ext", "VkPhysicalDevice4444FormatsFeaturesEXT", testPhysicalDeviceFeature4444FormatsFeaturesEXT);
-       addFunctionCase(testGroup, "8_bit_storage_features", "VkPhysicalDevice8BitStorageFeatures", testPhysicalDeviceFeature8BitStorageFeatures);
+       addFunctionCase(testGroup, "private_data_features", "VkPhysicalDevicePrivateDataFeatures", testPhysicalDeviceFeaturePrivateDataFeatures);
+       addFunctionCase(testGroup, "variable_pointers_features", "VkPhysicalDeviceVariablePointersFeatures", testPhysicalDeviceFeatureVariablePointersFeatures);
+       addFunctionCase(testGroup, "multiview_features", "VkPhysicalDeviceMultiviewFeatures", testPhysicalDeviceFeatureMultiviewFeatures);
+       addFunctionCase(testGroup, "present_id_features_khr", "VkPhysicalDevicePresentIdFeaturesKHR", testPhysicalDeviceFeaturePresentIdFeaturesKHR);
+       addFunctionCase(testGroup, "present_wait_features_khr", "VkPhysicalDevicePresentWaitFeaturesKHR", testPhysicalDeviceFeaturePresentWaitFeaturesKHR);
        addFunctionCase(testGroup, "16_bit_storage_features", "VkPhysicalDevice16BitStorageFeatures", testPhysicalDeviceFeature16BitStorageFeatures);
-       addFunctionCase(testGroup, "acceleration_structure_features_khr", "VkPhysicalDeviceAccelerationStructureFeaturesKHR", testPhysicalDeviceFeatureAccelerationStructureFeaturesKHR);
-       addFunctionCase(testGroup, "astc_decode_features_ext", "VkPhysicalDeviceASTCDecodeFeaturesEXT", testPhysicalDeviceFeatureASTCDecodeFeaturesEXT);
+       addFunctionCase(testGroup, "shader_subgroup_extended_types_features", "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures", testPhysicalDeviceFeatureShaderSubgroupExtendedTypesFeatures);
+       addFunctionCase(testGroup, "sampler_ycbcr_conversion_features", "VkPhysicalDeviceSamplerYcbcrConversionFeatures", testPhysicalDeviceFeatureSamplerYcbcrConversionFeatures);
+       addFunctionCase(testGroup, "protected_memory_features", "VkPhysicalDeviceProtectedMemoryFeatures", testPhysicalDeviceFeatureProtectedMemoryFeatures);
        addFunctionCase(testGroup, "blend_operation_advanced_features_ext", "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT", testPhysicalDeviceFeatureBlendOperationAdvancedFeaturesEXT);
-       addFunctionCase(testGroup, "buffer_device_address_features_ext", "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT", testPhysicalDeviceFeatureBufferDeviceAddressFeaturesEXT);
-       addFunctionCase(testGroup, "buffer_device_address_features", "VkPhysicalDeviceBufferDeviceAddressFeatures", testPhysicalDeviceFeatureBufferDeviceAddressFeatures);
-       addFunctionCase(testGroup, "conditional_rendering_features_ext", "VkPhysicalDeviceConditionalRenderingFeaturesEXT", testPhysicalDeviceFeatureConditionalRenderingFeaturesEXT);
-       addFunctionCase(testGroup, "custom_border_color_features_ext", "VkPhysicalDeviceCustomBorderColorFeaturesEXT", testPhysicalDeviceFeatureCustomBorderColorFeaturesEXT);
-       addFunctionCase(testGroup, "color_write_enable_features_ext", "VkPhysicalDeviceColorWriteEnableFeaturesEXT", testPhysicalDeviceFeatureColorWriteEnableFeaturesEXT);
-       addFunctionCase(testGroup, "descriptor_indexing_features", "VkPhysicalDeviceDescriptorIndexingFeatures", testPhysicalDeviceFeatureDescriptorIndexingFeatures);
-       addFunctionCase(testGroup, "depth_clip_enable_features_ext", "VkPhysicalDeviceDepthClipEnableFeaturesEXT", testPhysicalDeviceFeatureDepthClipEnableFeaturesEXT);
-       addFunctionCase(testGroup, "dynamic_rendering_features", "VkPhysicalDeviceDynamicRenderingFeatures", testPhysicalDeviceFeatureDynamicRenderingFeatures);
-       addFunctionCase(testGroup, "extended_dynamic_state_features_ext", "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT", testPhysicalDeviceFeatureExtendedDynamicStateFeaturesEXT);
-       addFunctionCase(testGroup, "extended_dynamic_state2_features_ext", "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT", testPhysicalDeviceFeatureExtendedDynamicState2FeaturesEXT);
-       addFunctionCase(testGroup, "fragment_density_map_features_ext", "VkPhysicalDeviceFragmentDensityMapFeaturesEXT", testPhysicalDeviceFeatureFragmentDensityMapFeaturesEXT);
-       addFunctionCase(testGroup, "fragment_density_map2_features_ext", "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT", testPhysicalDeviceFeatureFragmentDensityMap2FeaturesEXT);
-       addFunctionCase(testGroup, "fragment_shading_rate_features_khr", "VkPhysicalDeviceFragmentShadingRateFeaturesKHR", testPhysicalDeviceFeatureFragmentShadingRateFeaturesKHR);
-       addFunctionCase(testGroup, "global_priority_query_features_khr", "VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR", testPhysicalDeviceFeatureGlobalPriorityQueryFeaturesKHR);
+       addFunctionCase(testGroup, "multi_draw_features_ext", "VkPhysicalDeviceMultiDrawFeaturesEXT", testPhysicalDeviceFeatureMultiDrawFeaturesEXT);
        addFunctionCase(testGroup, "inline_uniform_block_features", "VkPhysicalDeviceInlineUniformBlockFeatures", testPhysicalDeviceFeatureInlineUniformBlockFeatures);
-       addFunctionCase(testGroup, "index_type_uint8_features_ext", "VkPhysicalDeviceIndexTypeUint8FeaturesEXT", testPhysicalDeviceFeatureIndexTypeUint8FeaturesEXT);
-       addFunctionCase(testGroup, "imageless_framebuffer_features", "VkPhysicalDeviceImagelessFramebufferFeatures", testPhysicalDeviceFeatureImagelessFramebufferFeatures);
-       addFunctionCase(testGroup, "image_robustness_features", "VkPhysicalDeviceImageRobustnessFeatures", testPhysicalDeviceFeatureImageRobustnessFeatures);
-       addFunctionCase(testGroup, "host_query_reset_features", "VkPhysicalDeviceHostQueryResetFeatures", testPhysicalDeviceFeatureHostQueryResetFeatures);
-       addFunctionCase(testGroup, "line_rasterization_features_ext", "VkPhysicalDeviceLineRasterizationFeaturesEXT", testPhysicalDeviceFeatureLineRasterizationFeaturesEXT);
        addFunctionCase(testGroup, "maintenance4_features", "VkPhysicalDeviceMaintenance4Features", testPhysicalDeviceFeatureMaintenance4Features);
-       addFunctionCase(testGroup, "multiview_features", "VkPhysicalDeviceMultiviewFeatures", testPhysicalDeviceFeatureMultiviewFeatures);
-       addFunctionCase(testGroup, "multi_draw_features_ext", "VkPhysicalDeviceMultiDrawFeaturesEXT", testPhysicalDeviceFeatureMultiDrawFeaturesEXT);
-       addFunctionCase(testGroup, "memory_priority_features_ext", "VkPhysicalDeviceMemoryPriorityFeaturesEXT", testPhysicalDeviceFeatureMemoryPriorityFeaturesEXT);
+       addFunctionCase(testGroup, "shader_draw_parameters_features", "VkPhysicalDeviceShaderDrawParametersFeatures", testPhysicalDeviceFeatureShaderDrawParametersFeatures);
+       addFunctionCase(testGroup, "shader_float16_int8_features", "VkPhysicalDeviceShaderFloat16Int8Features", testPhysicalDeviceFeatureShaderFloat16Int8Features);
+       addFunctionCase(testGroup, "host_query_reset_features", "VkPhysicalDeviceHostQueryResetFeatures", testPhysicalDeviceFeatureHostQueryResetFeatures);
+       addFunctionCase(testGroup, "global_priority_query_features_khr", "VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR", testPhysicalDeviceFeatureGlobalPriorityQueryFeaturesKHR);
        addFunctionCase(testGroup, "device_memory_report_features_ext", "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT", testPhysicalDeviceFeatureDeviceMemoryReportFeaturesEXT);
-       addFunctionCase(testGroup, "performance_query_features_khr", "VkPhysicalDevicePerformanceQueryFeaturesKHR", testPhysicalDeviceFeaturePerformanceQueryFeaturesKHR);
-       addFunctionCase(testGroup, "pipeline_creation_cache_control_features", "VkPhysicalDevicePipelineCreationCacheControlFeatures", testPhysicalDeviceFeaturePipelineCreationCacheControlFeatures);
-       addFunctionCase(testGroup, "pipeline_executable_properties_features_khr", "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR", testPhysicalDeviceFeaturePipelineExecutablePropertiesFeaturesKHR);
-       addFunctionCase(testGroup, "present_id_features_khr", "VkPhysicalDevicePresentIdFeaturesKHR", testPhysicalDeviceFeaturePresentIdFeaturesKHR);
-       addFunctionCase(testGroup, "present_wait_features_khr", "VkPhysicalDevicePresentWaitFeaturesKHR", testPhysicalDeviceFeaturePresentWaitFeaturesKHR);
-       addFunctionCase(testGroup, "protected_memory_features", "VkPhysicalDeviceProtectedMemoryFeatures", testPhysicalDeviceFeatureProtectedMemoryFeatures);
-       addFunctionCase(testGroup, "provoking_vertex_features_ext", "VkPhysicalDeviceProvokingVertexFeaturesEXT", testPhysicalDeviceFeatureProvokingVertexFeaturesEXT);
-       addFunctionCase(testGroup, "primitive_topology_list_restart_features_ext", "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT", testPhysicalDeviceFeaturePrimitiveTopologyListRestartFeaturesEXT);
-       addFunctionCase(testGroup, "private_data_features", "VkPhysicalDevicePrivateDataFeatures", testPhysicalDeviceFeaturePrivateDataFeatures);
-       addFunctionCase(testGroup, "ray_tracing_pipeline_features_khr", "VkPhysicalDeviceRayTracingPipelineFeaturesKHR", testPhysicalDeviceFeatureRayTracingPipelineFeaturesKHR);
-       addFunctionCase(testGroup, "ray_query_features_khr", "VkPhysicalDeviceRayQueryFeaturesKHR", testPhysicalDeviceFeatureRayQueryFeaturesKHR);
-       addFunctionCase(testGroup, "robustness2_features_ext", "VkPhysicalDeviceRobustness2FeaturesEXT", testPhysicalDeviceFeatureRobustness2FeaturesEXT);
-       addFunctionCase(testGroup, "sampler_ycbcr_conversion_features", "VkPhysicalDeviceSamplerYcbcrConversionFeatures", testPhysicalDeviceFeatureSamplerYcbcrConversionFeatures);
-       addFunctionCase(testGroup, "scalar_block_layout_features", "VkPhysicalDeviceScalarBlockLayoutFeatures", testPhysicalDeviceFeatureScalarBlockLayoutFeatures);
-       addFunctionCase(testGroup, "separate_depth_stencil_layouts_features", "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures", testPhysicalDeviceFeatureSeparateDepthStencilLayoutsFeatures);
+       addFunctionCase(testGroup, "descriptor_indexing_features", "VkPhysicalDeviceDescriptorIndexingFeatures", testPhysicalDeviceFeatureDescriptorIndexingFeatures);
+       addFunctionCase(testGroup, "timeline_semaphore_features", "VkPhysicalDeviceTimelineSemaphoreFeatures", testPhysicalDeviceFeatureTimelineSemaphoreFeatures);
+       addFunctionCase(testGroup, "8_bit_storage_features", "VkPhysicalDevice8BitStorageFeatures", testPhysicalDeviceFeature8BitStorageFeatures);
+       addFunctionCase(testGroup, "conditional_rendering_features_ext", "VkPhysicalDeviceConditionalRenderingFeaturesEXT", testPhysicalDeviceFeatureConditionalRenderingFeaturesEXT);
+       addFunctionCase(testGroup, "vulkan_memory_model_features", "VkPhysicalDeviceVulkanMemoryModelFeatures", testPhysicalDeviceFeatureVulkanMemoryModelFeatures);
        addFunctionCase(testGroup, "shader_atomic_int64_features", "VkPhysicalDeviceShaderAtomicInt64Features", testPhysicalDeviceFeatureShaderAtomicInt64Features);
        addFunctionCase(testGroup, "shader_atomic_float_features_ext", "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT", testPhysicalDeviceFeatureShaderAtomicFloatFeaturesEXT);
        addFunctionCase(testGroup, "shader_atomic_float2_features_ext", "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT", testPhysicalDeviceFeatureShaderAtomicFloat2FeaturesEXT);
-       addFunctionCase(testGroup, "shader_float16_int8_features", "VkPhysicalDeviceShaderFloat16Int8Features", testPhysicalDeviceFeatureShaderFloat16Int8Features);
+       addFunctionCase(testGroup, "vertex_attribute_divisor_features_ext", "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT", testPhysicalDeviceFeatureVertexAttributeDivisorFeaturesEXT);
+       addFunctionCase(testGroup, "astc_decode_features_ext", "VkPhysicalDeviceASTCDecodeFeaturesEXT", testPhysicalDeviceFeatureASTCDecodeFeaturesEXT);
+       addFunctionCase(testGroup, "transform_feedback_features_ext", "VkPhysicalDeviceTransformFeedbackFeaturesEXT", testPhysicalDeviceFeatureTransformFeedbackFeaturesEXT);
+       addFunctionCase(testGroup, "acceleration_structure_features_khr", "VkPhysicalDeviceAccelerationStructureFeaturesKHR", testPhysicalDeviceFeatureAccelerationStructureFeaturesKHR);
+       addFunctionCase(testGroup, "ray_tracing_pipeline_features_khr", "VkPhysicalDeviceRayTracingPipelineFeaturesKHR", testPhysicalDeviceFeatureRayTracingPipelineFeaturesKHR);
+       addFunctionCase(testGroup, "ray_query_features_khr", "VkPhysicalDeviceRayQueryFeaturesKHR", testPhysicalDeviceFeatureRayQueryFeaturesKHR);
+       addFunctionCase(testGroup, "ray_tracing_maintenance1_features_khr", "VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR", testPhysicalDeviceFeatureRayTracingMaintenance1FeaturesKHR);
+       addFunctionCase(testGroup, "fragment_density_map_features_ext", "VkPhysicalDeviceFragmentDensityMapFeaturesEXT", testPhysicalDeviceFeatureFragmentDensityMapFeaturesEXT);
+       addFunctionCase(testGroup, "fragment_density_map2_features_ext", "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT", testPhysicalDeviceFeatureFragmentDensityMap2FeaturesEXT);
+       addFunctionCase(testGroup, "scalar_block_layout_features", "VkPhysicalDeviceScalarBlockLayoutFeatures", testPhysicalDeviceFeatureScalarBlockLayoutFeatures);
+       addFunctionCase(testGroup, "uniform_buffer_standard_layout_features", "VkPhysicalDeviceUniformBufferStandardLayoutFeatures", testPhysicalDeviceFeatureUniformBufferStandardLayoutFeatures);
+       addFunctionCase(testGroup, "depth_clip_enable_features_ext", "VkPhysicalDeviceDepthClipEnableFeaturesEXT", testPhysicalDeviceFeatureDepthClipEnableFeaturesEXT);
+       addFunctionCase(testGroup, "memory_priority_features_ext", "VkPhysicalDeviceMemoryPriorityFeaturesEXT", testPhysicalDeviceFeatureMemoryPriorityFeaturesEXT);
+       addFunctionCase(testGroup, "pageable_device_local_memory_features_ext", "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT", testPhysicalDeviceFeaturePageableDeviceLocalMemoryFeaturesEXT);
+       addFunctionCase(testGroup, "buffer_device_address_features", "VkPhysicalDeviceBufferDeviceAddressFeatures", testPhysicalDeviceFeatureBufferDeviceAddressFeatures);
+       addFunctionCase(testGroup, "buffer_device_address_features_ext", "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT", testPhysicalDeviceFeatureBufferDeviceAddressFeaturesEXT);
+       addFunctionCase(testGroup, "imageless_framebuffer_features", "VkPhysicalDeviceImagelessFramebufferFeatures", testPhysicalDeviceFeatureImagelessFramebufferFeatures);
+       addFunctionCase(testGroup, "texture_compression_astchdr_features", "VkPhysicalDeviceTextureCompressionASTCHDRFeatures", testPhysicalDeviceFeatureTextureCompressionASTCHDRFeatures);
+       addFunctionCase(testGroup, "ycbcr_image_arrays_features_ext", "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT", testPhysicalDeviceFeatureYcbcrImageArraysFeaturesEXT);
+       addFunctionCase(testGroup, "performance_query_features_khr", "VkPhysicalDevicePerformanceQueryFeaturesKHR", testPhysicalDeviceFeaturePerformanceQueryFeaturesKHR);
        addFunctionCase(testGroup, "shader_clock_features_khr", "VkPhysicalDeviceShaderClockFeaturesKHR", testPhysicalDeviceFeatureShaderClockFeaturesKHR);
-       addFunctionCase(testGroup, "shader_demote_to_helper_invocation_features", "VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures", testPhysicalDeviceFeatureShaderDemoteToHelperInvocationFeatures);
-       addFunctionCase(testGroup, "shader_draw_parameters_features", "VkPhysicalDeviceShaderDrawParametersFeatures", testPhysicalDeviceFeatureShaderDrawParametersFeatures);
-       addFunctionCase(testGroup, "shader_integer_dot_product_features", "VkPhysicalDeviceShaderIntegerDotProductFeatures", testPhysicalDeviceFeatureShaderIntegerDotProductFeatures);
-       addFunctionCase(testGroup, "shader_subgroup_extended_types_features", "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures", testPhysicalDeviceFeatureShaderSubgroupExtendedTypesFeatures);
-       addFunctionCase(testGroup, "shader_terminate_invocation_features", "VkPhysicalDeviceShaderTerminateInvocationFeatures", testPhysicalDeviceFeatureShaderTerminateInvocationFeatures);
-       addFunctionCase(testGroup, "subgroup_size_control_features", "VkPhysicalDeviceSubgroupSizeControlFeatures", testPhysicalDeviceFeatureSubgroupSizeControlFeatures);
-       addFunctionCase(testGroup, "synchronization2_features", "VkPhysicalDeviceSynchronization2Features", testPhysicalDeviceFeatureSynchronization2Features);
+       addFunctionCase(testGroup, "index_type_uint8_features_ext", "VkPhysicalDeviceIndexTypeUint8FeaturesEXT", testPhysicalDeviceFeatureIndexTypeUint8FeaturesEXT);
        addFunctionCase(testGroup, "fragment_shader_interlock_features_ext", "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT", testPhysicalDeviceFeatureFragmentShaderInterlockFeaturesEXT);
+       addFunctionCase(testGroup, "separate_depth_stencil_layouts_features", "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures", testPhysicalDeviceFeatureSeparateDepthStencilLayoutsFeatures);
+       addFunctionCase(testGroup, "primitive_topology_list_restart_features_ext", "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT", testPhysicalDeviceFeaturePrimitiveTopologyListRestartFeaturesEXT);
+       addFunctionCase(testGroup, "pipeline_executable_properties_features_khr", "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR", testPhysicalDeviceFeaturePipelineExecutablePropertiesFeaturesKHR);
+       addFunctionCase(testGroup, "shader_demote_to_helper_invocation_features", "VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures", testPhysicalDeviceFeatureShaderDemoteToHelperInvocationFeatures);
        addFunctionCase(testGroup, "texel_buffer_alignment_features_ext", "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT", testPhysicalDeviceFeatureTexelBufferAlignmentFeaturesEXT);
-       addFunctionCase(testGroup, "texture_compression_astchdr_features", "VkPhysicalDeviceTextureCompressionASTCHDRFeatures", testPhysicalDeviceFeatureTextureCompressionASTCHDRFeatures);
-       addFunctionCase(testGroup, "timeline_semaphore_features", "VkPhysicalDeviceTimelineSemaphoreFeatures", testPhysicalDeviceFeatureTimelineSemaphoreFeatures);
-       addFunctionCase(testGroup, "transform_feedback_features_ext", "VkPhysicalDeviceTransformFeedbackFeaturesEXT", testPhysicalDeviceFeatureTransformFeedbackFeaturesEXT);
-       addFunctionCase(testGroup, "uniform_buffer_standard_layout_features", "VkPhysicalDeviceUniformBufferStandardLayoutFeatures", testPhysicalDeviceFeatureUniformBufferStandardLayoutFeatures);
+       addFunctionCase(testGroup, "subgroup_size_control_features", "VkPhysicalDeviceSubgroupSizeControlFeatures", testPhysicalDeviceFeatureSubgroupSizeControlFeatures);
+       addFunctionCase(testGroup, "line_rasterization_features_ext", "VkPhysicalDeviceLineRasterizationFeaturesEXT", testPhysicalDeviceFeatureLineRasterizationFeaturesEXT);
+       addFunctionCase(testGroup, "pipeline_creation_cache_control_features", "VkPhysicalDevicePipelineCreationCacheControlFeatures", testPhysicalDeviceFeaturePipelineCreationCacheControlFeatures);
+       addFunctionCase(testGroup, "vulkan11_features", "VkPhysicalDeviceVulkan11Features", testPhysicalDeviceFeatureVulkan11Features);
+       addFunctionCase(testGroup, "vulkan12_features", "VkPhysicalDeviceVulkan12Features", testPhysicalDeviceFeatureVulkan12Features);
+       addFunctionCase(testGroup, "vulkan13_features", "VkPhysicalDeviceVulkan13Features", testPhysicalDeviceFeatureVulkan13Features);
+       addFunctionCase(testGroup, "custom_border_color_features_ext", "VkPhysicalDeviceCustomBorderColorFeaturesEXT", testPhysicalDeviceFeatureCustomBorderColorFeaturesEXT);
+       addFunctionCase(testGroup, "border_color_swizzle_features_ext", "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT", testPhysicalDeviceFeatureBorderColorSwizzleFeaturesEXT);
+       addFunctionCase(testGroup, "extended_dynamic_state_features_ext", "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT", testPhysicalDeviceFeatureExtendedDynamicStateFeaturesEXT);
+       addFunctionCase(testGroup, "extended_dynamic_state2_features_ext", "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT", testPhysicalDeviceFeatureExtendedDynamicState2FeaturesEXT);
+       addFunctionCase(testGroup, "zero_initialize_workgroup_memory_features", "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", testPhysicalDeviceFeatureZeroInitializeWorkgroupMemoryFeatures);
+       addFunctionCase(testGroup, "shader_subgroup_uniform_control_flow_features_khr", "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR", testPhysicalDeviceFeatureShaderSubgroupUniformControlFlowFeaturesKHR);
+       addFunctionCase(testGroup, "robustness2_features_ext", "VkPhysicalDeviceRobustness2FeaturesEXT", testPhysicalDeviceFeatureRobustness2FeaturesEXT);
+       addFunctionCase(testGroup, "image_robustness_features", "VkPhysicalDeviceImageRobustnessFeatures", testPhysicalDeviceFeatureImageRobustnessFeatures);
        addFunctionCase(testGroup, "workgroup_memory_explicit_layout_features_khr", "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR", testPhysicalDeviceFeatureWorkgroupMemoryExplicitLayoutFeaturesKHR);
-       addFunctionCase(testGroup, "variable_pointers_features", "VkPhysicalDeviceVariablePointersFeatures", testPhysicalDeviceFeatureVariablePointersFeatures);
-       addFunctionCase(testGroup, "vertex_attribute_divisor_features_ext", "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT", testPhysicalDeviceFeatureVertexAttributeDivisorFeaturesEXT);
+       addFunctionCase(testGroup, "portability_subset_features_khr", "VkPhysicalDevicePortabilitySubsetFeaturesKHR", testPhysicalDeviceFeaturePortabilitySubsetFeaturesKHR);
+       addFunctionCase(testGroup, "4444_formats_features_ext", "VkPhysicalDevice4444FormatsFeaturesEXT", testPhysicalDeviceFeature4444FormatsFeaturesEXT);
+       addFunctionCase(testGroup, "shader_image_atomic_int64_features_ext", "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT", testPhysicalDeviceFeatureShaderImageAtomicInt64FeaturesEXT);
+       addFunctionCase(testGroup, "fragment_shading_rate_features_khr", "VkPhysicalDeviceFragmentShadingRateFeaturesKHR", testPhysicalDeviceFeatureFragmentShadingRateFeaturesKHR);
+       addFunctionCase(testGroup, "shader_terminate_invocation_features", "VkPhysicalDeviceShaderTerminateInvocationFeatures", testPhysicalDeviceFeatureShaderTerminateInvocationFeatures);
+       addFunctionCase(testGroup, "image2_d_view_of3_d_features_ext", "VkPhysicalDeviceImage2DViewOf3DFeaturesEXT", testPhysicalDeviceFeatureImage2DViewOf3DFeaturesEXT);
+       addFunctionCase(testGroup, "depth_clip_control_features_ext", "VkPhysicalDeviceDepthClipControlFeaturesEXT", testPhysicalDeviceFeatureDepthClipControlFeaturesEXT);
        addFunctionCase(testGroup, "vertex_input_dynamic_state_features_ext", "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT", testPhysicalDeviceFeatureVertexInputDynamicStateFeaturesEXT);
-       addFunctionCase(testGroup, "vulkan_memory_model_features_khr", "VkPhysicalDeviceVulkanMemoryModelFeaturesKHR", testPhysicalDeviceFeatureVulkanMemoryModelFeaturesKHR);
-       addFunctionCase(testGroup, "ycbcr_image_arrays_features_ext", "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT", testPhysicalDeviceFeatureYcbcrImageArraysFeaturesEXT);
+       addFunctionCase(testGroup, "color_write_enable_features_ext", "VkPhysicalDeviceColorWriteEnableFeaturesEXT", testPhysicalDeviceFeatureColorWriteEnableFeaturesEXT);
+       addFunctionCase(testGroup, "synchronization2_features", "VkPhysicalDeviceSynchronization2Features", testPhysicalDeviceFeatureSynchronization2Features);
+       addFunctionCase(testGroup, "primitives_generated_query_features_ext", "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT", testPhysicalDeviceFeaturePrimitivesGeneratedQueryFeaturesEXT);
+       addFunctionCase(testGroup, "multisampled_render_to_single_sampled_features_ext", "VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT", testPhysicalDeviceFeatureMultisampledRenderToSingleSampledFeaturesEXT);
        addFunctionCase(testGroup, "ycbcr2_plane444_formats_features_ext", "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT", testPhysicalDeviceFeatureYcbcr2Plane444FormatsFeaturesEXT);
-       addFunctionCase(testGroup, "zero_initialize_workgroup_memory_features", "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", testPhysicalDeviceFeatureZeroInitializeWorkgroupMemoryFeatures);
+       addFunctionCase(testGroup, "provoking_vertex_features_ext", "VkPhysicalDeviceProvokingVertexFeaturesEXT", testPhysicalDeviceFeatureProvokingVertexFeaturesEXT);
+       addFunctionCase(testGroup, "shader_integer_dot_product_features", "VkPhysicalDeviceShaderIntegerDotProductFeatures", testPhysicalDeviceFeatureShaderIntegerDotProductFeatures);
+       addFunctionCase(testGroup, "fragment_shader_barycentric_features_khr", "VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR", testPhysicalDeviceFeatureFragmentShaderBarycentricFeaturesKHR);
+       addFunctionCase(testGroup, "rgba10_x6_formats_features_ext", "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT", testPhysicalDeviceFeatureRGBA10X6FormatsFeaturesEXT);
+       addFunctionCase(testGroup, "dynamic_rendering_features", "VkPhysicalDeviceDynamicRenderingFeatures", testPhysicalDeviceFeatureDynamicRenderingFeatures);
+       addFunctionCase(testGroup, "image_view_min_lod_features_ext", "VkPhysicalDeviceImageViewMinLodFeaturesEXT", testPhysicalDeviceFeatureImageViewMinLodFeaturesEXT);
+       addFunctionCase(testGroup, "graphics_pipeline_library_features_ext", "VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT", testPhysicalDeviceFeatureGraphicsPipelineLibraryFeaturesEXT);
+       addFunctionCase(testGroup, "shader_module_identifier_features_ext", "VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT", testPhysicalDeviceFeatureShaderModuleIdentifierFeaturesEXT);
+       addFunctionCase(testGroup, "image_compression_control_features_ext", "VkPhysicalDeviceImageCompressionControlFeaturesEXT", testPhysicalDeviceFeatureImageCompressionControlFeaturesEXT);
+       addFunctionCase(testGroup, "image_compression_control_swapchain_features_ext", "VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT", testPhysicalDeviceFeatureImageCompressionControlSwapchainFeaturesEXT);
+       addFunctionCase(testGroup, "subpass_merge_feedback_features_ext", "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT", testPhysicalDeviceFeatureSubpassMergeFeedbackFeaturesEXT);
+       addFunctionCase(testGroup, "pipeline_properties_features_ext", "VkPhysicalDevicePipelinePropertiesFeaturesEXT", testPhysicalDeviceFeaturePipelinePropertiesFeaturesEXT);
+       addFunctionCase(testGroup, "non_seamless_cube_map_features_ext", "VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT", testPhysicalDeviceFeatureNonSeamlessCubeMapFeaturesEXT);
+       addFunctionCase(testGroup, "pipeline_robustness_features_ext", "VkPhysicalDevicePipelineRobustnessFeaturesEXT", testPhysicalDeviceFeaturePipelineRobustnessFeaturesEXT);
 }
 
index 0d9c3c8..68a7394 100644 (file)
  * This file was generated by /scripts/gen_framework.py
  */
 
-const vk::VkPhysicalDevice16BitStorageFeatures&                                                        get16BitStorageFeatures                                                 (void) const;
-const vk::VkPhysicalDevice4444FormatsFeaturesEXT&                                              get4444FormatsFeaturesEXT                                               (void) const;
-const vk::VkPhysicalDevice8BitStorageFeatures&                                                 get8BitStorageFeatures                                                  (void) const;
-const vk::VkPhysicalDeviceAccelerationStructureFeaturesKHR&                            getAccelerationStructureFeatures                                (void) const;
-const vk::VkPhysicalDeviceASTCDecodeFeaturesEXT&                                               getASTCDecodeFeaturesEXT                                                (void) const;
-const vk::VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT&                   getBlendOperationAdvancedFeaturesEXT                    (void) const;
-const vk::VkPhysicalDeviceBorderColorSwizzleFeaturesEXT&                               getBorderColorSwizzleFeaturesEXT                                (void) const;
-const vk::VkPhysicalDeviceBufferDeviceAddressFeatures&                                 getBufferDeviceAddressFeatures                                  (void) const;
-const vk::VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&                              getBufferDeviceAddressFeaturesEXT                               (void) const;
-const vk::VkPhysicalDeviceCoherentMemoryFeaturesAMD&                                   getCoherentMemoryFeaturesAMD                                    (void) const;
-const vk::VkPhysicalDeviceColorWriteEnableFeaturesEXT&                                 getColorWriteEnableFeaturesEXT                                  (void) const;
-const vk::VkPhysicalDeviceComputeShaderDerivativesFeaturesNV&                  getComputeShaderDerivativesFeatures                             (void) const;
-const vk::VkPhysicalDeviceConditionalRenderingFeaturesEXT&                             getConditionalRenderingFeaturesEXT                              (void) const;
-const vk::VkPhysicalDeviceCooperativeMatrixFeaturesNV&                                 getCooperativeMatrixFeatures                                    (void) const;
-const vk::VkPhysicalDeviceCornerSampledImageFeaturesNV&                                        getCornerSampledImageFeatures                                   (void) const;
-const vk::VkPhysicalDeviceCoverageReductionModeFeaturesNV&                             getCoverageReductionModeFeatures                                (void) const;
-const vk::VkPhysicalDeviceCustomBorderColorFeaturesEXT&                                        getCustomBorderColorFeaturesEXT                                 (void) const;
-const vk::VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&  getDedicatedAllocationImageAliasingFeatures             (void) const;
-const vk::VkPhysicalDeviceDepthClipControlFeaturesEXT&                                 getDepthClipControlFeaturesEXT                                  (void) const;
-const vk::VkPhysicalDeviceDepthClipEnableFeaturesEXT&                                  getDepthClipEnableFeaturesEXT                                   (void) const;
-const vk::VkPhysicalDeviceDescriptorIndexingFeatures&                                  getDescriptorIndexingFeatures                                   (void) const;
-const vk::VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE&               getDescriptorSetHostMappingFeaturesVALVE                (void) const;
-const vk::VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV&                   getDeviceGeneratedCommandsFeatures                              (void) const;
-const vk::VkPhysicalDeviceDeviceMemoryReportFeaturesEXT&                               getDeviceMemoryReportFeaturesEXT                                (void) const;
-const vk::VkPhysicalDeviceDiagnosticsConfigFeaturesNV&                                 getDiagnosticsConfigFeatures                                    (void) const;
-const vk::VkPhysicalDeviceDynamicRenderingFeatures&                                            getDynamicRenderingFeatures                                             (void) const;
-const vk::VkPhysicalDeviceExclusiveScissorFeaturesNV&                                  getExclusiveScissorFeatures                                             (void) const;
-const vk::VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&                             getExtendedDynamicStateFeaturesEXT                              (void) const;
-const vk::VkPhysicalDeviceExtendedDynamicState2FeaturesEXT&                            getExtendedDynamicState2FeaturesEXT                             (void) const;
-const vk::VkPhysicalDeviceExternalMemoryRDMAFeaturesNV&                                        getExternalMemoryRDMAFeatures                                   (void) const;
-const vk::VkPhysicalDeviceFragmentDensityMapFeaturesEXT&                               getFragmentDensityMapFeaturesEXT                                (void) const;
-const vk::VkPhysicalDeviceFragmentDensityMap2FeaturesEXT&                              getFragmentDensityMap2FeaturesEXT                               (void) const;
-const vk::VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM&                        getFragmentDensityMapOffsetFeaturesQCOM                 (void) const;
-const vk::VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR&                        getFragmentShaderBarycentricFeatures                    (void) const;
-const vk::VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&                  getFragmentShaderInterlockFeaturesEXT                   (void) const;
-const vk::VkPhysicalDeviceFragmentShadingRateFeaturesKHR&                              getFragmentShadingRateFeatures                                  (void) const;
-const vk::VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV&                  getFragmentShadingRateEnumsFeatures                             (void) const;
-const vk::VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR&                              getGlobalPriorityQueryFeatures                                  (void) const;
-const vk::VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT&                  getGraphicsPipelineLibraryFeaturesEXT                   (void) const;
-const vk::VkPhysicalDeviceHostQueryResetFeatures&                                              getHostQueryResetFeatures                                               (void) const;
-const vk::VkPhysicalDeviceImagelessFramebufferFeatures&                                        getImagelessFramebufferFeatures                                 (void) const;
-const vk::VkPhysicalDeviceImage2DViewOf3DFeaturesEXT&                                  getImage2DViewOf3DFeaturesEXT                                   (void) const;
-const vk::VkPhysicalDeviceImageCompressionControlFeaturesEXT&                  getImageCompressionControlFeaturesEXT                   (void) const;
-const vk::VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT& getImageCompressionControlSwapchainFeaturesEXT  (void) const;
-const vk::VkPhysicalDeviceImageProcessingFeaturesQCOM&                                 getImageProcessingFeaturesQCOM                                  (void) const;
-const vk::VkPhysicalDeviceImageRobustnessFeatures&                                             getImageRobustnessFeatures                                              (void) const;
-const vk::VkPhysicalDeviceImageViewMinLodFeaturesEXT&                                  getImageViewMinLodFeaturesEXT                                   (void) const;
-const vk::VkPhysicalDeviceIndexTypeUint8FeaturesEXT&                                   getIndexTypeUint8FeaturesEXT                                    (void) const;
-const vk::VkPhysicalDeviceInheritedViewportScissorFeaturesNV&                  getInheritedViewportScissorFeatures                             (void) const;
-const vk::VkPhysicalDeviceInlineUniformBlockFeatures&                                  getInlineUniformBlockFeatures                                   (void) const;
-const vk::VkPhysicalDeviceInvocationMaskFeaturesHUAWEI&                                        getInvocationMaskFeaturesHUAWEI                                 (void) const;
-const vk::VkPhysicalDeviceLinearColorAttachmentFeaturesNV&                             getLinearColorAttachmentFeatures                                (void) const;
-const vk::VkPhysicalDeviceLineRasterizationFeaturesEXT&                                        getLineRasterizationFeaturesEXT                                 (void) const;
-const vk::VkPhysicalDeviceMaintenance4Features&                                                        getMaintenance4Features                                                 (void) const;
-const vk::VkPhysicalDeviceMemoryPriorityFeaturesEXT&                                   getMemoryPriorityFeaturesEXT                                    (void) const;
-const vk::VkPhysicalDeviceMeshShaderFeaturesNV&                                                        getMeshShaderFeatures                                                   (void) const;
-const vk::VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT&        getMultisampledRenderToSingleSampledFeaturesEXT (void) const;
-const vk::VkPhysicalDeviceMultiviewFeatures&                                                   getMultiviewFeatures                                                    (void) const;
-const vk::VkPhysicalDeviceMultiDrawFeaturesEXT&                                                        getMultiDrawFeaturesEXT                                                 (void) const;
-const vk::VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE&                  getMutableDescriptorTypeFeaturesVALVE                   (void) const;
-const vk::VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT&                               getNonSeamlessCubeMapFeaturesEXT                                (void) const;
-const vk::VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT&                        getPageableDeviceLocalMemoryFeaturesEXT                 (void) const;
-const vk::VkPhysicalDevicePerformanceQueryFeaturesKHR&                                 getPerformanceQueryFeatures                                             (void) const;
-const vk::VkPhysicalDevicePipelineCreationCacheControlFeatures&                        getPipelineCreationCacheControlFeatures                 (void) const;
-const vk::VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&             getPipelineExecutablePropertiesFeatures                 (void) const;
-const vk::VkPhysicalDevicePipelinePropertiesFeaturesEXT&                               getPipelinePropertiesFeaturesEXT                                (void) const;
-const vk::VkPhysicalDevicePipelineRobustnessFeaturesEXT&                               getPipelineRobustnessFeaturesEXT                                (void) const;
-const vk::VkPhysicalDevicePortabilitySubsetFeaturesKHR&                                        getPortabilitySubsetFeatures                                    (void) const;
-const vk::VkPhysicalDevicePresentIdFeaturesKHR&                                                        getPresentIdFeatures                                                    (void) const;
-const vk::VkPhysicalDevicePresentWaitFeaturesKHR&                                              getPresentWaitFeatures                                                  (void) const;
-const vk::VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT&                 getPrimitivesGeneratedQueryFeaturesEXT                  (void) const;
-const vk::VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT&             getPrimitiveTopologyListRestartFeaturesEXT              (void) const;
-const vk::VkPhysicalDevicePrivateDataFeatures&                                                 getPrivateDataFeatures                                                  (void) const;
-const vk::VkPhysicalDeviceProtectedMemoryFeatures&                                             getProtectedMemoryFeatures                                              (void) const;
-const vk::VkPhysicalDeviceProvokingVertexFeaturesEXT&                                  getProvokingVertexFeaturesEXT                                   (void) const;
-const vk::VkPhysicalDeviceRayQueryFeaturesKHR&                                                 getRayQueryFeatures                                                             (void) const;
-const vk::VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR&                   getRayTracingMaintenance1Features                               (void) const;
-const vk::VkPhysicalDeviceRayTracingMotionBlurFeaturesNV&                              getRayTracingMotionBlurFeatures                                 (void) const;
-const vk::VkPhysicalDeviceRayTracingPipelineFeaturesKHR&                               getRayTracingPipelineFeatures                                   (void) const;
-const vk::VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&                        getRepresentativeFragmentTestFeatures                   (void) const;
-const vk::VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT&                                  getRGBA10X6FormatsFeaturesEXT                                   (void) const;
-const vk::VkPhysicalDeviceRobustness2FeaturesEXT&                                              getRobustness2FeaturesEXT                                               (void) const;
-const vk::VkPhysicalDeviceSamplerYcbcrConversionFeatures&                              getSamplerYcbcrConversionFeatures                               (void) const;
-const vk::VkPhysicalDeviceScalarBlockLayoutFeatures&                                   getScalarBlockLayoutFeatures                                    (void) const;
-const vk::VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures&                 getSeparateDepthStencilLayoutsFeatures                  (void) const;
-const vk::VkPhysicalDeviceShaderAtomicFloatFeaturesEXT&                                        getShaderAtomicFloatFeaturesEXT                                 (void) const;
-const vk::VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT&                               getShaderAtomicFloat2FeaturesEXT                                (void) const;
-const vk::VkPhysicalDeviceShaderAtomicInt64Features&                                   getShaderAtomicInt64Features                                    (void) const;
-const vk::VkPhysicalDeviceShaderClockFeaturesKHR&                                              getShaderClockFeatures                                                  (void) const;
-const vk::VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures&              getShaderDemoteToHelperInvocationFeatures               (void) const;
-const vk::VkPhysicalDeviceShaderDrawParametersFeatures&                                        getShaderDrawParametersFeatures                                 (void) const;
-const vk::VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD&  getShaderEarlyAndLateFragmentTestsFeaturesAMD   (void) const;
-const vk::VkPhysicalDeviceShaderFloat16Int8Features&                                   getShaderFloat16Int8Features                                    (void) const;
-const vk::VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT&                   getShaderImageAtomicInt64FeaturesEXT                    (void) const;
-const vk::VkPhysicalDeviceShaderImageFootprintFeaturesNV&                              getShaderImageFootprintFeatures                                 (void) const;
-const vk::VkPhysicalDeviceShaderIntegerDotProductFeatures&                             getShaderIntegerDotProductFeatures                              (void) const;
-const vk::VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL&                        getShaderIntegerFunctions2FeaturesINTEL                 (void) const;
-const vk::VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT&                   getShaderModuleIdentifierFeaturesEXT                    (void) const;
-const vk::VkPhysicalDeviceShaderSMBuiltinsFeaturesNV&                                  getShaderSMBuiltinsFeatures                                             (void) const;
-const vk::VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures&                 getShaderSubgroupExtendedTypesFeatures                  (void) const;
-const vk::VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR& getShaderSubgroupUniformControlFlowFeatures             (void) const;
-const vk::VkPhysicalDeviceShaderTerminateInvocationFeatures&                   getShaderTerminateInvocationFeatures                    (void) const;
-const vk::VkPhysicalDeviceShadingRateImageFeaturesNV&                                  getShadingRateImageFeatures                                             (void) const;
-const vk::VkPhysicalDeviceSubgroupSizeControlFeatures&                                 getSubgroupSizeControlFeatures                                  (void) const;
-const vk::VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT&                             getSubpassMergeFeedbackFeaturesEXT                              (void) const;
-const vk::VkPhysicalDeviceSubpassShadingFeaturesHUAWEI&                                        getSubpassShadingFeaturesHUAWEI                                 (void) const;
-const vk::VkPhysicalDeviceSynchronization2Features&                                            getSynchronization2Features                                             (void) const;
-const vk::VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT&                             getTexelBufferAlignmentFeaturesEXT                              (void) const;
-const vk::VkPhysicalDeviceTextureCompressionASTCHDRFeatures&                   getTextureCompressionASTCHDRFeatures                    (void) const;
-const vk::VkPhysicalDeviceTilePropertiesFeaturesQCOM&                                  getTilePropertiesFeaturesQCOM                                   (void) const;
-const vk::VkPhysicalDeviceTimelineSemaphoreFeatures&                                   getTimelineSemaphoreFeatures                                    (void) const;
-const vk::VkPhysicalDeviceTransformFeedbackFeaturesEXT&                                        getTransformFeedbackFeaturesEXT                                 (void) const;
-const vk::VkPhysicalDeviceUniformBufferStandardLayoutFeatures&                 getUniformBufferStandardLayoutFeatures                  (void) const;
-const vk::VkPhysicalDeviceVariablePointersFeatures&                                            getVariablePointersFeatures                                             (void) const;
-const vk::VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT&                   getVertexAttributeDivisorFeaturesEXT                    (void) const;
-const vk::VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT&                  getVertexInputDynamicStateFeaturesEXT                   (void) const;
-const vk::VkPhysicalDeviceVulkanMemoryModelFeatures&                                   getVulkanMemoryModelFeatures                                    (void) const;
-const vk::VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR&            getWorkgroupMemoryExplicitLayoutFeatures                (void) const;
-const vk::VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT&                            getYcbcr2Plane444FormatsFeaturesEXT                             (void) const;
-const vk::VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&                                 getYcbcrImageArraysFeaturesEXT                                  (void) const;
-const vk::VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures&               getZeroInitializeWorkgroupMemoryFeatures                (void) const;
+const vk::VkPhysicalDeviceTransformFeedbackFeaturesEXT&                                                getTransformFeedbackFeaturesEXT                                         (void) const;
+const vk::VkPhysicalDeviceDynamicRenderingFeatures&                                                    getDynamicRenderingFeatures                                                     (void) const;
+const vk::VkPhysicalDeviceCornerSampledImageFeaturesNV&                                                getCornerSampledImageFeatures                                           (void) const;
+const vk::VkPhysicalDeviceMultiviewFeatures&                                                           getMultiviewFeatures                                                            (void) const;
+const vk::VkPhysicalDeviceTextureCompressionASTCHDRFeatures&                           getTextureCompressionASTCHDRFeatures                            (void) const;
+const vk::VkPhysicalDeviceASTCDecodeFeaturesEXT&                                                       getASTCDecodeFeaturesEXT                                                        (void) const;
+const vk::VkPhysicalDevicePipelineRobustnessFeaturesEXT&                                       getPipelineRobustnessFeaturesEXT                                        (void) const;
+const vk::VkPhysicalDeviceConditionalRenderingFeaturesEXT&                                     getConditionalRenderingFeaturesEXT                                      (void) const;
+const vk::VkPhysicalDeviceShaderFloat16Int8Features&                                           getShaderFloat16Int8Features                                            (void) const;
+const vk::VkPhysicalDevice16BitStorageFeatures&                                                                get16BitStorageFeatures                                                         (void) const;
+const vk::VkPhysicalDeviceDepthClipEnableFeaturesEXT&                                          getDepthClipEnableFeaturesEXT                                           (void) const;
+const vk::VkPhysicalDeviceImagelessFramebufferFeatures&                                                getImagelessFramebufferFeatures                                         (void) const;
+const vk::VkPhysicalDevicePerformanceQueryFeaturesKHR&                                         getPerformanceQueryFeatures                                                     (void) const;
+const vk::VkPhysicalDeviceVariablePointersFeatures&                                                    getVariablePointersFeatures                                                     (void) const;
+const vk::VkPhysicalDeviceInlineUniformBlockFeatures&                                          getInlineUniformBlockFeatures                                           (void) const;
+const vk::VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT&                           getBlendOperationAdvancedFeaturesEXT                            (void) const;
+const vk::VkPhysicalDeviceAccelerationStructureFeaturesKHR&                                    getAccelerationStructureFeatures                                        (void) const;
+const vk::VkPhysicalDeviceRayTracingPipelineFeaturesKHR&                                       getRayTracingPipelineFeatures                                           (void) const;
+const vk::VkPhysicalDeviceRayQueryFeaturesKHR&                                                         getRayQueryFeatures                                                                     (void) const;
+const vk::VkPhysicalDeviceShaderSMBuiltinsFeaturesNV&                                          getShaderSMBuiltinsFeatures                                                     (void) const;
+const vk::VkPhysicalDeviceSamplerYcbcrConversionFeatures&                                      getSamplerYcbcrConversionFeatures                                       (void) const;
+const vk::VkPhysicalDeviceDescriptorIndexingFeatures&                                          getDescriptorIndexingFeatures                                           (void) const;
+const vk::VkPhysicalDevicePortabilitySubsetFeaturesKHR&                                                getPortabilitySubsetFeatures                                            (void) const;
+const vk::VkPhysicalDeviceShadingRateImageFeaturesNV&                                          getShadingRateImageFeatures                                                     (void) const;
+const vk::VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&                                getRepresentativeFragmentTestFeatures                           (void) const;
+const vk::VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures&                         getShaderSubgroupExtendedTypesFeatures                          (void) const;
+const vk::VkPhysicalDevice8BitStorageFeatures&                                                         get8BitStorageFeatures                                                          (void) const;
+const vk::VkPhysicalDeviceShaderAtomicInt64Features&                                           getShaderAtomicInt64Features                                            (void) const;
+const vk::VkPhysicalDeviceShaderClockFeaturesKHR&                                                      getShaderClockFeatures                                                          (void) const;
+const vk::VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR&                                      getGlobalPriorityQueryFeatures                                          (void) const;
+const vk::VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT&                           getVertexAttributeDivisorFeaturesEXT                            (void) const;
+const vk::VkPhysicalDeviceComputeShaderDerivativesFeaturesNV&                          getComputeShaderDerivativesFeatures                                     (void) const;
+const vk::VkPhysicalDeviceMeshShaderFeaturesNV&                                                                getMeshShaderFeatures                                                           (void) const;
+const vk::VkPhysicalDeviceShaderImageFootprintFeaturesNV&                                      getShaderImageFootprintFeatures                                         (void) const;
+const vk::VkPhysicalDeviceExclusiveScissorFeaturesNV&                                          getExclusiveScissorFeatures                                                     (void) const;
+const vk::VkPhysicalDeviceTimelineSemaphoreFeatures&                                           getTimelineSemaphoreFeatures                                            (void) const;
+const vk::VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL&                                getShaderIntegerFunctions2FeaturesINTEL                         (void) const;
+const vk::VkPhysicalDeviceVulkanMemoryModelFeatures&                                           getVulkanMemoryModelFeatures                                            (void) const;
+const vk::VkPhysicalDeviceShaderTerminateInvocationFeatures&                           getShaderTerminateInvocationFeatures                            (void) const;
+const vk::VkPhysicalDeviceFragmentDensityMapFeaturesEXT&                                       getFragmentDensityMapFeaturesEXT                                        (void) const;
+const vk::VkPhysicalDeviceScalarBlockLayoutFeatures&                                           getScalarBlockLayoutFeatures                                            (void) const;
+const vk::VkPhysicalDeviceSubgroupSizeControlFeatures&                                         getSubgroupSizeControlFeatures                                          (void) const;
+const vk::VkPhysicalDeviceFragmentShadingRateFeaturesKHR&                                      getFragmentShadingRateFeatures                                          (void) const;
+const vk::VkPhysicalDeviceCoherentMemoryFeaturesAMD&                                           getCoherentMemoryFeaturesAMD                                            (void) const;
+const vk::VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT&                           getShaderImageAtomicInt64FeaturesEXT                            (void) const;
+const vk::VkPhysicalDeviceMemoryPriorityFeaturesEXT&                                           getMemoryPriorityFeaturesEXT                                            (void) const;
+const vk::VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&          getDedicatedAllocationImageAliasingFeatures                     (void) const;
+const vk::VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures&                         getSeparateDepthStencilLayoutsFeatures                          (void) const;
+const vk::VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&                                      getBufferDeviceAddressFeaturesEXT                                       (void) const;
+const vk::VkPhysicalDevicePresentWaitFeaturesKHR&                                                      getPresentWaitFeatures                                                          (void) const;
+const vk::VkPhysicalDeviceCooperativeMatrixFeaturesNV&                                         getCooperativeMatrixFeatures                                            (void) const;
+const vk::VkPhysicalDeviceCoverageReductionModeFeaturesNV&                                     getCoverageReductionModeFeatures                                        (void) const;
+const vk::VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&                          getFragmentShaderInterlockFeaturesEXT                           (void) const;
+const vk::VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&                                         getYcbcrImageArraysFeaturesEXT                                          (void) const;
+const vk::VkPhysicalDeviceUniformBufferStandardLayoutFeatures&                         getUniformBufferStandardLayoutFeatures                          (void) const;
+const vk::VkPhysicalDeviceProvokingVertexFeaturesEXT&                                          getProvokingVertexFeaturesEXT                                           (void) const;
+const vk::VkPhysicalDeviceBufferDeviceAddressFeatures&                                         getBufferDeviceAddressFeatures                                          (void) const;
+const vk::VkPhysicalDeviceLineRasterizationFeaturesEXT&                                                getLineRasterizationFeaturesEXT                                         (void) const;
+const vk::VkPhysicalDeviceShaderAtomicFloatFeaturesEXT&                                                getShaderAtomicFloatFeaturesEXT                                         (void) const;
+const vk::VkPhysicalDeviceHostQueryResetFeatures&                                                      getHostQueryResetFeatures                                                       (void) const;
+const vk::VkPhysicalDeviceIndexTypeUint8FeaturesEXT&                                           getIndexTypeUint8FeaturesEXT                                            (void) const;
+const vk::VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&                                     getExtendedDynamicStateFeaturesEXT                                      (void) const;
+const vk::VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&                     getPipelineExecutablePropertiesFeatures                         (void) const;
+const vk::VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT&                                       getShaderAtomicFloat2FeaturesEXT                                        (void) const;
+const vk::VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures&                      getShaderDemoteToHelperInvocationFeatures                       (void) const;
+const vk::VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV&                           getDeviceGeneratedCommandsFeatures                                      (void) const;
+const vk::VkPhysicalDeviceInheritedViewportScissorFeaturesNV&                          getInheritedViewportScissorFeatures                                     (void) const;
+const vk::VkPhysicalDeviceShaderIntegerDotProductFeatures&                                     getShaderIntegerDotProductFeatures                                      (void) const;
+const vk::VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT&                                     getTexelBufferAlignmentFeaturesEXT                                      (void) const;
+const vk::VkPhysicalDeviceDeviceMemoryReportFeaturesEXT&                                       getDeviceMemoryReportFeaturesEXT                                        (void) const;
+const vk::VkPhysicalDeviceRobustness2FeaturesEXT&                                                      getRobustness2FeaturesEXT                                                       (void) const;
+const vk::VkPhysicalDeviceCustomBorderColorFeaturesEXT&                                                getCustomBorderColorFeaturesEXT                                         (void) const;
+const vk::VkPhysicalDevicePresentIdFeaturesKHR&                                                                getPresentIdFeatures                                                            (void) const;
+const vk::VkPhysicalDevicePrivateDataFeatures&                                                         getPrivateDataFeatures                                                          (void) const;
+const vk::VkPhysicalDevicePipelineCreationCacheControlFeatures&                                getPipelineCreationCacheControlFeatures                         (void) const;
+const vk::VkPhysicalDeviceDiagnosticsConfigFeaturesNV&                                         getDiagnosticsConfigFeatures                                            (void) const;
+const vk::VkPhysicalDeviceSynchronization2Features&                                                    getSynchronization2Features                                                     (void) const;
+const vk::VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT&                          getGraphicsPipelineLibraryFeaturesEXT                           (void) const;
+const vk::VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD&          getShaderEarlyAndLateFragmentTestsFeaturesAMD           (void) const;
+const vk::VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR&                                getFragmentShaderBarycentricFeatures                            (void) const;
+const vk::VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR&         getShaderSubgroupUniformControlFlowFeatures                     (void) const;
+const vk::VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures&                       getZeroInitializeWorkgroupMemoryFeatures                        (void) const;
+const vk::VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV&                          getFragmentShadingRateEnumsFeatures                                     (void) const;
+const vk::VkPhysicalDeviceRayTracingMotionBlurFeaturesNV&                                      getRayTracingMotionBlurFeatures                                         (void) const;
+const vk::VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT&                                    getYcbcr2Plane444FormatsFeaturesEXT                                     (void) const;
+const vk::VkPhysicalDeviceFragmentDensityMap2FeaturesEXT&                                      getFragmentDensityMap2FeaturesEXT                                       (void) const;
+const vk::VkPhysicalDeviceImageRobustnessFeatures&                                                     getImageRobustnessFeatures                                                      (void) const;
+const vk::VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR&                    getWorkgroupMemoryExplicitLayoutFeatures                        (void) const;
+const vk::VkPhysicalDeviceImageCompressionControlFeaturesEXT&                          getImageCompressionControlFeaturesEXT                           (void) const;
+const vk::VkPhysicalDevice4444FormatsFeaturesEXT&                                                      get4444FormatsFeaturesEXT                                                       (void) const;
+const vk::VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM&       getRasterizationOrderAttachmentAccessFeaturesARM        (void) const;
+const vk::VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT&                                          getRGBA10X6FormatsFeaturesEXT                                           (void) const;
+const vk::VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE&                          getMutableDescriptorTypeFeaturesVALVE                           (void) const;
+const vk::VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT&                          getVertexInputDynamicStateFeaturesEXT                           (void) const;
+const vk::VkPhysicalDeviceDepthClipControlFeaturesEXT&                                         getDepthClipControlFeaturesEXT                                          (void) const;
+const vk::VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT&                     getPrimitiveTopologyListRestartFeaturesEXT                      (void) const;
+const vk::VkPhysicalDeviceSubpassShadingFeaturesHUAWEI&                                                getSubpassShadingFeaturesHUAWEI                                         (void) const;
+const vk::VkPhysicalDeviceInvocationMaskFeaturesHUAWEI&                                                getInvocationMaskFeaturesHUAWEI                                         (void) const;
+const vk::VkPhysicalDeviceExternalMemoryRDMAFeaturesNV&                                                getExternalMemoryRDMAFeatures                                           (void) const;
+const vk::VkPhysicalDevicePipelinePropertiesFeaturesEXT&                                       getPipelinePropertiesFeaturesEXT                                        (void) const;
+const vk::VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT&                getMultisampledRenderToSingleSampledFeaturesEXT         (void) const;
+const vk::VkPhysicalDeviceExtendedDynamicState2FeaturesEXT&                                    getExtendedDynamicState2FeaturesEXT                                     (void) const;
+const vk::VkPhysicalDeviceColorWriteEnableFeaturesEXT&                                         getColorWriteEnableFeaturesEXT                                          (void) const;
+const vk::VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT&                         getPrimitivesGeneratedQueryFeaturesEXT                          (void) const;
+const vk::VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR&                           getRayTracingMaintenance1Features                                       (void) const;
+const vk::VkPhysicalDeviceImageViewMinLodFeaturesEXT&                                          getImageViewMinLodFeaturesEXT                                           (void) const;
+const vk::VkPhysicalDeviceMultiDrawFeaturesEXT&                                                                getMultiDrawFeaturesEXT                                                         (void) const;
+const vk::VkPhysicalDeviceImage2DViewOf3DFeaturesEXT&                                          getImage2DViewOf3DFeaturesEXT                                           (void) const;
+const vk::VkPhysicalDeviceBorderColorSwizzleFeaturesEXT&                                       getBorderColorSwizzleFeaturesEXT                                        (void) const;
+const vk::VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT&                                getPageableDeviceLocalMemoryFeaturesEXT                         (void) const;
+const vk::VkPhysicalDeviceMaintenance4Features&                                                                getMaintenance4Features                                                         (void) const;
+const vk::VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE&                       getDescriptorSetHostMappingFeaturesVALVE                        (void) const;
+const vk::VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT&                                       getNonSeamlessCubeMapFeaturesEXT                                        (void) const;
+const vk::VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM&                                getFragmentDensityMapOffsetFeaturesQCOM                         (void) const;
+const vk::VkPhysicalDeviceLinearColorAttachmentFeaturesNV&                                     getLinearColorAttachmentFeatures                                        (void) const;
+const vk::VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT&         getImageCompressionControlSwapchainFeaturesEXT          (void) const;
+const vk::VkPhysicalDeviceImageProcessingFeaturesQCOM&                                         getImageProcessingFeaturesQCOM                                          (void) const;
+const vk::VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT&                                     getSubpassMergeFeedbackFeaturesEXT                                      (void) const;
+const vk::VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT&                           getShaderModuleIdentifierFeaturesEXT                            (void) const;
+const vk::VkPhysicalDeviceTilePropertiesFeaturesQCOM&                                          getTilePropertiesFeaturesQCOM                                           (void) const;
+const vk::VkPhysicalDeviceProtectedMemoryFeatures&                                                     getProtectedMemoryFeatures                                                      (void) const;
+const vk::VkPhysicalDeviceShaderDrawParametersFeatures&                                                getShaderDrawParametersFeatures                                         (void) const;
index b316ed0..d56ff2f 100644 (file)
  * This file was generated by /scripts/gen_framework.py
  */
 
-const vk::VkPhysicalDevice16BitStorageFeatures&                                                        Context::get16BitStorageFeatures                                                        (void) const { return m_device->get16BitStorageFeatures();                                                      }
-const vk::VkPhysicalDevice4444FormatsFeaturesEXT&                                              Context::get4444FormatsFeaturesEXT                                                      (void) const { return m_device->get4444FormatsFeaturesEXT();                                            }
-const vk::VkPhysicalDevice8BitStorageFeatures&                                                 Context::get8BitStorageFeatures                                                         (void) const { return m_device->get8BitStorageFeatures();                                                       }
-const vk::VkPhysicalDeviceAccelerationStructureFeaturesKHR&                            Context::getAccelerationStructureFeatures                                       (void) const { return m_device->getAccelerationStructureFeatures();                                     }
-const vk::VkPhysicalDeviceASTCDecodeFeaturesEXT&                                               Context::getASTCDecodeFeaturesEXT                                                       (void) const { return m_device->getASTCDecodeFeaturesEXT();                                                     }
-const vk::VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT&                   Context::getBlendOperationAdvancedFeaturesEXT                           (void) const { return m_device->getBlendOperationAdvancedFeaturesEXT();                         }
-const vk::VkPhysicalDeviceBorderColorSwizzleFeaturesEXT&                               Context::getBorderColorSwizzleFeaturesEXT                                       (void) const { return m_device->getBorderColorSwizzleFeaturesEXT();                                     }
-const vk::VkPhysicalDeviceBufferDeviceAddressFeatures&                                 Context::getBufferDeviceAddressFeatures                                         (void) const { return m_device->getBufferDeviceAddressFeatures();                                       }
-const vk::VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&                              Context::getBufferDeviceAddressFeaturesEXT                                      (void) const { return m_device->getBufferDeviceAddressFeaturesEXT();                            }
-const vk::VkPhysicalDeviceCoherentMemoryFeaturesAMD&                                   Context::getCoherentMemoryFeaturesAMD                                           (void) const { return m_device->getCoherentMemoryFeaturesAMD();                                         }
-const vk::VkPhysicalDeviceColorWriteEnableFeaturesEXT&                                 Context::getColorWriteEnableFeaturesEXT                                         (void) const { return m_device->getColorWriteEnableFeaturesEXT();                                       }
-const vk::VkPhysicalDeviceComputeShaderDerivativesFeaturesNV&                  Context::getComputeShaderDerivativesFeatures                            (void) const { return m_device->getComputeShaderDerivativesFeatures();                          }
-const vk::VkPhysicalDeviceConditionalRenderingFeaturesEXT&                             Context::getConditionalRenderingFeaturesEXT                                     (void) const { return m_device->getConditionalRenderingFeaturesEXT();                           }
-const vk::VkPhysicalDeviceCooperativeMatrixFeaturesNV&                                 Context::getCooperativeMatrixFeatures                                           (void) const { return m_device->getCooperativeMatrixFeatures();                                         }
-const vk::VkPhysicalDeviceCornerSampledImageFeaturesNV&                                        Context::getCornerSampledImageFeatures                                          (void) const { return m_device->getCornerSampledImageFeatures();                                        }
-const vk::VkPhysicalDeviceCoverageReductionModeFeaturesNV&                             Context::getCoverageReductionModeFeatures                                       (void) const { return m_device->getCoverageReductionModeFeatures();                                     }
-const vk::VkPhysicalDeviceCustomBorderColorFeaturesEXT&                                        Context::getCustomBorderColorFeaturesEXT                                        (void) const { return m_device->getCustomBorderColorFeaturesEXT();                                      }
-const vk::VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&  Context::getDedicatedAllocationImageAliasingFeatures            (void) const { return m_device->getDedicatedAllocationImageAliasingFeatures();          }
-const vk::VkPhysicalDeviceDepthClipControlFeaturesEXT&                                 Context::getDepthClipControlFeaturesEXT                                         (void) const { return m_device->getDepthClipControlFeaturesEXT();                                       }
-const vk::VkPhysicalDeviceDepthClipEnableFeaturesEXT&                                  Context::getDepthClipEnableFeaturesEXT                                          (void) const { return m_device->getDepthClipEnableFeaturesEXT();                                        }
-const vk::VkPhysicalDeviceDescriptorIndexingFeatures&                                  Context::getDescriptorIndexingFeatures                                          (void) const { return m_device->getDescriptorIndexingFeatures();                                        }
-const vk::VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE&               Context::getDescriptorSetHostMappingFeaturesVALVE                       (void) const { return m_device->getDescriptorSetHostMappingFeaturesVALVE();                     }
-const vk::VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV&                   Context::getDeviceGeneratedCommandsFeatures                                     (void) const { return m_device->getDeviceGeneratedCommandsFeatures();                           }
-const vk::VkPhysicalDeviceDeviceMemoryReportFeaturesEXT&                               Context::getDeviceMemoryReportFeaturesEXT                                       (void) const { return m_device->getDeviceMemoryReportFeaturesEXT();                                     }
-const vk::VkPhysicalDeviceDiagnosticsConfigFeaturesNV&                                 Context::getDiagnosticsConfigFeatures                                           (void) const { return m_device->getDiagnosticsConfigFeatures();                                         }
-const vk::VkPhysicalDeviceDynamicRenderingFeatures&                                            Context::getDynamicRenderingFeatures                                            (void) const { return m_device->getDynamicRenderingFeatures();                                          }
-const vk::VkPhysicalDeviceExclusiveScissorFeaturesNV&                                  Context::getExclusiveScissorFeatures                                            (void) const { return m_device->getExclusiveScissorFeatures();                                          }
-const vk::VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&                             Context::getExtendedDynamicStateFeaturesEXT                                     (void) const { return m_device->getExtendedDynamicStateFeaturesEXT();                           }
-const vk::VkPhysicalDeviceExtendedDynamicState2FeaturesEXT&                            Context::getExtendedDynamicState2FeaturesEXT                            (void) const { return m_device->getExtendedDynamicState2FeaturesEXT();                          }
-const vk::VkPhysicalDeviceExternalMemoryRDMAFeaturesNV&                                        Context::getExternalMemoryRDMAFeatures                                          (void) const { return m_device->getExternalMemoryRDMAFeatures();                                        }
-const vk::VkPhysicalDeviceFragmentDensityMapFeaturesEXT&                               Context::getFragmentDensityMapFeaturesEXT                                       (void) const { return m_device->getFragmentDensityMapFeaturesEXT();                                     }
-const vk::VkPhysicalDeviceFragmentDensityMap2FeaturesEXT&                              Context::getFragmentDensityMap2FeaturesEXT                                      (void) const { return m_device->getFragmentDensityMap2FeaturesEXT();                            }
-const vk::VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM&                        Context::getFragmentDensityMapOffsetFeaturesQCOM                        (void) const { return m_device->getFragmentDensityMapOffsetFeaturesQCOM();                      }
-const vk::VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR&                        Context::getFragmentShaderBarycentricFeatures                           (void) const { return m_device->getFragmentShaderBarycentricFeatures();                         }
-const vk::VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&                  Context::getFragmentShaderInterlockFeaturesEXT                          (void) const { return m_device->getFragmentShaderInterlockFeaturesEXT();                        }
-const vk::VkPhysicalDeviceFragmentShadingRateFeaturesKHR&                              Context::getFragmentShadingRateFeatures                                         (void) const { return m_device->getFragmentShadingRateFeatures();                                       }
-const vk::VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV&                  Context::getFragmentShadingRateEnumsFeatures                            (void) const { return m_device->getFragmentShadingRateEnumsFeatures();                          }
-const vk::VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR&                              Context::getGlobalPriorityQueryFeatures                                         (void) const { return m_device->getGlobalPriorityQueryFeatures();                                       }
-const vk::VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT&                  Context::getGraphicsPipelineLibraryFeaturesEXT                          (void) const { return m_device->getGraphicsPipelineLibraryFeaturesEXT();                        }
-const vk::VkPhysicalDeviceHostQueryResetFeatures&                                              Context::getHostQueryResetFeatures                                                      (void) const { return m_device->getHostQueryResetFeatures();                                            }
-const vk::VkPhysicalDeviceImagelessFramebufferFeatures&                                        Context::getImagelessFramebufferFeatures                                        (void) const { return m_device->getImagelessFramebufferFeatures();                                      }
-const vk::VkPhysicalDeviceImage2DViewOf3DFeaturesEXT&                                  Context::getImage2DViewOf3DFeaturesEXT                                          (void) const { return m_device->getImage2DViewOf3DFeaturesEXT();                                        }
-const vk::VkPhysicalDeviceImageCompressionControlFeaturesEXT&                  Context::getImageCompressionControlFeaturesEXT                          (void) const { return m_device->getImageCompressionControlFeaturesEXT();                        }
-const vk::VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT& Context::getImageCompressionControlSwapchainFeaturesEXT         (void) const { return m_device->getImageCompressionControlSwapchainFeaturesEXT();       }
-const vk::VkPhysicalDeviceImageProcessingFeaturesQCOM&                                 Context::getImageProcessingFeaturesQCOM                                         (void) const { return m_device->getImageProcessingFeaturesQCOM();                                       }
-const vk::VkPhysicalDeviceImageRobustnessFeatures&                                             Context::getImageRobustnessFeatures                                                     (void) const { return m_device->getImageRobustnessFeatures();                                           }
-const vk::VkPhysicalDeviceImageViewMinLodFeaturesEXT&                                  Context::getImageViewMinLodFeaturesEXT                                          (void) const { return m_device->getImageViewMinLodFeaturesEXT();                                        }
-const vk::VkPhysicalDeviceIndexTypeUint8FeaturesEXT&                                   Context::getIndexTypeUint8FeaturesEXT                                           (void) const { return m_device->getIndexTypeUint8FeaturesEXT();                                         }
-const vk::VkPhysicalDeviceInheritedViewportScissorFeaturesNV&                  Context::getInheritedViewportScissorFeatures                            (void) const { return m_device->getInheritedViewportScissorFeatures();                          }
-const vk::VkPhysicalDeviceInlineUniformBlockFeatures&                                  Context::getInlineUniformBlockFeatures                                          (void) const { return m_device->getInlineUniformBlockFeatures();                                        }
-const vk::VkPhysicalDeviceInvocationMaskFeaturesHUAWEI&                                        Context::getInvocationMaskFeaturesHUAWEI                                        (void) const { return m_device->getInvocationMaskFeaturesHUAWEI();                                      }
-const vk::VkPhysicalDeviceLinearColorAttachmentFeaturesNV&                             Context::getLinearColorAttachmentFeatures                                       (void) const { return m_device->getLinearColorAttachmentFeatures();                                     }
-const vk::VkPhysicalDeviceLineRasterizationFeaturesEXT&                                        Context::getLineRasterizationFeaturesEXT                                        (void) const { return m_device->getLineRasterizationFeaturesEXT();                                      }
-const vk::VkPhysicalDeviceMaintenance4Features&                                                        Context::getMaintenance4Features                                                        (void) const { return m_device->getMaintenance4Features();                                                      }
-const vk::VkPhysicalDeviceMemoryPriorityFeaturesEXT&                                   Context::getMemoryPriorityFeaturesEXT                                           (void) const { return m_device->getMemoryPriorityFeaturesEXT();                                         }
-const vk::VkPhysicalDeviceMeshShaderFeaturesNV&                                                        Context::getMeshShaderFeatures                                                          (void) const { return m_device->getMeshShaderFeatures();                                                        }
-const vk::VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT&        Context::getMultisampledRenderToSingleSampledFeaturesEXT        (void) const { return m_device->getMultisampledRenderToSingleSampledFeaturesEXT();      }
-const vk::VkPhysicalDeviceMultiviewFeatures&                                                   Context::getMultiviewFeatures                                                           (void) const { return m_device->getMultiviewFeatures();                                                         }
-const vk::VkPhysicalDeviceMultiDrawFeaturesEXT&                                                        Context::getMultiDrawFeaturesEXT                                                        (void) const { return m_device->getMultiDrawFeaturesEXT();                                                      }
-const vk::VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE&                  Context::getMutableDescriptorTypeFeaturesVALVE                          (void) const { return m_device->getMutableDescriptorTypeFeaturesVALVE();                        }
-const vk::VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT&                               Context::getNonSeamlessCubeMapFeaturesEXT                                       (void) const { return m_device->getNonSeamlessCubeMapFeaturesEXT();                                     }
-const vk::VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT&                        Context::getPageableDeviceLocalMemoryFeaturesEXT                        (void) const { return m_device->getPageableDeviceLocalMemoryFeaturesEXT();                      }
-const vk::VkPhysicalDevicePerformanceQueryFeaturesKHR&                                 Context::getPerformanceQueryFeatures                                            (void) const { return m_device->getPerformanceQueryFeatures();                                          }
-const vk::VkPhysicalDevicePipelineCreationCacheControlFeatures&                        Context::getPipelineCreationCacheControlFeatures                        (void) const { return m_device->getPipelineCreationCacheControlFeatures();                      }
-const vk::VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&             Context::getPipelineExecutablePropertiesFeatures                        (void) const { return m_device->getPipelineExecutablePropertiesFeatures();                      }
-const vk::VkPhysicalDevicePipelinePropertiesFeaturesEXT&                               Context::getPipelinePropertiesFeaturesEXT                                       (void) const { return m_device->getPipelinePropertiesFeaturesEXT();                                     }
-const vk::VkPhysicalDevicePipelineRobustnessFeaturesEXT&                               Context::getPipelineRobustnessFeaturesEXT                                       (void) const { return m_device->getPipelineRobustnessFeaturesEXT();                                     }
-const vk::VkPhysicalDevicePortabilitySubsetFeaturesKHR&                                        Context::getPortabilitySubsetFeatures                                           (void) const { return m_device->getPortabilitySubsetFeatures();                                         }
-const vk::VkPhysicalDevicePresentIdFeaturesKHR&                                                        Context::getPresentIdFeatures                                                           (void) const { return m_device->getPresentIdFeatures();                                                         }
-const vk::VkPhysicalDevicePresentWaitFeaturesKHR&                                              Context::getPresentWaitFeatures                                                         (void) const { return m_device->getPresentWaitFeatures();                                                       }
-const vk::VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT&                 Context::getPrimitivesGeneratedQueryFeaturesEXT                         (void) const { return m_device->getPrimitivesGeneratedQueryFeaturesEXT();                       }
-const vk::VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT&             Context::getPrimitiveTopologyListRestartFeaturesEXT                     (void) const { return m_device->getPrimitiveTopologyListRestartFeaturesEXT();           }
-const vk::VkPhysicalDevicePrivateDataFeatures&                                                 Context::getPrivateDataFeatures                                                         (void) const { return m_device->getPrivateDataFeatures();                                                       }
-const vk::VkPhysicalDeviceProtectedMemoryFeatures&                                             Context::getProtectedMemoryFeatures                                                     (void) const { return m_device->getProtectedMemoryFeatures();                                           }
-const vk::VkPhysicalDeviceProvokingVertexFeaturesEXT&                                  Context::getProvokingVertexFeaturesEXT                                          (void) const { return m_device->getProvokingVertexFeaturesEXT();                                        }
-const vk::VkPhysicalDeviceRayQueryFeaturesKHR&                                                 Context::getRayQueryFeatures                                                            (void) const { return m_device->getRayQueryFeatures();                                                          }
-const vk::VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR&                   Context::getRayTracingMaintenance1Features                                      (void) const { return m_device->getRayTracingMaintenance1Features();                            }
-const vk::VkPhysicalDeviceRayTracingMotionBlurFeaturesNV&                              Context::getRayTracingMotionBlurFeatures                                        (void) const { return m_device->getRayTracingMotionBlurFeatures();                                      }
-const vk::VkPhysicalDeviceRayTracingPipelineFeaturesKHR&                               Context::getRayTracingPipelineFeatures                                          (void) const { return m_device->getRayTracingPipelineFeatures();                                        }
-const vk::VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&                        Context::getRepresentativeFragmentTestFeatures                          (void) const { return m_device->getRepresentativeFragmentTestFeatures();                        }
-const vk::VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT&                                  Context::getRGBA10X6FormatsFeaturesEXT                                          (void) const { return m_device->getRGBA10X6FormatsFeaturesEXT();                                        }
-const vk::VkPhysicalDeviceRobustness2FeaturesEXT&                                              Context::getRobustness2FeaturesEXT                                                      (void) const { return m_device->getRobustness2FeaturesEXT();                                            }
-const vk::VkPhysicalDeviceSamplerYcbcrConversionFeatures&                              Context::getSamplerYcbcrConversionFeatures                                      (void) const { return m_device->getSamplerYcbcrConversionFeatures();                            }
-const vk::VkPhysicalDeviceScalarBlockLayoutFeatures&                                   Context::getScalarBlockLayoutFeatures                                           (void) const { return m_device->getScalarBlockLayoutFeatures();                                         }
-const vk::VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures&                 Context::getSeparateDepthStencilLayoutsFeatures                         (void) const { return m_device->getSeparateDepthStencilLayoutsFeatures();                       }
-const vk::VkPhysicalDeviceShaderAtomicFloatFeaturesEXT&                                        Context::getShaderAtomicFloatFeaturesEXT                                        (void) const { return m_device->getShaderAtomicFloatFeaturesEXT();                                      }
-const vk::VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT&                               Context::getShaderAtomicFloat2FeaturesEXT                                       (void) const { return m_device->getShaderAtomicFloat2FeaturesEXT();                                     }
-const vk::VkPhysicalDeviceShaderAtomicInt64Features&                                   Context::getShaderAtomicInt64Features                                           (void) const { return m_device->getShaderAtomicInt64Features();                                         }
-const vk::VkPhysicalDeviceShaderClockFeaturesKHR&                                              Context::getShaderClockFeatures                                                         (void) const { return m_device->getShaderClockFeatures();                                                       }
-const vk::VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures&              Context::getShaderDemoteToHelperInvocationFeatures                      (void) const { return m_device->getShaderDemoteToHelperInvocationFeatures();            }
-const vk::VkPhysicalDeviceShaderDrawParametersFeatures&                                        Context::getShaderDrawParametersFeatures                                        (void) const { return m_device->getShaderDrawParametersFeatures();                                      }
-const vk::VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD&  Context::getShaderEarlyAndLateFragmentTestsFeaturesAMD          (void) const { return m_device->getShaderEarlyAndLateFragmentTestsFeaturesAMD();        }
-const vk::VkPhysicalDeviceShaderFloat16Int8Features&                                   Context::getShaderFloat16Int8Features                                           (void) const { return m_device->getShaderFloat16Int8Features();                                         }
-const vk::VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT&                   Context::getShaderImageAtomicInt64FeaturesEXT                           (void) const { return m_device->getShaderImageAtomicInt64FeaturesEXT();                         }
-const vk::VkPhysicalDeviceShaderImageFootprintFeaturesNV&                              Context::getShaderImageFootprintFeatures                                        (void) const { return m_device->getShaderImageFootprintFeatures();                                      }
-const vk::VkPhysicalDeviceShaderIntegerDotProductFeatures&                             Context::getShaderIntegerDotProductFeatures                                     (void) const { return m_device->getShaderIntegerDotProductFeatures();                           }
-const vk::VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL&                        Context::getShaderIntegerFunctions2FeaturesINTEL                        (void) const { return m_device->getShaderIntegerFunctions2FeaturesINTEL();                      }
-const vk::VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT&                   Context::getShaderModuleIdentifierFeaturesEXT                           (void) const { return m_device->getShaderModuleIdentifierFeaturesEXT();                         }
-const vk::VkPhysicalDeviceShaderSMBuiltinsFeaturesNV&                                  Context::getShaderSMBuiltinsFeatures                                            (void) const { return m_device->getShaderSMBuiltinsFeatures();                                          }
-const vk::VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures&                 Context::getShaderSubgroupExtendedTypesFeatures                         (void) const { return m_device->getShaderSubgroupExtendedTypesFeatures();                       }
-const vk::VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR& Context::getShaderSubgroupUniformControlFlowFeatures            (void) const { return m_device->getShaderSubgroupUniformControlFlowFeatures();          }
-const vk::VkPhysicalDeviceShaderTerminateInvocationFeatures&                   Context::getShaderTerminateInvocationFeatures                           (void) const { return m_device->getShaderTerminateInvocationFeatures();                         }
-const vk::VkPhysicalDeviceShadingRateImageFeaturesNV&                                  Context::getShadingRateImageFeatures                                            (void) const { return m_device->getShadingRateImageFeatures();                                          }
-const vk::VkPhysicalDeviceSubgroupSizeControlFeatures&                                 Context::getSubgroupSizeControlFeatures                                         (void) const { return m_device->getSubgroupSizeControlFeatures();                                       }
-const vk::VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT&                             Context::getSubpassMergeFeedbackFeaturesEXT                                     (void) const { return m_device->getSubpassMergeFeedbackFeaturesEXT();                           }
-const vk::VkPhysicalDeviceSubpassShadingFeaturesHUAWEI&                                        Context::getSubpassShadingFeaturesHUAWEI                                        (void) const { return m_device->getSubpassShadingFeaturesHUAWEI();                                      }
-const vk::VkPhysicalDeviceSynchronization2Features&                                            Context::getSynchronization2Features                                            (void) const { return m_device->getSynchronization2Features();                                          }
-const vk::VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT&                             Context::getTexelBufferAlignmentFeaturesEXT                                     (void) const { return m_device->getTexelBufferAlignmentFeaturesEXT();                           }
-const vk::VkPhysicalDeviceTextureCompressionASTCHDRFeatures&                   Context::getTextureCompressionASTCHDRFeatures                           (void) const { return m_device->getTextureCompressionASTCHDRFeatures();                         }
-const vk::VkPhysicalDeviceTilePropertiesFeaturesQCOM&                                  Context::getTilePropertiesFeaturesQCOM                                          (void) const { return m_device->getTilePropertiesFeaturesQCOM();                                        }
-const vk::VkPhysicalDeviceTimelineSemaphoreFeatures&                                   Context::getTimelineSemaphoreFeatures                                           (void) const { return m_device->getTimelineSemaphoreFeatures();                                         }
-const vk::VkPhysicalDeviceTransformFeedbackFeaturesEXT&                                        Context::getTransformFeedbackFeaturesEXT                                        (void) const { return m_device->getTransformFeedbackFeaturesEXT();                                      }
-const vk::VkPhysicalDeviceUniformBufferStandardLayoutFeatures&                 Context::getUniformBufferStandardLayoutFeatures                         (void) const { return m_device->getUniformBufferStandardLayoutFeatures();                       }
-const vk::VkPhysicalDeviceVariablePointersFeatures&                                            Context::getVariablePointersFeatures                                            (void) const { return m_device->getVariablePointersFeatures();                                          }
-const vk::VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT&                   Context::getVertexAttributeDivisorFeaturesEXT                           (void) const { return m_device->getVertexAttributeDivisorFeaturesEXT();                         }
-const vk::VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT&                  Context::getVertexInputDynamicStateFeaturesEXT                          (void) const { return m_device->getVertexInputDynamicStateFeaturesEXT();                        }
-const vk::VkPhysicalDeviceVulkanMemoryModelFeatures&                                   Context::getVulkanMemoryModelFeatures                                           (void) const { return m_device->getVulkanMemoryModelFeatures();                                         }
-const vk::VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR&            Context::getWorkgroupMemoryExplicitLayoutFeatures                       (void) const { return m_device->getWorkgroupMemoryExplicitLayoutFeatures();                     }
-const vk::VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT&                            Context::getYcbcr2Plane444FormatsFeaturesEXT                            (void) const { return m_device->getYcbcr2Plane444FormatsFeaturesEXT();                          }
-const vk::VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&                                 Context::getYcbcrImageArraysFeaturesEXT                                         (void) const { return m_device->getYcbcrImageArraysFeaturesEXT();                                       }
-const vk::VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures&               Context::getZeroInitializeWorkgroupMemoryFeatures                       (void) const { return m_device->getZeroInitializeWorkgroupMemoryFeatures();                     }
+const vk::VkPhysicalDeviceTransformFeedbackFeaturesEXT&                                                Context::getTransformFeedbackFeaturesEXT                                        (void) const { return m_device->getTransformFeedbackFeaturesEXT();                                      }
+const vk::VkPhysicalDeviceDynamicRenderingFeatures&                                                    Context::getDynamicRenderingFeatures                                            (void) const { return m_device->getDynamicRenderingFeatures();                                          }
+const vk::VkPhysicalDeviceCornerSampledImageFeaturesNV&                                                Context::getCornerSampledImageFeatures                                          (void) const { return m_device->getCornerSampledImageFeatures();                                        }
+const vk::VkPhysicalDeviceMultiviewFeatures&                                                           Context::getMultiviewFeatures                                                           (void) const { return m_device->getMultiviewFeatures();                                                         }
+const vk::VkPhysicalDeviceTextureCompressionASTCHDRFeatures&                           Context::getTextureCompressionASTCHDRFeatures                           (void) const { return m_device->getTextureCompressionASTCHDRFeatures();                         }
+const vk::VkPhysicalDeviceASTCDecodeFeaturesEXT&                                                       Context::getASTCDecodeFeaturesEXT                                                       (void) const { return m_device->getASTCDecodeFeaturesEXT();                                                     }
+const vk::VkPhysicalDevicePipelineRobustnessFeaturesEXT&                                       Context::getPipelineRobustnessFeaturesEXT                                       (void) const { return m_device->getPipelineRobustnessFeaturesEXT();                                     }
+const vk::VkPhysicalDeviceConditionalRenderingFeaturesEXT&                                     Context::getConditionalRenderingFeaturesEXT                                     (void) const { return m_device->getConditionalRenderingFeaturesEXT();                           }
+const vk::VkPhysicalDeviceShaderFloat16Int8Features&                                           Context::getShaderFloat16Int8Features                                           (void) const { return m_device->getShaderFloat16Int8Features();                                         }
+const vk::VkPhysicalDevice16BitStorageFeatures&                                                                Context::get16BitStorageFeatures                                                        (void) const { return m_device->get16BitStorageFeatures();                                                      }
+const vk::VkPhysicalDeviceDepthClipEnableFeaturesEXT&                                          Context::getDepthClipEnableFeaturesEXT                                          (void) const { return m_device->getDepthClipEnableFeaturesEXT();                                        }
+const vk::VkPhysicalDeviceImagelessFramebufferFeatures&                                                Context::getImagelessFramebufferFeatures                                        (void) const { return m_device->getImagelessFramebufferFeatures();                                      }
+const vk::VkPhysicalDevicePerformanceQueryFeaturesKHR&                                         Context::getPerformanceQueryFeatures                                            (void) const { return m_device->getPerformanceQueryFeatures();                                          }
+const vk::VkPhysicalDeviceVariablePointersFeatures&                                                    Context::getVariablePointersFeatures                                            (void) const { return m_device->getVariablePointersFeatures();                                          }
+const vk::VkPhysicalDeviceInlineUniformBlockFeatures&                                          Context::getInlineUniformBlockFeatures                                          (void) const { return m_device->getInlineUniformBlockFeatures();                                        }
+const vk::VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT&                           Context::getBlendOperationAdvancedFeaturesEXT                           (void) const { return m_device->getBlendOperationAdvancedFeaturesEXT();                         }
+const vk::VkPhysicalDeviceAccelerationStructureFeaturesKHR&                                    Context::getAccelerationStructureFeatures                                       (void) const { return m_device->getAccelerationStructureFeatures();                                     }
+const vk::VkPhysicalDeviceRayTracingPipelineFeaturesKHR&                                       Context::getRayTracingPipelineFeatures                                          (void) const { return m_device->getRayTracingPipelineFeatures();                                        }
+const vk::VkPhysicalDeviceRayQueryFeaturesKHR&                                                         Context::getRayQueryFeatures                                                            (void) const { return m_device->getRayQueryFeatures();                                                          }
+const vk::VkPhysicalDeviceShaderSMBuiltinsFeaturesNV&                                          Context::getShaderSMBuiltinsFeatures                                            (void) const { return m_device->getShaderSMBuiltinsFeatures();                                          }
+const vk::VkPhysicalDeviceSamplerYcbcrConversionFeatures&                                      Context::getSamplerYcbcrConversionFeatures                                      (void) const { return m_device->getSamplerYcbcrConversionFeatures();                            }
+const vk::VkPhysicalDeviceDescriptorIndexingFeatures&                                          Context::getDescriptorIndexingFeatures                                          (void) const { return m_device->getDescriptorIndexingFeatures();                                        }
+const vk::VkPhysicalDevicePortabilitySubsetFeaturesKHR&                                                Context::getPortabilitySubsetFeatures                                           (void) const { return m_device->getPortabilitySubsetFeatures();                                         }
+const vk::VkPhysicalDeviceShadingRateImageFeaturesNV&                                          Context::getShadingRateImageFeatures                                            (void) const { return m_device->getShadingRateImageFeatures();                                          }
+const vk::VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&                                Context::getRepresentativeFragmentTestFeatures                          (void) const { return m_device->getRepresentativeFragmentTestFeatures();                        }
+const vk::VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures&                         Context::getShaderSubgroupExtendedTypesFeatures                         (void) const { return m_device->getShaderSubgroupExtendedTypesFeatures();                       }
+const vk::VkPhysicalDevice8BitStorageFeatures&                                                         Context::get8BitStorageFeatures                                                         (void) const { return m_device->get8BitStorageFeatures();                                                       }
+const vk::VkPhysicalDeviceShaderAtomicInt64Features&                                           Context::getShaderAtomicInt64Features                                           (void) const { return m_device->getShaderAtomicInt64Features();                                         }
+const vk::VkPhysicalDeviceShaderClockFeaturesKHR&                                                      Context::getShaderClockFeatures                                                         (void) const { return m_device->getShaderClockFeatures();                                                       }
+const vk::VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR&                                      Context::getGlobalPriorityQueryFeatures                                         (void) const { return m_device->getGlobalPriorityQueryFeatures();                                       }
+const vk::VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT&                           Context::getVertexAttributeDivisorFeaturesEXT                           (void) const { return m_device->getVertexAttributeDivisorFeaturesEXT();                         }
+const vk::VkPhysicalDeviceComputeShaderDerivativesFeaturesNV&                          Context::getComputeShaderDerivativesFeatures                            (void) const { return m_device->getComputeShaderDerivativesFeatures();                          }
+const vk::VkPhysicalDeviceMeshShaderFeaturesNV&                                                                Context::getMeshShaderFeatures                                                          (void) const { return m_device->getMeshShaderFeatures();                                                        }
+const vk::VkPhysicalDeviceShaderImageFootprintFeaturesNV&                                      Context::getShaderImageFootprintFeatures                                        (void) const { return m_device->getShaderImageFootprintFeatures();                                      }
+const vk::VkPhysicalDeviceExclusiveScissorFeaturesNV&                                          Context::getExclusiveScissorFeatures                                            (void) const { return m_device->getExclusiveScissorFeatures();                                          }
+const vk::VkPhysicalDeviceTimelineSemaphoreFeatures&                                           Context::getTimelineSemaphoreFeatures                                           (void) const { return m_device->getTimelineSemaphoreFeatures();                                         }
+const vk::VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL&                                Context::getShaderIntegerFunctions2FeaturesINTEL                        (void) const { return m_device->getShaderIntegerFunctions2FeaturesINTEL();                      }
+const vk::VkPhysicalDeviceVulkanMemoryModelFeatures&                                           Context::getVulkanMemoryModelFeatures                                           (void) const { return m_device->getVulkanMemoryModelFeatures();                                         }
+const vk::VkPhysicalDeviceShaderTerminateInvocationFeatures&                           Context::getShaderTerminateInvocationFeatures                           (void) const { return m_device->getShaderTerminateInvocationFeatures();                         }
+const vk::VkPhysicalDeviceFragmentDensityMapFeaturesEXT&                                       Context::getFragmentDensityMapFeaturesEXT                                       (void) const { return m_device->getFragmentDensityMapFeaturesEXT();                                     }
+const vk::VkPhysicalDeviceScalarBlockLayoutFeatures&                                           Context::getScalarBlockLayoutFeatures                                           (void) const { return m_device->getScalarBlockLayoutFeatures();                                         }
+const vk::VkPhysicalDeviceSubgroupSizeControlFeatures&                                         Context::getSubgroupSizeControlFeatures                                         (void) const { return m_device->getSubgroupSizeControlFeatures();                                       }
+const vk::VkPhysicalDeviceFragmentShadingRateFeaturesKHR&                                      Context::getFragmentShadingRateFeatures                                         (void) const { return m_device->getFragmentShadingRateFeatures();                                       }
+const vk::VkPhysicalDeviceCoherentMemoryFeaturesAMD&                                           Context::getCoherentMemoryFeaturesAMD                                           (void) const { return m_device->getCoherentMemoryFeaturesAMD();                                         }
+const vk::VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT&                           Context::getShaderImageAtomicInt64FeaturesEXT                           (void) const { return m_device->getShaderImageAtomicInt64FeaturesEXT();                         }
+const vk::VkPhysicalDeviceMemoryPriorityFeaturesEXT&                                           Context::getMemoryPriorityFeaturesEXT                                           (void) const { return m_device->getMemoryPriorityFeaturesEXT();                                         }
+const vk::VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&          Context::getDedicatedAllocationImageAliasingFeatures            (void) const { return m_device->getDedicatedAllocationImageAliasingFeatures();          }
+const vk::VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures&                         Context::getSeparateDepthStencilLayoutsFeatures                         (void) const { return m_device->getSeparateDepthStencilLayoutsFeatures();                       }
+const vk::VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&                                      Context::getBufferDeviceAddressFeaturesEXT                                      (void) const { return m_device->getBufferDeviceAddressFeaturesEXT();                            }
+const vk::VkPhysicalDevicePresentWaitFeaturesKHR&                                                      Context::getPresentWaitFeatures                                                         (void) const { return m_device->getPresentWaitFeatures();                                                       }
+const vk::VkPhysicalDeviceCooperativeMatrixFeaturesNV&                                         Context::getCooperativeMatrixFeatures                                           (void) const { return m_device->getCooperativeMatrixFeatures();                                         }
+const vk::VkPhysicalDeviceCoverageReductionModeFeaturesNV&                                     Context::getCoverageReductionModeFeatures                                       (void) const { return m_device->getCoverageReductionModeFeatures();                                     }
+const vk::VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&                          Context::getFragmentShaderInterlockFeaturesEXT                          (void) const { return m_device->getFragmentShaderInterlockFeaturesEXT();                        }
+const vk::VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&                                         Context::getYcbcrImageArraysFeaturesEXT                                         (void) const { return m_device->getYcbcrImageArraysFeaturesEXT();                                       }
+const vk::VkPhysicalDeviceUniformBufferStandardLayoutFeatures&                         Context::getUniformBufferStandardLayoutFeatures                         (void) const { return m_device->getUniformBufferStandardLayoutFeatures();                       }
+const vk::VkPhysicalDeviceProvokingVertexFeaturesEXT&                                          Context::getProvokingVertexFeaturesEXT                                          (void) const { return m_device->getProvokingVertexFeaturesEXT();                                        }
+const vk::VkPhysicalDeviceBufferDeviceAddressFeatures&                                         Context::getBufferDeviceAddressFeatures                                         (void) const { return m_device->getBufferDeviceAddressFeatures();                                       }
+const vk::VkPhysicalDeviceLineRasterizationFeaturesEXT&                                                Context::getLineRasterizationFeaturesEXT                                        (void) const { return m_device->getLineRasterizationFeaturesEXT();                                      }
+const vk::VkPhysicalDeviceShaderAtomicFloatFeaturesEXT&                                                Context::getShaderAtomicFloatFeaturesEXT                                        (void) const { return m_device->getShaderAtomicFloatFeaturesEXT();                                      }
+const vk::VkPhysicalDeviceHostQueryResetFeatures&                                                      Context::getHostQueryResetFeatures                                                      (void) const { return m_device->getHostQueryResetFeatures();                                            }
+const vk::VkPhysicalDeviceIndexTypeUint8FeaturesEXT&                                           Context::getIndexTypeUint8FeaturesEXT                                           (void) const { return m_device->getIndexTypeUint8FeaturesEXT();                                         }
+const vk::VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&                                     Context::getExtendedDynamicStateFeaturesEXT                                     (void) const { return m_device->getExtendedDynamicStateFeaturesEXT();                           }
+const vk::VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&                     Context::getPipelineExecutablePropertiesFeatures                        (void) const { return m_device->getPipelineExecutablePropertiesFeatures();                      }
+const vk::VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT&                                       Context::getShaderAtomicFloat2FeaturesEXT                                       (void) const { return m_device->getShaderAtomicFloat2FeaturesEXT();                                     }
+const vk::VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures&                      Context::getShaderDemoteToHelperInvocationFeatures                      (void) const { return m_device->getShaderDemoteToHelperInvocationFeatures();            }
+const vk::VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV&                           Context::getDeviceGeneratedCommandsFeatures                                     (void) const { return m_device->getDeviceGeneratedCommandsFeatures();                           }
+const vk::VkPhysicalDeviceInheritedViewportScissorFeaturesNV&                          Context::getInheritedViewportScissorFeatures                            (void) const { return m_device->getInheritedViewportScissorFeatures();                          }
+const vk::VkPhysicalDeviceShaderIntegerDotProductFeatures&                                     Context::getShaderIntegerDotProductFeatures                                     (void) const { return m_device->getShaderIntegerDotProductFeatures();                           }
+const vk::VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT&                                     Context::getTexelBufferAlignmentFeaturesEXT                                     (void) const { return m_device->getTexelBufferAlignmentFeaturesEXT();                           }
+const vk::VkPhysicalDeviceDeviceMemoryReportFeaturesEXT&                                       Context::getDeviceMemoryReportFeaturesEXT                                       (void) const { return m_device->getDeviceMemoryReportFeaturesEXT();                                     }
+const vk::VkPhysicalDeviceRobustness2FeaturesEXT&                                                      Context::getRobustness2FeaturesEXT                                                      (void) const { return m_device->getRobustness2FeaturesEXT();                                            }
+const vk::VkPhysicalDeviceCustomBorderColorFeaturesEXT&                                                Context::getCustomBorderColorFeaturesEXT                                        (void) const { return m_device->getCustomBorderColorFeaturesEXT();                                      }
+const vk::VkPhysicalDevicePresentIdFeaturesKHR&                                                                Context::getPresentIdFeatures                                                           (void) const { return m_device->getPresentIdFeatures();                                                         }
+const vk::VkPhysicalDevicePrivateDataFeatures&                                                         Context::getPrivateDataFeatures                                                         (void) const { return m_device->getPrivateDataFeatures();                                                       }
+const vk::VkPhysicalDevicePipelineCreationCacheControlFeatures&                                Context::getPipelineCreationCacheControlFeatures                        (void) const { return m_device->getPipelineCreationCacheControlFeatures();                      }
+const vk::VkPhysicalDeviceDiagnosticsConfigFeaturesNV&                                         Context::getDiagnosticsConfigFeatures                                           (void) const { return m_device->getDiagnosticsConfigFeatures();                                         }
+const vk::VkPhysicalDeviceSynchronization2Features&                                                    Context::getSynchronization2Features                                            (void) const { return m_device->getSynchronization2Features();                                          }
+const vk::VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT&                          Context::getGraphicsPipelineLibraryFeaturesEXT                          (void) const { return m_device->getGraphicsPipelineLibraryFeaturesEXT();                        }
+const vk::VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD&          Context::getShaderEarlyAndLateFragmentTestsFeaturesAMD          (void) const { return m_device->getShaderEarlyAndLateFragmentTestsFeaturesAMD();        }
+const vk::VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR&                                Context::getFragmentShaderBarycentricFeatures                           (void) const { return m_device->getFragmentShaderBarycentricFeatures();                         }
+const vk::VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR&         Context::getShaderSubgroupUniformControlFlowFeatures            (void) const { return m_device->getShaderSubgroupUniformControlFlowFeatures();          }
+const vk::VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures&                       Context::getZeroInitializeWorkgroupMemoryFeatures                       (void) const { return m_device->getZeroInitializeWorkgroupMemoryFeatures();                     }
+const vk::VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV&                          Context::getFragmentShadingRateEnumsFeatures                            (void) const { return m_device->getFragmentShadingRateEnumsFeatures();                          }
+const vk::VkPhysicalDeviceRayTracingMotionBlurFeaturesNV&                                      Context::getRayTracingMotionBlurFeatures                                        (void) const { return m_device->getRayTracingMotionBlurFeatures();                                      }
+const vk::VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT&                                    Context::getYcbcr2Plane444FormatsFeaturesEXT                            (void) const { return m_device->getYcbcr2Plane444FormatsFeaturesEXT();                          }
+const vk::VkPhysicalDeviceFragmentDensityMap2FeaturesEXT&                                      Context::getFragmentDensityMap2FeaturesEXT                                      (void) const { return m_device->getFragmentDensityMap2FeaturesEXT();                            }
+const vk::VkPhysicalDeviceImageRobustnessFeatures&                                                     Context::getImageRobustnessFeatures                                                     (void) const { return m_device->getImageRobustnessFeatures();                                           }
+const vk::VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR&                    Context::getWorkgroupMemoryExplicitLayoutFeatures                       (void) const { return m_device->getWorkgroupMemoryExplicitLayoutFeatures();                     }
+const vk::VkPhysicalDeviceImageCompressionControlFeaturesEXT&                          Context::getImageCompressionControlFeaturesEXT                          (void) const { return m_device->getImageCompressionControlFeaturesEXT();                        }
+const vk::VkPhysicalDevice4444FormatsFeaturesEXT&                                                      Context::get4444FormatsFeaturesEXT                                                      (void) const { return m_device->get4444FormatsFeaturesEXT();                                            }
+const vk::VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM&       Context::getRasterizationOrderAttachmentAccessFeaturesARM       (void) const { return m_device->getRasterizationOrderAttachmentAccessFeaturesARM();     }
+const vk::VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT&                                          Context::getRGBA10X6FormatsFeaturesEXT                                          (void) const { return m_device->getRGBA10X6FormatsFeaturesEXT();                                        }
+const vk::VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE&                          Context::getMutableDescriptorTypeFeaturesVALVE                          (void) const { return m_device->getMutableDescriptorTypeFeaturesVALVE();                        }
+const vk::VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT&                          Context::getVertexInputDynamicStateFeaturesEXT                          (void) const { return m_device->getVertexInputDynamicStateFeaturesEXT();                        }
+const vk::VkPhysicalDeviceDepthClipControlFeaturesEXT&                                         Context::getDepthClipControlFeaturesEXT                                         (void) const { return m_device->getDepthClipControlFeaturesEXT();                                       }
+const vk::VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT&                     Context::getPrimitiveTopologyListRestartFeaturesEXT                     (void) const { return m_device->getPrimitiveTopologyListRestartFeaturesEXT();           }
+const vk::VkPhysicalDeviceSubpassShadingFeaturesHUAWEI&                                                Context::getSubpassShadingFeaturesHUAWEI                                        (void) const { return m_device->getSubpassShadingFeaturesHUAWEI();                                      }
+const vk::VkPhysicalDeviceInvocationMaskFeaturesHUAWEI&                                                Context::getInvocationMaskFeaturesHUAWEI                                        (void) const { return m_device->getInvocationMaskFeaturesHUAWEI();                                      }
+const vk::VkPhysicalDeviceExternalMemoryRDMAFeaturesNV&                                                Context::getExternalMemoryRDMAFeatures                                          (void) const { return m_device->getExternalMemoryRDMAFeatures();                                        }
+const vk::VkPhysicalDevicePipelinePropertiesFeaturesEXT&                                       Context::getPipelinePropertiesFeaturesEXT                                       (void) const { return m_device->getPipelinePropertiesFeaturesEXT();                                     }
+const vk::VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT&                Context::getMultisampledRenderToSingleSampledFeaturesEXT        (void) const { return m_device->getMultisampledRenderToSingleSampledFeaturesEXT();      }
+const vk::VkPhysicalDeviceExtendedDynamicState2FeaturesEXT&                                    Context::getExtendedDynamicState2FeaturesEXT                            (void) const { return m_device->getExtendedDynamicState2FeaturesEXT();                          }
+const vk::VkPhysicalDeviceColorWriteEnableFeaturesEXT&                                         Context::getColorWriteEnableFeaturesEXT                                         (void) const { return m_device->getColorWriteEnableFeaturesEXT();                                       }
+const vk::VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT&                         Context::getPrimitivesGeneratedQueryFeaturesEXT                         (void) const { return m_device->getPrimitivesGeneratedQueryFeaturesEXT();                       }
+const vk::VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR&                           Context::getRayTracingMaintenance1Features                                      (void) const { return m_device->getRayTracingMaintenance1Features();                            }
+const vk::VkPhysicalDeviceImageViewMinLodFeaturesEXT&                                          Context::getImageViewMinLodFeaturesEXT                                          (void) const { return m_device->getImageViewMinLodFeaturesEXT();                                        }
+const vk::VkPhysicalDeviceMultiDrawFeaturesEXT&                                                                Context::getMultiDrawFeaturesEXT                                                        (void) const { return m_device->getMultiDrawFeaturesEXT();                                                      }
+const vk::VkPhysicalDeviceImage2DViewOf3DFeaturesEXT&                                          Context::getImage2DViewOf3DFeaturesEXT                                          (void) const { return m_device->getImage2DViewOf3DFeaturesEXT();                                        }
+const vk::VkPhysicalDeviceBorderColorSwizzleFeaturesEXT&                                       Context::getBorderColorSwizzleFeaturesEXT                                       (void) const { return m_device->getBorderColorSwizzleFeaturesEXT();                                     }
+const vk::VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT&                                Context::getPageableDeviceLocalMemoryFeaturesEXT                        (void) const { return m_device->getPageableDeviceLocalMemoryFeaturesEXT();                      }
+const vk::VkPhysicalDeviceMaintenance4Features&                                                                Context::getMaintenance4Features                                                        (void) const { return m_device->getMaintenance4Features();                                                      }
+const vk::VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE&                       Context::getDescriptorSetHostMappingFeaturesVALVE                       (void) const { return m_device->getDescriptorSetHostMappingFeaturesVALVE();                     }
+const vk::VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT&                                       Context::getNonSeamlessCubeMapFeaturesEXT                                       (void) const { return m_device->getNonSeamlessCubeMapFeaturesEXT();                                     }
+const vk::VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM&                                Context::getFragmentDensityMapOffsetFeaturesQCOM                        (void) const { return m_device->getFragmentDensityMapOffsetFeaturesQCOM();                      }
+const vk::VkPhysicalDeviceLinearColorAttachmentFeaturesNV&                                     Context::getLinearColorAttachmentFeatures                                       (void) const { return m_device->getLinearColorAttachmentFeatures();                                     }
+const vk::VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT&         Context::getImageCompressionControlSwapchainFeaturesEXT         (void) const { return m_device->getImageCompressionControlSwapchainFeaturesEXT();       }
+const vk::VkPhysicalDeviceImageProcessingFeaturesQCOM&                                         Context::getImageProcessingFeaturesQCOM                                         (void) const { return m_device->getImageProcessingFeaturesQCOM();                                       }
+const vk::VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT&                                     Context::getSubpassMergeFeedbackFeaturesEXT                                     (void) const { return m_device->getSubpassMergeFeedbackFeaturesEXT();                           }
+const vk::VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT&                           Context::getShaderModuleIdentifierFeaturesEXT                           (void) const { return m_device->getShaderModuleIdentifierFeaturesEXT();                         }
+const vk::VkPhysicalDeviceTilePropertiesFeaturesQCOM&                                          Context::getTilePropertiesFeaturesQCOM                                          (void) const { return m_device->getTilePropertiesFeaturesQCOM();                                        }
+const vk::VkPhysicalDeviceProtectedMemoryFeatures&                                                     Context::getProtectedMemoryFeatures                                                     (void) const { return m_device->getProtectedMemoryFeatures();                                           }
+const vk::VkPhysicalDeviceShaderDrawParametersFeatures&                                                Context::getShaderDrawParametersFeatures                                        (void) const { return m_device->getShaderDrawParametersFeatures();                                      }
index 54f634a..38dc931 100644 (file)
  * This file was generated by /scripts/gen_framework.py
  */
 
-const VkPhysicalDevice16BitStorageFeatures&                                                    get16BitStorageFeatures                                                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevice16BitStorageFeatures>();                                                  }
-const VkPhysicalDevice4444FormatsFeaturesEXT&                                          get4444FormatsFeaturesEXT                                               (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevice4444FormatsFeaturesEXT>();                                                }
-const VkPhysicalDevice8BitStorageFeatures&                                                     get8BitStorageFeatures                                                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevice8BitStorageFeatures>();                                                   }
-const VkPhysicalDeviceAccelerationStructureFeaturesKHR&                                getAccelerationStructureFeatures                                (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceAccelerationStructureFeaturesKHR>();                              }
-const VkPhysicalDeviceASTCDecodeFeaturesEXT&                                           getASTCDecodeFeaturesEXT                                                (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceASTCDecodeFeaturesEXT>();                                                 }
-const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT&                       getBlendOperationAdvancedFeaturesEXT                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>();                             }
-const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT&                           getBorderColorSwizzleFeaturesEXT                                (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT>();                                 }
-const VkPhysicalDeviceBufferDeviceAddressFeatures&                                     getBufferDeviceAddressFeatures                                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceBufferDeviceAddressFeatures>();                                   }
-const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&                          getBufferDeviceAddressFeaturesEXT                               (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>();                                }
-const VkPhysicalDeviceCoherentMemoryFeaturesAMD&                                       getCoherentMemoryFeaturesAMD                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCoherentMemoryFeaturesAMD>();                                             }
-const VkPhysicalDeviceColorWriteEnableFeaturesEXT&                                     getColorWriteEnableFeaturesEXT                                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceColorWriteEnableFeaturesEXT>();                                   }
-const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV&                      getComputeShaderDerivativesFeatures                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>();                    }
-const VkPhysicalDeviceConditionalRenderingFeaturesEXT&                         getConditionalRenderingFeaturesEXT                              (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceConditionalRenderingFeaturesEXT>();                               }
-const VkPhysicalDeviceCooperativeMatrixFeaturesNV&                                     getCooperativeMatrixFeatures                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCooperativeMatrixFeaturesNV>();                                   }
-const VkPhysicalDeviceCornerSampledImageFeaturesNV&                                    getCornerSampledImageFeatures                                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCornerSampledImageFeaturesNV>();                                  }
-const VkPhysicalDeviceCoverageReductionModeFeaturesNV&                         getCoverageReductionModeFeatures                                (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCoverageReductionModeFeaturesNV>();                               }
-const VkPhysicalDeviceCustomBorderColorFeaturesEXT&                                    getCustomBorderColorFeaturesEXT                                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCustomBorderColorFeaturesEXT>();                                  }
-const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&      getDedicatedAllocationImageAliasingFeatures             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>();    }
-const VkPhysicalDeviceDepthClipControlFeaturesEXT&                                     getDepthClipControlFeaturesEXT                                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDepthClipControlFeaturesEXT>();                                   }
-const VkPhysicalDeviceDepthClipEnableFeaturesEXT&                                      getDepthClipEnableFeaturesEXT                                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDepthClipEnableFeaturesEXT>();                                    }
-const VkPhysicalDeviceDescriptorIndexingFeatures&                                      getDescriptorIndexingFeatures                                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDescriptorIndexingFeatures>();                                    }
-const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE&           getDescriptorSetHostMappingFeaturesVALVE                (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE>();                 }
-const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV&                       getDeviceGeneratedCommandsFeatures                              (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>();                             }
-const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT&                           getDeviceMemoryReportFeaturesEXT                                (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT>();                                 }
-const VkPhysicalDeviceDiagnosticsConfigFeaturesNV&                                     getDiagnosticsConfigFeatures                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>();                                   }
-const VkPhysicalDeviceDynamicRenderingFeatures&                                                getDynamicRenderingFeatures                                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDynamicRenderingFeatures>();                                              }
-const VkPhysicalDeviceExclusiveScissorFeaturesNV&                                      getExclusiveScissorFeatures                                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceExclusiveScissorFeaturesNV>();                                    }
-const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&                         getExtendedDynamicStateFeaturesEXT                              (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>();                               }
-const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT&                                getExtendedDynamicState2FeaturesEXT                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>();                              }
-const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV&                                    getExternalMemoryRDMAFeatures                                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV>();                                  }
-const VkPhysicalDeviceFragmentDensityMapFeaturesEXT&                           getFragmentDensityMapFeaturesEXT                                (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>();                                 }
-const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT&                          getFragmentDensityMap2FeaturesEXT                               (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT>();                                }
-const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM&                    getFragmentDensityMapOffsetFeaturesQCOM                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM>();                  }
-const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR&                    getFragmentShaderBarycentricFeatures                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR>();                  }
-const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&                      getFragmentShaderInterlockFeaturesEXT                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>();                    }
-const VkPhysicalDeviceFragmentShadingRateFeaturesKHR&                          getFragmentShadingRateFeatures                                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentShadingRateFeaturesKHR>();                                }
-const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV&                      getFragmentShadingRateEnumsFeatures                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV>();                    }
-const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR&                          getGlobalPriorityQueryFeatures                                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR>();                                }
-const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT&                      getGraphicsPipelineLibraryFeaturesEXT                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT>();                    }
-const VkPhysicalDeviceHostQueryResetFeatures&                                          getHostQueryResetFeatures                                               (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceHostQueryResetFeatures>();                                                }
-const VkPhysicalDeviceImagelessFramebufferFeatures&                                    getImagelessFramebufferFeatures                                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceImagelessFramebufferFeatures>();                                  }
-const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT&                                      getImage2DViewOf3DFeaturesEXT                                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT>();                                    }
-const VkPhysicalDeviceImageCompressionControlFeaturesEXT&                      getImageCompressionControlFeaturesEXT                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceImageCompressionControlFeaturesEXT>();                    }
-const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT&     getImageCompressionControlSwapchainFeaturesEXT  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT>();   }
-const VkPhysicalDeviceImageProcessingFeaturesQCOM&                                     getImageProcessingFeaturesQCOM                                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceImageProcessingFeaturesQCOM>();                                   }
-const VkPhysicalDeviceImageRobustnessFeatures&                                         getImageRobustnessFeatures                                              (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceImageRobustnessFeatures>();                                               }
-const VkPhysicalDeviceImageViewMinLodFeaturesEXT&                                      getImageViewMinLodFeaturesEXT                                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceImageViewMinLodFeaturesEXT>();                                    }
-const VkPhysicalDeviceIndexTypeUint8FeaturesEXT&                                       getIndexTypeUint8FeaturesEXT                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>();                                             }
-const VkPhysicalDeviceInheritedViewportScissorFeaturesNV&                      getInheritedViewportScissorFeatures                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceInheritedViewportScissorFeaturesNV>();                    }
-const VkPhysicalDeviceInlineUniformBlockFeatures&                                      getInlineUniformBlockFeatures                                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceInlineUniformBlockFeatures>();                                    }
-const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI&                                    getInvocationMaskFeaturesHUAWEI                                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI>();                                  }
-const VkPhysicalDeviceLinearColorAttachmentFeaturesNV&                         getLinearColorAttachmentFeatures                                (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceLinearColorAttachmentFeaturesNV>();                               }
-const VkPhysicalDeviceLineRasterizationFeaturesEXT&                                    getLineRasterizationFeaturesEXT                                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceLineRasterizationFeaturesEXT>();                                  }
-const VkPhysicalDeviceMaintenance4Features&                                                    getMaintenance4Features                                                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMaintenance4Features>();                                                  }
-const VkPhysicalDeviceMemoryPriorityFeaturesEXT&                                       getMemoryPriorityFeaturesEXT                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMemoryPriorityFeaturesEXT>();                                             }
-const VkPhysicalDeviceMeshShaderFeaturesNV&                                                    getMeshShaderFeatures                                                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMeshShaderFeaturesNV>();                                                  }
-const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT&    getMultisampledRenderToSingleSampledFeaturesEXT (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT>();  }
-const VkPhysicalDeviceMultiviewFeatures&                                                       getMultiviewFeatures                                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMultiviewFeatures>();                                                             }
-const VkPhysicalDeviceMultiDrawFeaturesEXT&                                                    getMultiDrawFeaturesEXT                                                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMultiDrawFeaturesEXT>();                                                  }
-const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE&                      getMutableDescriptorTypeFeaturesVALVE                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE>();                    }
-const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT&                           getNonSeamlessCubeMapFeaturesEXT                                (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT>();                                 }
-const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT&                    getPageableDeviceLocalMemoryFeaturesEXT                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT>();                  }
-const VkPhysicalDevicePerformanceQueryFeaturesKHR&                                     getPerformanceQueryFeatures                                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePerformanceQueryFeaturesKHR>();                                   }
-const VkPhysicalDevicePipelineCreationCacheControlFeatures&                    getPipelineCreationCacheControlFeatures                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePipelineCreationCacheControlFeatures>();                  }
-const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&         getPipelineExecutablePropertiesFeatures                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>();               }
-const VkPhysicalDevicePipelinePropertiesFeaturesEXT&                           getPipelinePropertiesFeaturesEXT                                (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePipelinePropertiesFeaturesEXT>();                                 }
-const VkPhysicalDevicePipelineRobustnessFeaturesEXT&                           getPipelineRobustnessFeaturesEXT                                (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePipelineRobustnessFeaturesEXT>();                                 }
-const VkPhysicalDevicePortabilitySubsetFeaturesKHR&                                    getPortabilitySubsetFeatures                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePortabilitySubsetFeaturesKHR>();                                  }
-const VkPhysicalDevicePresentIdFeaturesKHR&                                                    getPresentIdFeatures                                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePresentIdFeaturesKHR>();                                                  }
-const VkPhysicalDevicePresentWaitFeaturesKHR&                                          getPresentWaitFeatures                                                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePresentWaitFeaturesKHR>();                                                }
-const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT&                     getPrimitivesGeneratedQueryFeaturesEXT                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT>();                   }
-const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT&         getPrimitiveTopologyListRestartFeaturesEXT              (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>();               }
-const VkPhysicalDevicePrivateDataFeatures&                                                     getPrivateDataFeatures                                                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePrivateDataFeatures>();                                                   }
-const VkPhysicalDeviceProtectedMemoryFeatures&                                         getProtectedMemoryFeatures                                              (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceProtectedMemoryFeatures>();                                               }
-const VkPhysicalDeviceProvokingVertexFeaturesEXT&                                      getProvokingVertexFeaturesEXT                                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceProvokingVertexFeaturesEXT>();                                    }
-const VkPhysicalDeviceRayQueryFeaturesKHR&                                                     getRayQueryFeatures                                                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceRayQueryFeaturesKHR>();                                                   }
-const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR&                       getRayTracingMaintenance1Features                               (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR>();                             }
-const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV&                          getRayTracingMotionBlurFeatures                                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV>();                                }
-const VkPhysicalDeviceRayTracingPipelineFeaturesKHR&                           getRayTracingPipelineFeatures                                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceRayTracingPipelineFeaturesKHR>();                                 }
-const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&                    getRepresentativeFragmentTestFeatures                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>();                  }
-const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT&                                      getRGBA10X6FormatsFeaturesEXT                                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT>();                                    }
-const VkPhysicalDeviceRobustness2FeaturesEXT&                                          getRobustness2FeaturesEXT                                               (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceRobustness2FeaturesEXT>();                                                }
-const VkPhysicalDeviceSamplerYcbcrConversionFeatures&                          getSamplerYcbcrConversionFeatures                               (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceSamplerYcbcrConversionFeatures>();                                }
-const VkPhysicalDeviceScalarBlockLayoutFeatures&                                       getScalarBlockLayoutFeatures                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceScalarBlockLayoutFeatures>();                                             }
-const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures&                     getSeparateDepthStencilLayoutsFeatures                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures>();                   }
-const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT&                                    getShaderAtomicFloatFeaturesEXT                                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>();                                  }
-const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT&                           getShaderAtomicFloat2FeaturesEXT                                (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>();                                 }
-const VkPhysicalDeviceShaderAtomicInt64Features&                                       getShaderAtomicInt64Features                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderAtomicInt64Features>();                                             }
-const VkPhysicalDeviceShaderClockFeaturesKHR&                                          getShaderClockFeatures                                                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderClockFeaturesKHR>();                                                }
-const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures&          getShaderDemoteToHelperInvocationFeatures               (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures>();                }
-const VkPhysicalDeviceShaderDrawParametersFeatures&                                    getShaderDrawParametersFeatures                                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderDrawParametersFeatures>();                                  }
-const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD&      getShaderEarlyAndLateFragmentTestsFeaturesAMD   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD>();    }
-const VkPhysicalDeviceShaderFloat16Int8Features&                                       getShaderFloat16Int8Features                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderFloat16Int8Features>();                                             }
-const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT&                       getShaderImageAtomicInt64FeaturesEXT                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT>();                             }
-const VkPhysicalDeviceShaderImageFootprintFeaturesNV&                          getShaderImageFootprintFeatures                                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderImageFootprintFeaturesNV>();                                }
-const VkPhysicalDeviceShaderIntegerDotProductFeatures&                         getShaderIntegerDotProductFeatures                              (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderIntegerDotProductFeatures>();                               }
-const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL&                    getShaderIntegerFunctions2FeaturesINTEL                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>();                  }
-const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT&                       getShaderModuleIdentifierFeaturesEXT                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT>();                             }
-const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV&                                      getShaderSMBuiltinsFeatures                                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV>();                                    }
-const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures&                     getShaderSubgroupExtendedTypesFeatures                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures>();                   }
-const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR&     getShaderSubgroupUniformControlFlowFeatures             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR>();   }
-const VkPhysicalDeviceShaderTerminateInvocationFeatures&                       getShaderTerminateInvocationFeatures                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderTerminateInvocationFeatures>();                             }
-const VkPhysicalDeviceShadingRateImageFeaturesNV&                                      getShadingRateImageFeatures                                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShadingRateImageFeaturesNV>();                                    }
-const VkPhysicalDeviceSubgroupSizeControlFeatures&                                     getSubgroupSizeControlFeatures                                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceSubgroupSizeControlFeatures>();                                   }
-const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT&                         getSubpassMergeFeedbackFeaturesEXT                              (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT>();                               }
-const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI&                                    getSubpassShadingFeaturesHUAWEI                                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI>();                                  }
-const VkPhysicalDeviceSynchronization2Features&                                                getSynchronization2Features                                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceSynchronization2Features>();                                              }
-const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT&                         getTexelBufferAlignmentFeaturesEXT                              (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>();                               }
-const VkPhysicalDeviceTextureCompressionASTCHDRFeatures&                       getTextureCompressionASTCHDRFeatures                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTextureCompressionASTCHDRFeatures>();                             }
-const VkPhysicalDeviceTilePropertiesFeaturesQCOM&                                      getTilePropertiesFeaturesQCOM                                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTilePropertiesFeaturesQCOM>();                                    }
-const VkPhysicalDeviceTimelineSemaphoreFeatures&                                       getTimelineSemaphoreFeatures                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTimelineSemaphoreFeatures>();                                             }
-const VkPhysicalDeviceTransformFeedbackFeaturesEXT&                                    getTransformFeedbackFeaturesEXT                                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTransformFeedbackFeaturesEXT>();                                  }
-const VkPhysicalDeviceUniformBufferStandardLayoutFeatures&                     getUniformBufferStandardLayoutFeatures                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceUniformBufferStandardLayoutFeatures>();                   }
-const VkPhysicalDeviceVariablePointersFeatures&                                                getVariablePointersFeatures                                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceVariablePointersFeatures>();                                              }
-const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT&                       getVertexAttributeDivisorFeaturesEXT                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>();                             }
-const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT&                      getVertexInputDynamicStateFeaturesEXT                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT>();                    }
-const VkPhysicalDeviceVulkanMemoryModelFeatures&                                       getVulkanMemoryModelFeatures                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceVulkanMemoryModelFeatures>();                                             }
-const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR&                getWorkgroupMemoryExplicitLayoutFeatures                (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>();              }
-const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT&                                getYcbcr2Plane444FormatsFeaturesEXT                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT>();                              }
-const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&                                     getYcbcrImageArraysFeaturesEXT                                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>();                                   }
-const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures&           getZeroInitializeWorkgroupMemoryFeatures                (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures>();                 }
+const VkPhysicalDeviceTransformFeedbackFeaturesEXT&                                            getTransformFeedbackFeaturesEXT                                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTransformFeedbackFeaturesEXT>();                                  }
+const VkPhysicalDeviceDynamicRenderingFeatures&                                                        getDynamicRenderingFeatures                                                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDynamicRenderingFeatures>();                                              }
+const VkPhysicalDeviceCornerSampledImageFeaturesNV&                                            getCornerSampledImageFeatures                                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCornerSampledImageFeaturesNV>();                                  }
+const VkPhysicalDeviceMultiviewFeatures&                                                               getMultiviewFeatures                                                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMultiviewFeatures>();                                                             }
+const VkPhysicalDeviceTextureCompressionASTCHDRFeatures&                               getTextureCompressionASTCHDRFeatures                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTextureCompressionASTCHDRFeatures>();                             }
+const VkPhysicalDeviceASTCDecodeFeaturesEXT&                                                   getASTCDecodeFeaturesEXT                                                        (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceASTCDecodeFeaturesEXT>();                                                 }
+const VkPhysicalDevicePipelineRobustnessFeaturesEXT&                                   getPipelineRobustnessFeaturesEXT                                        (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePipelineRobustnessFeaturesEXT>();                                 }
+const VkPhysicalDeviceConditionalRenderingFeaturesEXT&                                 getConditionalRenderingFeaturesEXT                                      (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceConditionalRenderingFeaturesEXT>();                               }
+const VkPhysicalDeviceShaderFloat16Int8Features&                                               getShaderFloat16Int8Features                                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderFloat16Int8Features>();                                             }
+const VkPhysicalDevice16BitStorageFeatures&                                                            get16BitStorageFeatures                                                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevice16BitStorageFeatures>();                                                  }
+const VkPhysicalDeviceDepthClipEnableFeaturesEXT&                                              getDepthClipEnableFeaturesEXT                                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDepthClipEnableFeaturesEXT>();                                    }
+const VkPhysicalDeviceImagelessFramebufferFeatures&                                            getImagelessFramebufferFeatures                                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceImagelessFramebufferFeatures>();                                  }
+const VkPhysicalDevicePerformanceQueryFeaturesKHR&                                             getPerformanceQueryFeatures                                                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePerformanceQueryFeaturesKHR>();                                   }
+const VkPhysicalDeviceVariablePointersFeatures&                                                        getVariablePointersFeatures                                                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceVariablePointersFeatures>();                                              }
+const VkPhysicalDeviceInlineUniformBlockFeatures&                                              getInlineUniformBlockFeatures                                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceInlineUniformBlockFeatures>();                                    }
+const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT&                               getBlendOperationAdvancedFeaturesEXT                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>();                             }
+const VkPhysicalDeviceAccelerationStructureFeaturesKHR&                                        getAccelerationStructureFeatures                                        (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceAccelerationStructureFeaturesKHR>();                              }
+const VkPhysicalDeviceRayTracingPipelineFeaturesKHR&                                   getRayTracingPipelineFeatures                                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceRayTracingPipelineFeaturesKHR>();                                 }
+const VkPhysicalDeviceRayQueryFeaturesKHR&                                                             getRayQueryFeatures                                                                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceRayQueryFeaturesKHR>();                                                   }
+const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV&                                              getShaderSMBuiltinsFeatures                                                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV>();                                    }
+const VkPhysicalDeviceSamplerYcbcrConversionFeatures&                                  getSamplerYcbcrConversionFeatures                                       (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceSamplerYcbcrConversionFeatures>();                                }
+const VkPhysicalDeviceDescriptorIndexingFeatures&                                              getDescriptorIndexingFeatures                                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDescriptorIndexingFeatures>();                                    }
+const VkPhysicalDevicePortabilitySubsetFeaturesKHR&                                            getPortabilitySubsetFeatures                                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePortabilitySubsetFeaturesKHR>();                                  }
+const VkPhysicalDeviceShadingRateImageFeaturesNV&                                              getShadingRateImageFeatures                                                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShadingRateImageFeaturesNV>();                                    }
+const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&                            getRepresentativeFragmentTestFeatures                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>();                  }
+const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures&                             getShaderSubgroupExtendedTypesFeatures                          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures>();                   }
+const VkPhysicalDevice8BitStorageFeatures&                                                             get8BitStorageFeatures                                                          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevice8BitStorageFeatures>();                                                   }
+const VkPhysicalDeviceShaderAtomicInt64Features&                                               getShaderAtomicInt64Features                                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderAtomicInt64Features>();                                             }
+const VkPhysicalDeviceShaderClockFeaturesKHR&                                                  getShaderClockFeatures                                                          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderClockFeaturesKHR>();                                                }
+const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR&                                  getGlobalPriorityQueryFeatures                                          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR>();                                }
+const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT&                               getVertexAttributeDivisorFeaturesEXT                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>();                             }
+const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV&                              getComputeShaderDerivativesFeatures                                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>();                    }
+const VkPhysicalDeviceMeshShaderFeaturesNV&                                                            getMeshShaderFeatures                                                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMeshShaderFeaturesNV>();                                                  }
+const VkPhysicalDeviceShaderImageFootprintFeaturesNV&                                  getShaderImageFootprintFeatures                                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderImageFootprintFeaturesNV>();                                }
+const VkPhysicalDeviceExclusiveScissorFeaturesNV&                                              getExclusiveScissorFeatures                                                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceExclusiveScissorFeaturesNV>();                                    }
+const VkPhysicalDeviceTimelineSemaphoreFeatures&                                               getTimelineSemaphoreFeatures                                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTimelineSemaphoreFeatures>();                                             }
+const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL&                            getShaderIntegerFunctions2FeaturesINTEL                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>();                  }
+const VkPhysicalDeviceVulkanMemoryModelFeatures&                                               getVulkanMemoryModelFeatures                                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceVulkanMemoryModelFeatures>();                                             }
+const VkPhysicalDeviceShaderTerminateInvocationFeatures&                               getShaderTerminateInvocationFeatures                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderTerminateInvocationFeatures>();                             }
+const VkPhysicalDeviceFragmentDensityMapFeaturesEXT&                                   getFragmentDensityMapFeaturesEXT                                        (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>();                                 }
+const VkPhysicalDeviceScalarBlockLayoutFeatures&                                               getScalarBlockLayoutFeatures                                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceScalarBlockLayoutFeatures>();                                             }
+const VkPhysicalDeviceSubgroupSizeControlFeatures&                                             getSubgroupSizeControlFeatures                                          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceSubgroupSizeControlFeatures>();                                   }
+const VkPhysicalDeviceFragmentShadingRateFeaturesKHR&                                  getFragmentShadingRateFeatures                                          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentShadingRateFeaturesKHR>();                                }
+const VkPhysicalDeviceCoherentMemoryFeaturesAMD&                                               getCoherentMemoryFeaturesAMD                                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCoherentMemoryFeaturesAMD>();                                             }
+const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT&                               getShaderImageAtomicInt64FeaturesEXT                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT>();                             }
+const VkPhysicalDeviceMemoryPriorityFeaturesEXT&                                               getMemoryPriorityFeaturesEXT                                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMemoryPriorityFeaturesEXT>();                                             }
+const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&              getDedicatedAllocationImageAliasingFeatures                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>();    }
+const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures&                             getSeparateDepthStencilLayoutsFeatures                          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures>();                   }
+const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&                                  getBufferDeviceAddressFeaturesEXT                                       (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>();                                }
+const VkPhysicalDevicePresentWaitFeaturesKHR&                                                  getPresentWaitFeatures                                                          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePresentWaitFeaturesKHR>();                                                }
+const VkPhysicalDeviceCooperativeMatrixFeaturesNV&                                             getCooperativeMatrixFeatures                                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCooperativeMatrixFeaturesNV>();                                   }
+const VkPhysicalDeviceCoverageReductionModeFeaturesNV&                                 getCoverageReductionModeFeatures                                        (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCoverageReductionModeFeaturesNV>();                               }
+const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&                              getFragmentShaderInterlockFeaturesEXT                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>();                    }
+const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&                                             getYcbcrImageArraysFeaturesEXT                                          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>();                                   }
+const VkPhysicalDeviceUniformBufferStandardLayoutFeatures&                             getUniformBufferStandardLayoutFeatures                          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceUniformBufferStandardLayoutFeatures>();                   }
+const VkPhysicalDeviceProvokingVertexFeaturesEXT&                                              getProvokingVertexFeaturesEXT                                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceProvokingVertexFeaturesEXT>();                                    }
+const VkPhysicalDeviceBufferDeviceAddressFeatures&                                             getBufferDeviceAddressFeatures                                          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceBufferDeviceAddressFeatures>();                                   }
+const VkPhysicalDeviceLineRasterizationFeaturesEXT&                                            getLineRasterizationFeaturesEXT                                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceLineRasterizationFeaturesEXT>();                                  }
+const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT&                                            getShaderAtomicFloatFeaturesEXT                                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT>();                                  }
+const VkPhysicalDeviceHostQueryResetFeatures&                                                  getHostQueryResetFeatures                                                       (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceHostQueryResetFeatures>();                                                }
+const VkPhysicalDeviceIndexTypeUint8FeaturesEXT&                                               getIndexTypeUint8FeaturesEXT                                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>();                                             }
+const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&                                 getExtendedDynamicStateFeaturesEXT                                      (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>();                               }
+const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&                 getPipelineExecutablePropertiesFeatures                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>();               }
+const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT&                                   getShaderAtomicFloat2FeaturesEXT                                        (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT>();                                 }
+const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures&                  getShaderDemoteToHelperInvocationFeatures                       (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures>();                }
+const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV&                               getDeviceGeneratedCommandsFeatures                                      (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>();                             }
+const VkPhysicalDeviceInheritedViewportScissorFeaturesNV&                              getInheritedViewportScissorFeatures                                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceInheritedViewportScissorFeaturesNV>();                    }
+const VkPhysicalDeviceShaderIntegerDotProductFeatures&                                 getShaderIntegerDotProductFeatures                                      (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderIntegerDotProductFeatures>();                               }
+const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT&                                 getTexelBufferAlignmentFeaturesEXT                                      (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>();                               }
+const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT&                                   getDeviceMemoryReportFeaturesEXT                                        (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT>();                                 }
+const VkPhysicalDeviceRobustness2FeaturesEXT&                                                  getRobustness2FeaturesEXT                                                       (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceRobustness2FeaturesEXT>();                                                }
+const VkPhysicalDeviceCustomBorderColorFeaturesEXT&                                            getCustomBorderColorFeaturesEXT                                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCustomBorderColorFeaturesEXT>();                                  }
+const VkPhysicalDevicePresentIdFeaturesKHR&                                                            getPresentIdFeatures                                                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePresentIdFeaturesKHR>();                                                  }
+const VkPhysicalDevicePrivateDataFeatures&                                                             getPrivateDataFeatures                                                          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePrivateDataFeatures>();                                                   }
+const VkPhysicalDevicePipelineCreationCacheControlFeatures&                            getPipelineCreationCacheControlFeatures                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePipelineCreationCacheControlFeatures>();                  }
+const VkPhysicalDeviceDiagnosticsConfigFeaturesNV&                                             getDiagnosticsConfigFeatures                                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>();                                   }
+const VkPhysicalDeviceSynchronization2Features&                                                        getSynchronization2Features                                                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceSynchronization2Features>();                                              }
+const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT&                              getGraphicsPipelineLibraryFeaturesEXT                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT>();                    }
+const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD&              getShaderEarlyAndLateFragmentTestsFeaturesAMD           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD>();    }
+const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR&                            getFragmentShaderBarycentricFeatures                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR>();                  }
+const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR&             getShaderSubgroupUniformControlFlowFeatures                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR>();   }
+const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures&                   getZeroInitializeWorkgroupMemoryFeatures                        (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures>();                 }
+const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV&                              getFragmentShadingRateEnumsFeatures                                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV>();                    }
+const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV&                                  getRayTracingMotionBlurFeatures                                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV>();                                }
+const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT&                                        getYcbcr2Plane444FormatsFeaturesEXT                                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT>();                              }
+const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT&                                  getFragmentDensityMap2FeaturesEXT                                       (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT>();                                }
+const VkPhysicalDeviceImageRobustnessFeatures&                                                 getImageRobustnessFeatures                                                      (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceImageRobustnessFeatures>();                                               }
+const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR&                        getWorkgroupMemoryExplicitLayoutFeatures                        (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>();              }
+const VkPhysicalDeviceImageCompressionControlFeaturesEXT&                              getImageCompressionControlFeaturesEXT                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceImageCompressionControlFeaturesEXT>();                    }
+const VkPhysicalDevice4444FormatsFeaturesEXT&                                                  get4444FormatsFeaturesEXT                                                       (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevice4444FormatsFeaturesEXT>();                                                }
+const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM&   getRasterizationOrderAttachmentAccessFeaturesARM        (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM>(); }
+const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT&                                              getRGBA10X6FormatsFeaturesEXT                                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT>();                                    }
+const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE&                              getMutableDescriptorTypeFeaturesVALVE                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE>();                    }
+const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT&                              getVertexInputDynamicStateFeaturesEXT                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT>();                    }
+const VkPhysicalDeviceDepthClipControlFeaturesEXT&                                             getDepthClipControlFeaturesEXT                                          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDepthClipControlFeaturesEXT>();                                   }
+const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT&                 getPrimitiveTopologyListRestartFeaturesEXT                      (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>();               }
+const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI&                                            getSubpassShadingFeaturesHUAWEI                                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI>();                                  }
+const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI&                                            getInvocationMaskFeaturesHUAWEI                                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI>();                                  }
+const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV&                                            getExternalMemoryRDMAFeatures                                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV>();                                  }
+const VkPhysicalDevicePipelinePropertiesFeaturesEXT&                                   getPipelinePropertiesFeaturesEXT                                        (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePipelinePropertiesFeaturesEXT>();                                 }
+const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT&            getMultisampledRenderToSingleSampledFeaturesEXT         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT>();  }
+const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT&                                        getExtendedDynamicState2FeaturesEXT                                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT>();                              }
+const VkPhysicalDeviceColorWriteEnableFeaturesEXT&                                             getColorWriteEnableFeaturesEXT                                          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceColorWriteEnableFeaturesEXT>();                                   }
+const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT&                             getPrimitivesGeneratedQueryFeaturesEXT                          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT>();                   }
+const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR&                               getRayTracingMaintenance1Features                                       (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR>();                             }
+const VkPhysicalDeviceImageViewMinLodFeaturesEXT&                                              getImageViewMinLodFeaturesEXT                                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceImageViewMinLodFeaturesEXT>();                                    }
+const VkPhysicalDeviceMultiDrawFeaturesEXT&                                                            getMultiDrawFeaturesEXT                                                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMultiDrawFeaturesEXT>();                                                  }
+const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT&                                              getImage2DViewOf3DFeaturesEXT                                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT>();                                    }
+const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT&                                   getBorderColorSwizzleFeaturesEXT                                        (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT>();                                 }
+const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT&                            getPageableDeviceLocalMemoryFeaturesEXT                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT>();                  }
+const VkPhysicalDeviceMaintenance4Features&                                                            getMaintenance4Features                                                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMaintenance4Features>();                                                  }
+const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE&                   getDescriptorSetHostMappingFeaturesVALVE                        (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE>();                 }
+const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT&                                   getNonSeamlessCubeMapFeaturesEXT                                        (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT>();                                 }
+const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM&                            getFragmentDensityMapOffsetFeaturesQCOM                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM>();                  }
+const VkPhysicalDeviceLinearColorAttachmentFeaturesNV&                                 getLinearColorAttachmentFeatures                                        (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceLinearColorAttachmentFeaturesNV>();                               }
+const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT&             getImageCompressionControlSwapchainFeaturesEXT          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT>();   }
+const VkPhysicalDeviceImageProcessingFeaturesQCOM&                                             getImageProcessingFeaturesQCOM                                          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceImageProcessingFeaturesQCOM>();                                   }
+const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT&                                 getSubpassMergeFeedbackFeaturesEXT                                      (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT>();                               }
+const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT&                               getShaderModuleIdentifierFeaturesEXT                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT>();                             }
+const VkPhysicalDeviceTilePropertiesFeaturesQCOM&                                              getTilePropertiesFeaturesQCOM                                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTilePropertiesFeaturesQCOM>();                                    }
+const VkPhysicalDeviceProtectedMemoryFeatures&                                                 getProtectedMemoryFeatures                                                      (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceProtectedMemoryFeatures>();                                               }
+const VkPhysicalDeviceShaderDrawParametersFeatures&                                            getShaderDrawParametersFeatures                                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderDrawParametersFeatures>();                                  }
index a1bdea8..370ba7f 100644 (file)
@@ -16,10 +16,10 @@ UnmapMemoryFunc                                                                             unmapMemory;
 FlushMappedMemoryRangesFunc                                                    flushMappedMemoryRanges;
 InvalidateMappedMemoryRangesFunc                                       invalidateMappedMemoryRanges;
 GetDeviceMemoryCommitmentFunc                                          getDeviceMemoryCommitment;
-BindBufferMemoryFunc                                                           bindBufferMemory;
-BindImageMemoryFunc                                                                    bindImageMemory;
 GetBufferMemoryRequirementsFunc                                                getBufferMemoryRequirements;
+BindBufferMemoryFunc                                                           bindBufferMemory;
 GetImageMemoryRequirementsFunc                                         getImageMemoryRequirements;
+BindImageMemoryFunc                                                                    bindImageMemory;
 GetImageSparseMemoryRequirementsFunc                           getImageSparseMemoryRequirements;
 QueueBindSparseFunc                                                                    queueBindSparse;
 CreateFenceFunc                                                                                createFence;
@@ -37,6 +37,7 @@ ResetEventFunc                                                                                resetEvent;
 CreateQueryPoolFunc                                                                    createQueryPool;
 DestroyQueryPoolFunc                                                           destroyQueryPool;
 GetQueryPoolResultsFunc                                                                getQueryPoolResults;
+ResetQueryPoolFunc                                                                     resetQueryPool;
 CreateBufferFunc                                                                       createBuffer;
 DestroyBufferFunc                                                                      destroyBuffer;
 CreateBufferViewFunc                                                           createBufferView;
@@ -54,6 +55,7 @@ GetPipelineCacheDataFunc                                                      getPipelineCacheData;
 MergePipelineCachesFunc                                                                mergePipelineCaches;
 CreateGraphicsPipelinesFunc                                                    createGraphicsPipelines;
 CreateComputePipelinesFunc                                                     createComputePipelines;
+GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIFunc      getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
 DestroyPipelineFunc                                                                    destroyPipeline;
 CreatePipelineLayoutFunc                                                       createPipelineLayout;
 DestroyPipelineLayoutFunc                                                      destroyPipelineLayout;
@@ -95,10 +97,13 @@ CmdBindIndexBufferFunc                                                              cmdBindIndexBuffer;
 CmdBindVertexBuffersFunc                                                       cmdBindVertexBuffers;
 CmdDrawFunc                                                                                    cmdDraw;
 CmdDrawIndexedFunc                                                                     cmdDrawIndexed;
+CmdDrawMultiEXTFunc                                                                    cmdDrawMultiEXT;
+CmdDrawMultiIndexedEXTFunc                                                     cmdDrawMultiIndexedEXT;
 CmdDrawIndirectFunc                                                                    cmdDrawIndirect;
 CmdDrawIndexedIndirectFunc                                                     cmdDrawIndexedIndirect;
 CmdDispatchFunc                                                                                cmdDispatch;
 CmdDispatchIndirectFunc                                                                cmdDispatchIndirect;
+CmdSubpassShadingHUAWEIFunc                                                    cmdSubpassShadingHUAWEI;
 CmdCopyBufferFunc                                                                      cmdCopyBuffer;
 CmdCopyImageFunc                                                                       cmdCopyImage;
 CmdBlitImageFunc                                                                       cmdBlitImage;
@@ -116,6 +121,8 @@ CmdWaitEventsFunc                                                                   cmdWaitEvents;
 CmdPipelineBarrierFunc                                                         cmdPipelineBarrier;
 CmdBeginQueryFunc                                                                      cmdBeginQuery;
 CmdEndQueryFunc                                                                                cmdEndQuery;
+CmdBeginConditionalRenderingEXTFunc                                    cmdBeginConditionalRenderingEXT;
+CmdEndConditionalRenderingEXTFunc                                      cmdEndConditionalRenderingEXT;
 CmdResetQueryPoolFunc                                                          cmdResetQueryPool;
 CmdWriteTimestampFunc                                                          cmdWriteTimestamp;
 CmdCopyQueryPoolResultsFunc                                                    cmdCopyQueryPoolResults;
@@ -124,136 +131,83 @@ CmdBeginRenderPassFunc                                                           cmdBeginRenderPass;
 CmdNextSubpassFunc                                                                     cmdNextSubpass;
 CmdEndRenderPassFunc                                                           cmdEndRenderPass;
 CmdExecuteCommandsFunc                                                         cmdExecuteCommands;
-BindBufferMemory2Func                                                          bindBufferMemory2;
-BindImageMemory2Func                                                           bindImageMemory2;
-GetDeviceGroupPeerMemoryFeaturesFunc                           getDeviceGroupPeerMemoryFeatures;
-CmdSetDeviceMaskFunc                                                           cmdSetDeviceMask;
-CmdDispatchBaseFunc                                                                    cmdDispatchBase;
-GetImageMemoryRequirements2Func                                                getImageMemoryRequirements2;
-GetBufferMemoryRequirements2Func                                       getBufferMemoryRequirements2;
-GetImageSparseMemoryRequirements2Func                          getImageSparseMemoryRequirements2;
-TrimCommandPoolFunc                                                                    trimCommandPool;
-GetDeviceQueue2Func                                                                    getDeviceQueue2;
-CreateSamplerYcbcrConversionFunc                                       createSamplerYcbcrConversion;
-DestroySamplerYcbcrConversionFunc                                      destroySamplerYcbcrConversion;
-CreateDescriptorUpdateTemplateFunc                                     createDescriptorUpdateTemplate;
-DestroyDescriptorUpdateTemplateFunc                                    destroyDescriptorUpdateTemplate;
-UpdateDescriptorSetWithTemplateFunc                                    updateDescriptorSetWithTemplate;
-GetDescriptorSetLayoutSupportFunc                                      getDescriptorSetLayoutSupport;
-CmdDrawIndirectCountFunc                                                       cmdDrawIndirectCount;
-CmdDrawIndexedIndirectCountFunc                                                cmdDrawIndexedIndirectCount;
-CreateRenderPass2Func                                                          createRenderPass2;
-CmdBeginRenderPass2Func                                                                cmdBeginRenderPass2;
-CmdNextSubpass2Func                                                                    cmdNextSubpass2;
-CmdEndRenderPass2Func                                                          cmdEndRenderPass2;
-ResetQueryPoolFunc                                                                     resetQueryPool;
-GetSemaphoreCounterValueFunc                                           getSemaphoreCounterValue;
-WaitSemaphoresFunc                                                                     waitSemaphores;
-SignalSemaphoreFunc                                                                    signalSemaphore;
-GetBufferDeviceAddressFunc                                                     getBufferDeviceAddress;
-GetBufferOpaqueCaptureAddressFunc                                      getBufferOpaqueCaptureAddress;
-GetDeviceMemoryOpaqueCaptureAddressFunc                                getDeviceMemoryOpaqueCaptureAddress;
-CreatePrivateDataSlotFunc                                                      createPrivateDataSlot;
-DestroyPrivateDataSlotFunc                                                     destroyPrivateDataSlot;
-SetPrivateDataFunc                                                                     setPrivateData;
-GetPrivateDataFunc                                                                     getPrivateData;
-CmdSetEvent2Func                                                                       cmdSetEvent2;
-CmdResetEvent2Func                                                                     cmdResetEvent2;
-CmdWaitEvents2Func                                                                     cmdWaitEvents2;
-CmdPipelineBarrier2Func                                                                cmdPipelineBarrier2;
-CmdWriteTimestamp2Func                                                         cmdWriteTimestamp2;
-QueueSubmit2Func                                                                       queueSubmit2;
-CmdCopyBuffer2Func                                                                     cmdCopyBuffer2;
-CmdCopyImage2Func                                                                      cmdCopyImage2;
-CmdCopyBufferToImage2Func                                                      cmdCopyBufferToImage2;
-CmdCopyImageToBuffer2Func                                                      cmdCopyImageToBuffer2;
-CmdBlitImage2Func                                                                      cmdBlitImage2;
-CmdResolveImage2Func                                                           cmdResolveImage2;
-CmdBeginRenderingFunc                                                          cmdBeginRendering;
-CmdEndRenderingFunc                                                                    cmdEndRendering;
-CmdSetCullModeFunc                                                                     cmdSetCullMode;
-CmdSetFrontFaceFunc                                                                    cmdSetFrontFace;
-CmdSetPrimitiveTopologyFunc                                                    cmdSetPrimitiveTopology;
-CmdSetViewportWithCountFunc                                                    cmdSetViewportWithCount;
-CmdSetScissorWithCountFunc                                                     cmdSetScissorWithCount;
-CmdBindVertexBuffers2Func                                                      cmdBindVertexBuffers2;
-CmdSetDepthTestEnableFunc                                                      cmdSetDepthTestEnable;
-CmdSetDepthWriteEnableFunc                                                     cmdSetDepthWriteEnable;
-CmdSetDepthCompareOpFunc                                                       cmdSetDepthCompareOp;
-CmdSetDepthBoundsTestEnableFunc                                                cmdSetDepthBoundsTestEnable;
-CmdSetStencilTestEnableFunc                                                    cmdSetStencilTestEnable;
-CmdSetStencilOpFunc                                                                    cmdSetStencilOp;
-CmdSetRasterizerDiscardEnableFunc                                      cmdSetRasterizerDiscardEnable;
-CmdSetDepthBiasEnableFunc                                                      cmdSetDepthBiasEnable;
-CmdSetPrimitiveRestartEnableFunc                                       cmdSetPrimitiveRestartEnable;
-GetDeviceBufferMemoryRequirementsFunc                          getDeviceBufferMemoryRequirements;
-GetDeviceImageMemoryRequirementsFunc                           getDeviceImageMemoryRequirements;
-GetDeviceImageSparseMemoryRequirementsFunc                     getDeviceImageSparseMemoryRequirements;
+CreateSharedSwapchainsKHRFunc                                          createSharedSwapchainsKHR;
 CreateSwapchainKHRFunc                                                         createSwapchainKHR;
 DestroySwapchainKHRFunc                                                                destroySwapchainKHR;
 GetSwapchainImagesKHRFunc                                                      getSwapchainImagesKHR;
 AcquireNextImageKHRFunc                                                                acquireNextImageKHR;
 QueuePresentKHRFunc                                                                    queuePresentKHR;
-GetDeviceGroupPresentCapabilitiesKHRFunc                       getDeviceGroupPresentCapabilitiesKHR;
-GetDeviceGroupSurfacePresentModesKHRFunc                       getDeviceGroupSurfacePresentModesKHR;
-AcquireNextImage2KHRFunc                                                       acquireNextImage2KHR;
-CreateSharedSwapchainsKHRFunc                                          createSharedSwapchainsKHR;
-GetMemoryFdKHRFunc                                                                     getMemoryFdKHR;
-GetMemoryFdPropertiesKHRFunc                                           getMemoryFdPropertiesKHR;
-ImportSemaphoreFdKHRFunc                                                       importSemaphoreFdKHR;
-GetSemaphoreFdKHRFunc                                                          getSemaphoreFdKHR;
-CmdPushDescriptorSetKHRFunc                                                    cmdPushDescriptorSetKHR;
-CmdPushDescriptorSetWithTemplateKHRFunc                                cmdPushDescriptorSetWithTemplateKHR;
-GetSwapchainStatusKHRFunc                                                      getSwapchainStatusKHR;
-ImportFenceFdKHRFunc                                                           importFenceFdKHR;
-GetFenceFdKHRFunc                                                                      getFenceFdKHR;
-AcquireProfilingLockKHRFunc                                                    acquireProfilingLockKHR;
-ReleaseProfilingLockKHRFunc                                                    releaseProfilingLockKHR;
-CmdSetFragmentShadingRateKHRFunc                                       cmdSetFragmentShadingRateKHR;
-WaitForPresentKHRFunc                                                          waitForPresentKHR;
-CreateDeferredOperationKHRFunc                                         createDeferredOperationKHR;
-DestroyDeferredOperationKHRFunc                                                destroyDeferredOperationKHR;
-GetDeferredOperationMaxConcurrencyKHRFunc                      getDeferredOperationMaxConcurrencyKHR;
-GetDeferredOperationResultKHRFunc                                      getDeferredOperationResultKHR;
-DeferredOperationJoinKHRFunc                                           deferredOperationJoinKHR;
-GetPipelineExecutablePropertiesKHRFunc                         getPipelineExecutablePropertiesKHR;
-GetPipelineExecutableStatisticsKHRFunc                         getPipelineExecutableStatisticsKHR;
-GetPipelineExecutableInternalRepresentationsKHRFunc    getPipelineExecutableInternalRepresentationsKHR;
-CmdWriteBufferMarker2AMDFunc                                           cmdWriteBufferMarker2AMD;
-GetQueueCheckpointData2NVFunc                                          getQueueCheckpointData2NV;
-CmdTraceRaysIndirect2KHRFunc                                           cmdTraceRaysIndirect2KHR;
-DebugMarkerSetObjectTagEXTFunc                                         debugMarkerSetObjectTagEXT;
 DebugMarkerSetObjectNameEXTFunc                                                debugMarkerSetObjectNameEXT;
+DebugMarkerSetObjectTagEXTFunc                                         debugMarkerSetObjectTagEXT;
 CmdDebugMarkerBeginEXTFunc                                                     cmdDebugMarkerBeginEXT;
 CmdDebugMarkerEndEXTFunc                                                       cmdDebugMarkerEndEXT;
 CmdDebugMarkerInsertEXTFunc                                                    cmdDebugMarkerInsertEXT;
-CmdBindTransformFeedbackBuffersEXTFunc                         cmdBindTransformFeedbackBuffersEXT;
-CmdBeginTransformFeedbackEXTFunc                                       cmdBeginTransformFeedbackEXT;
-CmdEndTransformFeedbackEXTFunc                                         cmdEndTransformFeedbackEXT;
-CmdBeginQueryIndexedEXTFunc                                                    cmdBeginQueryIndexedEXT;
-CmdEndQueryIndexedEXTFunc                                                      cmdEndQueryIndexedEXT;
-CmdDrawIndirectByteCountEXTFunc                                                cmdDrawIndirectByteCountEXT;
-CreateCuModuleNVXFunc                                                          createCuModuleNVX;
-CreateCuFunctionNVXFunc                                                                createCuFunctionNVX;
-DestroyCuModuleNVXFunc                                                         destroyCuModuleNVX;
-DestroyCuFunctionNVXFunc                                                       destroyCuFunctionNVX;
-CmdCuLaunchKernelNVXFunc                                                       cmdCuLaunchKernelNVX;
-GetImageViewHandleNVXFunc                                                      getImageViewHandleNVX;
-GetImageViewAddressNVXFunc                                                     getImageViewAddressNVX;
-CmdDrawIndirectCountAMDFunc                                                    cmdDrawIndirectCountAMD;
-CmdDrawIndexedIndirectCountAMDFunc                                     cmdDrawIndexedIndirectCountAMD;
-GetShaderInfoAMDFunc                                                           getShaderInfoAMD;
-CmdBeginConditionalRenderingEXTFunc                                    cmdBeginConditionalRenderingEXT;
-CmdEndConditionalRenderingEXTFunc                                      cmdEndConditionalRenderingEXT;
-CmdSetViewportWScalingNVFunc                                           cmdSetViewportWScalingNV;
+GetMemoryWin32HandleNVFunc                                                     getMemoryWin32HandleNV;
+CmdExecuteGeneratedCommandsNVFunc                                      cmdExecuteGeneratedCommandsNV;
+CmdPreprocessGeneratedCommandsNVFunc                           cmdPreprocessGeneratedCommandsNV;
+CmdBindPipelineShaderGroupNVFunc                                       cmdBindPipelineShaderGroupNV;
+GetGeneratedCommandsMemoryRequirementsNVFunc           getGeneratedCommandsMemoryRequirementsNV;
+CreateIndirectCommandsLayoutNVFunc                                     createIndirectCommandsLayoutNV;
+DestroyIndirectCommandsLayoutNVFunc                                    destroyIndirectCommandsLayoutNV;
+CmdPushDescriptorSetKHRFunc                                                    cmdPushDescriptorSetKHR;
+TrimCommandPoolFunc                                                                    trimCommandPool;
+GetMemoryWin32HandleKHRFunc                                                    getMemoryWin32HandleKHR;
+GetMemoryWin32HandlePropertiesKHRFunc                          getMemoryWin32HandlePropertiesKHR;
+GetMemoryFdKHRFunc                                                                     getMemoryFdKHR;
+GetMemoryFdPropertiesKHRFunc                                           getMemoryFdPropertiesKHR;
+GetMemoryZirconHandleFUCHSIAFunc                                       getMemoryZirconHandleFUCHSIA;
+GetMemoryZirconHandlePropertiesFUCHSIAFunc                     getMemoryZirconHandlePropertiesFUCHSIA;
+GetMemoryRemoteAddressNVFunc                                           getMemoryRemoteAddressNV;
+GetSemaphoreWin32HandleKHRFunc                                         getSemaphoreWin32HandleKHR;
+ImportSemaphoreWin32HandleKHRFunc                                      importSemaphoreWin32HandleKHR;
+GetSemaphoreFdKHRFunc                                                          getSemaphoreFdKHR;
+ImportSemaphoreFdKHRFunc                                                       importSemaphoreFdKHR;
+GetSemaphoreZirconHandleFUCHSIAFunc                                    getSemaphoreZirconHandleFUCHSIA;
+ImportSemaphoreZirconHandleFUCHSIAFunc                         importSemaphoreZirconHandleFUCHSIA;
+GetFenceWin32HandleKHRFunc                                                     getFenceWin32HandleKHR;
+ImportFenceWin32HandleKHRFunc                                          importFenceWin32HandleKHR;
+GetFenceFdKHRFunc                                                                      getFenceFdKHR;
+ImportFenceFdKHRFunc                                                           importFenceFdKHR;
 DisplayPowerControlEXTFunc                                                     displayPowerControlEXT;
 RegisterDeviceEventEXTFunc                                                     registerDeviceEventEXT;
 RegisterDisplayEventEXTFunc                                                    registerDisplayEventEXT;
 GetSwapchainCounterEXTFunc                                                     getSwapchainCounterEXT;
+GetDeviceGroupPeerMemoryFeaturesFunc                           getDeviceGroupPeerMemoryFeatures;
+BindBufferMemory2Func                                                          bindBufferMemory2;
+BindImageMemory2Func                                                           bindImageMemory2;
+CmdSetDeviceMaskFunc                                                           cmdSetDeviceMask;
+GetDeviceGroupPresentCapabilitiesKHRFunc                       getDeviceGroupPresentCapabilitiesKHR;
+GetDeviceGroupSurfacePresentModesKHRFunc                       getDeviceGroupSurfacePresentModesKHR;
+AcquireNextImage2KHRFunc                                                       acquireNextImage2KHR;
+CmdDispatchBaseFunc                                                                    cmdDispatchBase;
+CreateDescriptorUpdateTemplateFunc                                     createDescriptorUpdateTemplate;
+DestroyDescriptorUpdateTemplateFunc                                    destroyDescriptorUpdateTemplate;
+UpdateDescriptorSetWithTemplateFunc                                    updateDescriptorSetWithTemplate;
+CmdPushDescriptorSetWithTemplateKHRFunc                                cmdPushDescriptorSetWithTemplateKHR;
+SetHdrMetadataEXTFunc                                                          setHdrMetadataEXT;
+GetSwapchainStatusKHRFunc                                                      getSwapchainStatusKHR;
 GetRefreshCycleDurationGOOGLEFunc                                      getRefreshCycleDurationGOOGLE;
 GetPastPresentationTimingGOOGLEFunc                                    getPastPresentationTimingGOOGLE;
+CmdSetViewportWScalingNVFunc                                           cmdSetViewportWScalingNV;
 CmdSetDiscardRectangleEXTFunc                                          cmdSetDiscardRectangleEXT;
-SetHdrMetadataEXTFunc                                                          setHdrMetadataEXT;
+CmdSetSampleLocationsEXTFunc                                           cmdSetSampleLocationsEXT;
+GetBufferMemoryRequirements2Func                                       getBufferMemoryRequirements2;
+GetImageMemoryRequirements2Func                                                getImageMemoryRequirements2;
+GetImageSparseMemoryRequirements2Func                          getImageSparseMemoryRequirements2;
+GetDeviceBufferMemoryRequirementsFunc                          getDeviceBufferMemoryRequirements;
+GetDeviceImageMemoryRequirementsFunc                           getDeviceImageMemoryRequirements;
+GetDeviceImageSparseMemoryRequirementsFunc                     getDeviceImageSparseMemoryRequirements;
+CreateSamplerYcbcrConversionFunc                                       createSamplerYcbcrConversion;
+DestroySamplerYcbcrConversionFunc                                      destroySamplerYcbcrConversion;
+GetDeviceQueue2Func                                                                    getDeviceQueue2;
+CreateValidationCacheEXTFunc                                           createValidationCacheEXT;
+DestroyValidationCacheEXTFunc                                          destroyValidationCacheEXT;
+GetValidationCacheDataEXTFunc                                          getValidationCacheDataEXT;
+MergeValidationCachesEXTFunc                                           mergeValidationCachesEXT;
+GetDescriptorSetLayoutSupportFunc                                      getDescriptorSetLayoutSupport;
+GetShaderInfoAMDFunc                                                           getShaderInfoAMD;
+SetLocalDimmingAMDFunc                                                         setLocalDimmingAMD;
+GetCalibratedTimestampsEXTFunc                                         getCalibratedTimestampsEXT;
 SetDebugUtilsObjectNameEXTFunc                                         setDebugUtilsObjectNameEXT;
 SetDebugUtilsObjectTagEXTFunc                                          setDebugUtilsObjectTagEXT;
 QueueBeginDebugUtilsLabelEXTFunc                                       queueBeginDebugUtilsLabelEXT;
@@ -262,37 +216,74 @@ QueueInsertDebugUtilsLabelEXTFunc                                 queueInsertDebugUtilsLabelEXT;
 CmdBeginDebugUtilsLabelEXTFunc                                         cmdBeginDebugUtilsLabelEXT;
 CmdEndDebugUtilsLabelEXTFunc                                           cmdEndDebugUtilsLabelEXT;
 CmdInsertDebugUtilsLabelEXTFunc                                                cmdInsertDebugUtilsLabelEXT;
-CmdSetSampleLocationsEXTFunc                                           cmdSetSampleLocationsEXT;
-GetImageDrmFormatModifierPropertiesEXTFunc                     getImageDrmFormatModifierPropertiesEXT;
-CreateValidationCacheEXTFunc                                           createValidationCacheEXT;
-DestroyValidationCacheEXTFunc                                          destroyValidationCacheEXT;
-MergeValidationCachesEXTFunc                                           mergeValidationCachesEXT;
-GetValidationCacheDataEXTFunc                                          getValidationCacheDataEXT;
+GetMemoryHostPointerPropertiesEXTFunc                          getMemoryHostPointerPropertiesEXT;
+CmdWriteBufferMarkerAMDFunc                                                    cmdWriteBufferMarkerAMD;
+CreateRenderPass2Func                                                          createRenderPass2;
+CmdBeginRenderPass2Func                                                                cmdBeginRenderPass2;
+CmdNextSubpass2Func                                                                    cmdNextSubpass2;
+CmdEndRenderPass2Func                                                          cmdEndRenderPass2;
+GetSemaphoreCounterValueFunc                                           getSemaphoreCounterValue;
+WaitSemaphoresFunc                                                                     waitSemaphores;
+SignalSemaphoreFunc                                                                    signalSemaphore;
+GetAndroidHardwareBufferPropertiesANDROIDFunc          getAndroidHardwareBufferPropertiesANDROID;
+GetMemoryAndroidHardwareBufferANDROIDFunc                      getMemoryAndroidHardwareBufferANDROID;
+CmdDrawIndirectCountFunc                                                       cmdDrawIndirectCount;
+CmdDrawIndexedIndirectCountFunc                                                cmdDrawIndexedIndirectCount;
+CmdSetCheckpointNVFunc                                                         cmdSetCheckpointNV;
+GetQueueCheckpointDataNVFunc                                           getQueueCheckpointDataNV;
+CmdBindTransformFeedbackBuffersEXTFunc                         cmdBindTransformFeedbackBuffersEXT;
+CmdBeginTransformFeedbackEXTFunc                                       cmdBeginTransformFeedbackEXT;
+CmdEndTransformFeedbackEXTFunc                                         cmdEndTransformFeedbackEXT;
+CmdBeginQueryIndexedEXTFunc                                                    cmdBeginQueryIndexedEXT;
+CmdEndQueryIndexedEXTFunc                                                      cmdEndQueryIndexedEXT;
+CmdDrawIndirectByteCountEXTFunc                                                cmdDrawIndirectByteCountEXT;
+CmdSetExclusiveScissorNVFunc                                           cmdSetExclusiveScissorNV;
 CmdBindShadingRateImageNVFunc                                          cmdBindShadingRateImageNV;
 CmdSetViewportShadingRatePaletteNVFunc                         cmdSetViewportShadingRatePaletteNV;
 CmdSetCoarseSampleOrderNVFunc                                          cmdSetCoarseSampleOrderNV;
+CmdDrawMeshTasksNVFunc                                                         cmdDrawMeshTasksNV;
+CmdDrawMeshTasksIndirectNVFunc                                         cmdDrawMeshTasksIndirectNV;
+CmdDrawMeshTasksIndirectCountNVFunc                                    cmdDrawMeshTasksIndirectCountNV;
+CompileDeferredNVFunc                                                          compileDeferredNV;
 CreateAccelerationStructureNVFunc                                      createAccelerationStructureNV;
+CmdBindInvocationMaskHUAWEIFunc                                                cmdBindInvocationMaskHUAWEI;
+DestroyAccelerationStructureKHRFunc                                    destroyAccelerationStructureKHR;
 DestroyAccelerationStructureNVFunc                                     destroyAccelerationStructureNV;
 GetAccelerationStructureMemoryRequirementsNVFunc       getAccelerationStructureMemoryRequirementsNV;
 BindAccelerationStructureMemoryNVFunc                          bindAccelerationStructureMemoryNV;
-CmdBuildAccelerationStructureNVFunc                                    cmdBuildAccelerationStructureNV;
 CmdCopyAccelerationStructureNVFunc                                     cmdCopyAccelerationStructureNV;
+CmdCopyAccelerationStructureKHRFunc                                    cmdCopyAccelerationStructureKHR;
+CopyAccelerationStructureKHRFunc                                       copyAccelerationStructureKHR;
+CmdCopyAccelerationStructureToMemoryKHRFunc                    cmdCopyAccelerationStructureToMemoryKHR;
+CopyAccelerationStructureToMemoryKHRFunc                       copyAccelerationStructureToMemoryKHR;
+CmdCopyMemoryToAccelerationStructureKHRFunc                    cmdCopyMemoryToAccelerationStructureKHR;
+CopyMemoryToAccelerationStructureKHRFunc                       copyMemoryToAccelerationStructureKHR;
+CmdWriteAccelerationStructuresPropertiesKHRFunc                cmdWriteAccelerationStructuresPropertiesKHR;
+CmdWriteAccelerationStructuresPropertiesNVFunc         cmdWriteAccelerationStructuresPropertiesNV;
+CmdBuildAccelerationStructureNVFunc                                    cmdBuildAccelerationStructureNV;
+WriteAccelerationStructuresPropertiesKHRFunc           writeAccelerationStructuresPropertiesKHR;
+CmdTraceRaysKHRFunc                                                                    cmdTraceRaysKHR;
 CmdTraceRaysNVFunc                                                                     cmdTraceRaysNV;
-CreateRayTracingPipelinesNVFunc                                                createRayTracingPipelinesNV;
 GetRayTracingShaderGroupHandlesKHRFunc                         getRayTracingShaderGroupHandlesKHR;
-GetRayTracingShaderGroupHandlesNVFunc                          getRayTracingShaderGroupHandlesNV;
+GetRayTracingCaptureReplayShaderGroupHandlesKHRFunc    getRayTracingCaptureReplayShaderGroupHandlesKHR;
 GetAccelerationStructureHandleNVFunc                           getAccelerationStructureHandleNV;
-CmdWriteAccelerationStructuresPropertiesNVFunc         cmdWriteAccelerationStructuresPropertiesNV;
-CompileDeferredNVFunc                                                          compileDeferredNV;
-GetMemoryHostPointerPropertiesEXTFunc                          getMemoryHostPointerPropertiesEXT;
-CmdWriteBufferMarkerAMDFunc                                                    cmdWriteBufferMarkerAMD;
-GetCalibratedTimestampsEXTFunc                                         getCalibratedTimestampsEXT;
-CmdDrawMeshTasksNVFunc                                                         cmdDrawMeshTasksNV;
-CmdDrawMeshTasksIndirectNVFunc                                         cmdDrawMeshTasksIndirectNV;
-CmdDrawMeshTasksIndirectCountNVFunc                                    cmdDrawMeshTasksIndirectCountNV;
-CmdSetExclusiveScissorNVFunc                                           cmdSetExclusiveScissorNV;
-CmdSetCheckpointNVFunc                                                         cmdSetCheckpointNV;
-GetQueueCheckpointDataNVFunc                                           getQueueCheckpointDataNV;
+CreateRayTracingPipelinesNVFunc                                                createRayTracingPipelinesNV;
+CreateRayTracingPipelinesKHRFunc                                       createRayTracingPipelinesKHR;
+CmdTraceRaysIndirectKHRFunc                                                    cmdTraceRaysIndirectKHR;
+CmdTraceRaysIndirect2KHRFunc                                           cmdTraceRaysIndirect2KHR;
+GetDeviceAccelerationStructureCompatibilityKHRFunc     getDeviceAccelerationStructureCompatibilityKHR;
+GetRayTracingShaderGroupStackSizeKHRFunc                       getRayTracingShaderGroupStackSizeKHR;
+CmdSetRayTracingPipelineStackSizeKHRFunc                       cmdSetRayTracingPipelineStackSizeKHR;
+GetImageViewHandleNVXFunc                                                      getImageViewHandleNVX;
+GetImageViewAddressNVXFunc                                                     getImageViewAddressNVX;
+GetDeviceGroupSurfacePresentModes2EXTFunc                      getDeviceGroupSurfacePresentModes2EXT;
+AcquireFullScreenExclusiveModeEXTFunc                          acquireFullScreenExclusiveModeEXT;
+ReleaseFullScreenExclusiveModeEXTFunc                          releaseFullScreenExclusiveModeEXT;
+AcquireProfilingLockKHRFunc                                                    acquireProfilingLockKHR;
+ReleaseProfilingLockKHRFunc                                                    releaseProfilingLockKHR;
+GetImageDrmFormatModifierPropertiesEXTFunc                     getImageDrmFormatModifierPropertiesEXT;
+GetBufferOpaqueCaptureAddressFunc                                      getBufferOpaqueCaptureAddress;
+GetBufferDeviceAddressFunc                                                     getBufferDeviceAddress;
 InitializePerformanceApiINTELFunc                                      initializePerformanceApiINTEL;
 UninitializePerformanceApiINTELFunc                                    uninitializePerformanceApiINTEL;
 CmdSetPerformanceMarkerINTELFunc                                       cmdSetPerformanceMarkerINTEL;
@@ -302,88 +293,93 @@ AcquirePerformanceConfigurationINTELFunc                  acquirePerformanceConfigurationINTEL;
 ReleasePerformanceConfigurationINTELFunc                       releasePerformanceConfigurationINTEL;
 QueueSetPerformanceConfigurationINTELFunc                      queueSetPerformanceConfigurationINTEL;
 GetPerformanceParameterINTELFunc                                       getPerformanceParameterINTEL;
-SetLocalDimmingAMDFunc                                                         setLocalDimmingAMD;
-GetBufferDeviceAddressEXTFunc                                          getBufferDeviceAddressEXT;
+GetDeviceMemoryOpaqueCaptureAddressFunc                                getDeviceMemoryOpaqueCaptureAddress;
+GetPipelineExecutablePropertiesKHRFunc                         getPipelineExecutablePropertiesKHR;
+GetPipelineExecutableStatisticsKHRFunc                         getPipelineExecutableStatisticsKHR;
+GetPipelineExecutableInternalRepresentationsKHRFunc    getPipelineExecutableInternalRepresentationsKHR;
 CmdSetLineStippleEXTFunc                                                       cmdSetLineStippleEXT;
-GetGeneratedCommandsMemoryRequirementsNVFunc           getGeneratedCommandsMemoryRequirementsNV;
-CmdPreprocessGeneratedCommandsNVFunc                           cmdPreprocessGeneratedCommandsNV;
-CmdExecuteGeneratedCommandsNVFunc                                      cmdExecuteGeneratedCommandsNV;
-CmdBindPipelineShaderGroupNVFunc                                       cmdBindPipelineShaderGroupNV;
-CreateIndirectCommandsLayoutNVFunc                                     createIndirectCommandsLayoutNV;
-DestroyIndirectCommandsLayoutNVFunc                                    destroyIndirectCommandsLayoutNV;
-CmdSetFragmentShadingRateEnumNVFunc                                    cmdSetFragmentShadingRateEnumNV;
-GetImageSubresourceLayout2EXTFunc                                      getImageSubresourceLayout2EXT;
-CmdSetVertexInputEXTFunc                                                       cmdSetVertexInputEXT;
-GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIFunc      getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
-CmdSubpassShadingHUAWEIFunc                                                    cmdSubpassShadingHUAWEI;
-CmdBindInvocationMaskHUAWEIFunc                                                cmdBindInvocationMaskHUAWEI;
-GetMemoryRemoteAddressNVFunc                                           getMemoryRemoteAddressNV;
-GetPipelinePropertiesEXTFunc                                           getPipelinePropertiesEXT;
-CmdSetPatchControlPointsEXTFunc                                                cmdSetPatchControlPointsEXT;
-CmdSetLogicOpEXTFunc                                                           cmdSetLogicOpEXT;
-CmdSetColorWriteEnableEXTFunc                                          cmdSetColorWriteEnableEXT;
-CmdDrawMultiEXTFunc                                                                    cmdDrawMultiEXT;
-CmdDrawMultiIndexedEXTFunc                                                     cmdDrawMultiIndexedEXT;
-SetDeviceMemoryPriorityEXTFunc                                         setDeviceMemoryPriorityEXT;
-GetDescriptorSetLayoutHostMappingInfoVALVEFunc         getDescriptorSetLayoutHostMappingInfoVALVE;
-GetDescriptorSetHostMappingVALVEFunc                           getDescriptorSetHostMappingVALVE;
-GetShaderModuleIdentifierEXTFunc                                       getShaderModuleIdentifierEXT;
-GetShaderModuleCreateInfoIdentifierEXTFunc                     getShaderModuleCreateInfoIdentifierEXT;
-GetFramebufferTilePropertiesQCOMFunc                           getFramebufferTilePropertiesQCOM;
-GetDynamicRenderingTilePropertiesQCOMFunc                      getDynamicRenderingTilePropertiesQCOM;
 CreateAccelerationStructureKHRFunc                                     createAccelerationStructureKHR;
-DestroyAccelerationStructureKHRFunc                                    destroyAccelerationStructureKHR;
 CmdBuildAccelerationStructuresKHRFunc                          cmdBuildAccelerationStructuresKHR;
 CmdBuildAccelerationStructuresIndirectKHRFunc          cmdBuildAccelerationStructuresIndirectKHR;
 BuildAccelerationStructuresKHRFunc                                     buildAccelerationStructuresKHR;
-CopyAccelerationStructureKHRFunc                                       copyAccelerationStructureKHR;
-CopyAccelerationStructureToMemoryKHRFunc                       copyAccelerationStructureToMemoryKHR;
-CopyMemoryToAccelerationStructureKHRFunc                       copyMemoryToAccelerationStructureKHR;
-WriteAccelerationStructuresPropertiesKHRFunc           writeAccelerationStructuresPropertiesKHR;
-CmdCopyAccelerationStructureKHRFunc                                    cmdCopyAccelerationStructureKHR;
-CmdCopyAccelerationStructureToMemoryKHRFunc                    cmdCopyAccelerationStructureToMemoryKHR;
-CmdCopyMemoryToAccelerationStructureKHRFunc                    cmdCopyMemoryToAccelerationStructureKHR;
 GetAccelerationStructureDeviceAddressKHRFunc           getAccelerationStructureDeviceAddressKHR;
-CmdWriteAccelerationStructuresPropertiesKHRFunc                cmdWriteAccelerationStructuresPropertiesKHR;
-GetDeviceAccelerationStructureCompatibilityKHRFunc     getDeviceAccelerationStructureCompatibilityKHR;
+CreateDeferredOperationKHRFunc                                         createDeferredOperationKHR;
+DestroyDeferredOperationKHRFunc                                                destroyDeferredOperationKHR;
+GetDeferredOperationMaxConcurrencyKHRFunc                      getDeferredOperationMaxConcurrencyKHR;
+GetDeferredOperationResultKHRFunc                                      getDeferredOperationResultKHR;
+DeferredOperationJoinKHRFunc                                           deferredOperationJoinKHR;
+CmdSetCullModeFunc                                                                     cmdSetCullMode;
+CmdSetFrontFaceFunc                                                                    cmdSetFrontFace;
+CmdSetPrimitiveTopologyFunc                                                    cmdSetPrimitiveTopology;
+CmdSetViewportWithCountFunc                                                    cmdSetViewportWithCount;
+CmdSetScissorWithCountFunc                                                     cmdSetScissorWithCount;
+CmdBindVertexBuffers2Func                                                      cmdBindVertexBuffers2;
+CmdSetDepthTestEnableFunc                                                      cmdSetDepthTestEnable;
+CmdSetDepthWriteEnableFunc                                                     cmdSetDepthWriteEnable;
+CmdSetDepthCompareOpFunc                                                       cmdSetDepthCompareOp;
+CmdSetDepthBoundsTestEnableFunc                                                cmdSetDepthBoundsTestEnable;
+CmdSetStencilTestEnableFunc                                                    cmdSetStencilTestEnable;
+CmdSetStencilOpFunc                                                                    cmdSetStencilOp;
+CmdSetPatchControlPointsEXTFunc                                                cmdSetPatchControlPointsEXT;
+CmdSetRasterizerDiscardEnableFunc                                      cmdSetRasterizerDiscardEnable;
+CmdSetDepthBiasEnableFunc                                                      cmdSetDepthBiasEnable;
+CmdSetLogicOpEXTFunc                                                           cmdSetLogicOpEXT;
+CmdSetPrimitiveRestartEnableFunc                                       cmdSetPrimitiveRestartEnable;
+CreatePrivateDataSlotFunc                                                      createPrivateDataSlot;
+DestroyPrivateDataSlotFunc                                                     destroyPrivateDataSlot;
+SetPrivateDataFunc                                                                     setPrivateData;
+GetPrivateDataFunc                                                                     getPrivateData;
+CmdCopyBuffer2Func                                                                     cmdCopyBuffer2;
+CmdCopyImage2Func                                                                      cmdCopyImage2;
+CmdBlitImage2Func                                                                      cmdBlitImage2;
+CmdCopyBufferToImage2Func                                                      cmdCopyBufferToImage2;
+CmdCopyImageToBuffer2Func                                                      cmdCopyImageToBuffer2;
+CmdResolveImage2Func                                                           cmdResolveImage2;
+CmdSetFragmentShadingRateKHRFunc                                       cmdSetFragmentShadingRateKHR;
+CmdSetFragmentShadingRateEnumNVFunc                                    cmdSetFragmentShadingRateEnumNV;
 GetAccelerationStructureBuildSizesKHRFunc                      getAccelerationStructureBuildSizesKHR;
-CmdTraceRaysKHRFunc                                                                    cmdTraceRaysKHR;
-CreateRayTracingPipelinesKHRFunc                                       createRayTracingPipelinesKHR;
-GetRayTracingCaptureReplayShaderGroupHandlesKHRFunc    getRayTracingCaptureReplayShaderGroupHandlesKHR;
-CmdTraceRaysIndirectKHRFunc                                                    cmdTraceRaysIndirectKHR;
-GetRayTracingShaderGroupStackSizeKHRFunc                       getRayTracingShaderGroupStackSizeKHR;
-CmdSetRayTracingPipelineStackSizeKHRFunc                       cmdSetRayTracingPipelineStackSizeKHR;
-GetAndroidHardwareBufferPropertiesANDROIDFunc          getAndroidHardwareBufferPropertiesANDROID;
-GetMemoryAndroidHardwareBufferANDROIDFunc                      getMemoryAndroidHardwareBufferANDROID;
+CmdSetVertexInputEXTFunc                                                       cmdSetVertexInputEXT;
+CmdSetColorWriteEnableEXTFunc                                          cmdSetColorWriteEnableEXT;
+CmdSetEvent2Func                                                                       cmdSetEvent2;
+CmdResetEvent2Func                                                                     cmdResetEvent2;
+CmdWaitEvents2Func                                                                     cmdWaitEvents2;
+CmdPipelineBarrier2Func                                                                cmdPipelineBarrier2;
+QueueSubmit2Func                                                                       queueSubmit2;
+CmdWriteTimestamp2Func                                                         cmdWriteTimestamp2;
+CmdWriteBufferMarker2AMDFunc                                           cmdWriteBufferMarker2AMD;
+GetQueueCheckpointData2NVFunc                                          getQueueCheckpointData2NV;
 CreateVideoSessionKHRFunc                                                      createVideoSessionKHR;
 DestroyVideoSessionKHRFunc                                                     destroyVideoSessionKHR;
-GetVideoSessionMemoryRequirementsKHRFunc                       getVideoSessionMemoryRequirementsKHR;
-BindVideoSessionMemoryKHRFunc                                          bindVideoSessionMemoryKHR;
 CreateVideoSessionParametersKHRFunc                                    createVideoSessionParametersKHR;
 UpdateVideoSessionParametersKHRFunc                                    updateVideoSessionParametersKHR;
 DestroyVideoSessionParametersKHRFunc                           destroyVideoSessionParametersKHR;
+GetVideoSessionMemoryRequirementsKHRFunc                       getVideoSessionMemoryRequirementsKHR;
+BindVideoSessionMemoryKHRFunc                                          bindVideoSessionMemoryKHR;
+CmdDecodeVideoKHRFunc                                                          cmdDecodeVideoKHR;
 CmdBeginVideoCodingKHRFunc                                                     cmdBeginVideoCodingKHR;
-CmdEndVideoCodingKHRFunc                                                       cmdEndVideoCodingKHR;
 CmdControlVideoCodingKHRFunc                                           cmdControlVideoCodingKHR;
-CmdDecodeVideoKHRFunc                                                          cmdDecodeVideoKHR;
+CmdEndVideoCodingKHRFunc                                                       cmdEndVideoCodingKHR;
 CmdEncodeVideoKHRFunc                                                          cmdEncodeVideoKHR;
-GetMemoryZirconHandleFUCHSIAFunc                                       getMemoryZirconHandleFUCHSIA;
-GetMemoryZirconHandlePropertiesFUCHSIAFunc                     getMemoryZirconHandlePropertiesFUCHSIA;
-ImportSemaphoreZirconHandleFUCHSIAFunc                         importSemaphoreZirconHandleFUCHSIA;
-GetSemaphoreZirconHandleFUCHSIAFunc                                    getSemaphoreZirconHandleFUCHSIA;
+CreateCuModuleNVXFunc                                                          createCuModuleNVX;
+CreateCuFunctionNVXFunc                                                                createCuFunctionNVX;
+DestroyCuModuleNVXFunc                                                         destroyCuModuleNVX;
+DestroyCuFunctionNVXFunc                                                       destroyCuFunctionNVX;
+CmdCuLaunchKernelNVXFunc                                                       cmdCuLaunchKernelNVX;
+SetDeviceMemoryPriorityEXTFunc                                         setDeviceMemoryPriorityEXT;
+WaitForPresentKHRFunc                                                          waitForPresentKHR;
 CreateBufferCollectionFUCHSIAFunc                                      createBufferCollectionFUCHSIA;
-SetBufferCollectionImageConstraintsFUCHSIAFunc         setBufferCollectionImageConstraintsFUCHSIA;
 SetBufferCollectionBufferConstraintsFUCHSIAFunc                setBufferCollectionBufferConstraintsFUCHSIA;
+SetBufferCollectionImageConstraintsFUCHSIAFunc         setBufferCollectionImageConstraintsFUCHSIA;
 DestroyBufferCollectionFUCHSIAFunc                                     destroyBufferCollectionFUCHSIA;
 GetBufferCollectionPropertiesFUCHSIAFunc                       getBufferCollectionPropertiesFUCHSIA;
+CmdBeginRenderingFunc                                                          cmdBeginRendering;
+CmdEndRenderingFunc                                                                    cmdEndRendering;
+GetDescriptorSetLayoutHostMappingInfoVALVEFunc         getDescriptorSetLayoutHostMappingInfoVALVE;
+GetDescriptorSetHostMappingVALVEFunc                           getDescriptorSetHostMappingVALVE;
+GetShaderModuleIdentifierEXTFunc                                       getShaderModuleIdentifierEXT;
+GetShaderModuleCreateInfoIdentifierEXTFunc                     getShaderModuleCreateInfoIdentifierEXT;
+GetImageSubresourceLayout2EXTFunc                                      getImageSubresourceLayout2EXT;
+GetPipelinePropertiesEXTFunc                                           getPipelinePropertiesEXT;
 ExportMetalObjectsEXTFunc                                                      exportMetalObjectsEXT;
-GetMemoryWin32HandleKHRFunc                                                    getMemoryWin32HandleKHR;
-GetMemoryWin32HandlePropertiesKHRFunc                          getMemoryWin32HandlePropertiesKHR;
-ImportSemaphoreWin32HandleKHRFunc                                      importSemaphoreWin32HandleKHR;
-GetSemaphoreWin32HandleKHRFunc                                         getSemaphoreWin32HandleKHR;
-ImportFenceWin32HandleKHRFunc                                          importFenceWin32HandleKHR;
-GetFenceWin32HandleKHRFunc                                                     getFenceWin32HandleKHR;
-GetMemoryWin32HandleNVFunc                                                     getMemoryWin32HandleNV;
-AcquireFullScreenExclusiveModeEXTFunc                          acquireFullScreenExclusiveModeEXT;
-ReleaseFullScreenExclusiveModeEXTFunc                          releaseFullScreenExclusiveModeEXT;
-GetDeviceGroupSurfacePresentModes2EXTFunc                      getDeviceGroupSurfacePresentModes2EXT;
+GetFramebufferTilePropertiesQCOMFunc                           getFramebufferTilePropertiesQCOM;
+GetDynamicRenderingTilePropertiesQCOMFunc                      getDynamicRenderingTilePropertiesQCOM;
index f35cdf3..8bad0ae 100644 (file)
@@ -7,62 +7,88 @@
 
 namespace vk
 {
-#define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
-#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
-#define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
-#define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
-#define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
-#define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
-#define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
-#define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
-#define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
-#define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
-#define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm"
-#define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
-#define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
-#define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
-#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
-#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
-#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric"
-#define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
-#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
-#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
-#define VK_KHR_PRESENT_ID_EXTENSION_NAME  "VK_KHR_present_id"
-#define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing"
-#define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
-#define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
-#define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3"
-#define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4"
-#define VK_NV_MESH_SHADER_EXTENSION_NAME  "VK_NV_mesh_shader"
-#define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"
+#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
+#define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
+#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
+#define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness"
+#define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
+#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
+#define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
-#define VK_EXT_MULTI_DRAW_EXTENSION_NAME  "VK_EXT_multi_draw"
+#define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
+#define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
 #define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
-#define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness"
 #define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2"
-#define VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME "VK_KHR_portability_subset"
-#define DECL_PROTECTED_MEMORY_EXTENSION_NAME "core_property"
-#define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex"
-#define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
-#define VK_NV_RAY_TRACING_EXTENSION_NAME  "VK_NV_ray_tracing"
-#define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
-#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
 #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
+#define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
 #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
+#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
+#define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
+#define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
+#define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
+#define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
+#define VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME "VK_KHR_portability_subset"
+#define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
+#define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing"
+#define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3"
+#define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
 #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
+#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
+#define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
+#define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
+#define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
+#define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader"
+#define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
+#define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
+#define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
+#define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
+#define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
 #define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
+#define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
+#define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info"
+#define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
+#define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex"
+#define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
+#define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
 #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
+#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
+#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
+#define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
+#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
+#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric"
+#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
+#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
+#define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm"
+#define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
+#define VK_EXT_MULTI_DRAW_EXTENSION_NAME "VK_EXT_multi_draw"
+#define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4"
+#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
+#define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing"
 #define VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME "VK_EXT_shader_module_identifier"
-#define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
 #define DECL_SUBGROUP_EXTENSION_NAME "core_property"
-#define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
-#define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
-#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
-#define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
-#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
-#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
+#define DECL_PROTECTED_MEMORY_EXTENSION_NAME "core_property"
 
 
+template<> void initPropertyFromBlob<VkPhysicalDeviceDriverProperties>(VkPhysicalDeviceDriverProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
+{
+       propertyType.driverID = allPropertiesBlobs.vk12.driverID;
+       memcpy(propertyType.driverName, allPropertiesBlobs.vk12.driverName, sizeof(char) * VK_MAX_DRIVER_NAME_SIZE);
+       memcpy(propertyType.driverInfo, allPropertiesBlobs.vk12.driverInfo, sizeof(char) * VK_MAX_DRIVER_INFO_SIZE);
+       propertyType.conformanceVersion = allPropertiesBlobs.vk12.conformanceVersion;
+}
+template<> void initPropertyFromBlob<VkPhysicalDeviceIDProperties>(VkPhysicalDeviceIDProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
+{
+       memcpy(propertyType.deviceUUID, allPropertiesBlobs.vk11.deviceUUID, sizeof(uint8_t) * VK_UUID_SIZE);
+       memcpy(propertyType.driverUUID, allPropertiesBlobs.vk11.driverUUID, sizeof(uint8_t) * VK_UUID_SIZE);
+       memcpy(propertyType.deviceLUID, allPropertiesBlobs.vk11.deviceLUID, sizeof(uint8_t) * VK_LUID_SIZE);
+       propertyType.deviceNodeMask = allPropertiesBlobs.vk11.deviceNodeMask;
+       propertyType.deviceLUIDValid = allPropertiesBlobs.vk11.deviceLUIDValid;
+}
+template<> void initPropertyFromBlob<VkPhysicalDeviceMultiviewProperties>(VkPhysicalDeviceMultiviewProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
+{
+       propertyType.maxMultiviewViewCount = allPropertiesBlobs.vk11.maxMultiviewViewCount;
+       propertyType.maxMultiviewInstanceIndex = allPropertiesBlobs.vk11.maxMultiviewInstanceIndex;
+}
 template<> void initPropertyFromBlob<VkPhysicalDeviceSubgroupProperties>(VkPhysicalDeviceSubgroupProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
 {
        propertyType.subgroupSize = allPropertiesBlobs.vk11.subgroupSize;
@@ -74,34 +100,31 @@ template<> void initPropertyFromBlob<VkPhysicalDevicePointClippingProperties>(Vk
 {
        propertyType.pointClippingBehavior = allPropertiesBlobs.vk11.pointClippingBehavior;
 }
-template<> void initPropertyFromBlob<VkPhysicalDeviceMultiviewProperties>(VkPhysicalDeviceMultiviewProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
-{
-       propertyType.maxMultiviewViewCount = allPropertiesBlobs.vk11.maxMultiviewViewCount;
-       propertyType.maxMultiviewInstanceIndex = allPropertiesBlobs.vk11.maxMultiviewInstanceIndex;
-}
 template<> void initPropertyFromBlob<VkPhysicalDeviceProtectedMemoryProperties>(VkPhysicalDeviceProtectedMemoryProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
 {
        propertyType.protectedNoFault = allPropertiesBlobs.vk11.protectedNoFault;
 }
-template<> void initPropertyFromBlob<VkPhysicalDeviceIDProperties>(VkPhysicalDeviceIDProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
+template<> void initPropertyFromBlob<VkPhysicalDeviceSamplerFilterMinmaxProperties>(VkPhysicalDeviceSamplerFilterMinmaxProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
 {
-       memcpy(propertyType.deviceUUID, allPropertiesBlobs.vk11.deviceUUID, sizeof(uint8_t) * VK_UUID_SIZE);
-       memcpy(propertyType.driverUUID, allPropertiesBlobs.vk11.driverUUID, sizeof(uint8_t) * VK_UUID_SIZE);
-       memcpy(propertyType.deviceLUID, allPropertiesBlobs.vk11.deviceLUID, sizeof(uint8_t) * VK_LUID_SIZE);
-       propertyType.deviceNodeMask = allPropertiesBlobs.vk11.deviceNodeMask;
-       propertyType.deviceLUIDValid = allPropertiesBlobs.vk11.deviceLUIDValid;
+       propertyType.filterMinmaxSingleComponentFormats = allPropertiesBlobs.vk12.filterMinmaxSingleComponentFormats;
+       propertyType.filterMinmaxImageComponentMapping = allPropertiesBlobs.vk12.filterMinmaxImageComponentMapping;
+}
+template<> void initPropertyFromBlob<VkPhysicalDeviceInlineUniformBlockProperties>(VkPhysicalDeviceInlineUniformBlockProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
+{
+       propertyType.maxInlineUniformBlockSize = allPropertiesBlobs.vk13.maxInlineUniformBlockSize;
+       propertyType.maxPerStageDescriptorInlineUniformBlocks = allPropertiesBlobs.vk13.maxPerStageDescriptorInlineUniformBlocks;
+       propertyType.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = allPropertiesBlobs.vk13.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
+       propertyType.maxDescriptorSetInlineUniformBlocks = allPropertiesBlobs.vk13.maxDescriptorSetInlineUniformBlocks;
+       propertyType.maxDescriptorSetUpdateAfterBindInlineUniformBlocks = allPropertiesBlobs.vk13.maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
 }
 template<> void initPropertyFromBlob<VkPhysicalDeviceMaintenance3Properties>(VkPhysicalDeviceMaintenance3Properties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
 {
        propertyType.maxPerSetDescriptors = allPropertiesBlobs.vk11.maxPerSetDescriptors;
        propertyType.maxMemoryAllocationSize = allPropertiesBlobs.vk11.maxMemoryAllocationSize;
 }
-template<> void initPropertyFromBlob<VkPhysicalDeviceDriverProperties>(VkPhysicalDeviceDriverProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
+template<> void initPropertyFromBlob<VkPhysicalDeviceMaintenance4Properties>(VkPhysicalDeviceMaintenance4Properties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
 {
-       propertyType.driverID = allPropertiesBlobs.vk12.driverID;
-       memcpy(propertyType.driverName, allPropertiesBlobs.vk12.driverName, sizeof(char) * VK_MAX_DRIVER_NAME_SIZE);
-       memcpy(propertyType.driverInfo, allPropertiesBlobs.vk12.driverInfo, sizeof(char) * VK_MAX_DRIVER_INFO_SIZE);
-       propertyType.conformanceVersion = allPropertiesBlobs.vk12.conformanceVersion;
+       propertyType.maxBufferSize = allPropertiesBlobs.vk13.maxBufferSize;
 }
 template<> void initPropertyFromBlob<VkPhysicalDeviceFloatControlsProperties>(VkPhysicalDeviceFloatControlsProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
 {
@@ -149,6 +172,10 @@ template<> void initPropertyFromBlob<VkPhysicalDeviceDescriptorIndexingPropertie
        propertyType.maxDescriptorSetUpdateAfterBindStorageImages = allPropertiesBlobs.vk12.maxDescriptorSetUpdateAfterBindStorageImages;
        propertyType.maxDescriptorSetUpdateAfterBindInputAttachments = allPropertiesBlobs.vk12.maxDescriptorSetUpdateAfterBindInputAttachments;
 }
+template<> void initPropertyFromBlob<VkPhysicalDeviceTimelineSemaphoreProperties>(VkPhysicalDeviceTimelineSemaphoreProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
+{
+       propertyType.maxTimelineSemaphoreValueDifference = allPropertiesBlobs.vk12.maxTimelineSemaphoreValueDifference;
+}
 template<> void initPropertyFromBlob<VkPhysicalDeviceDepthStencilResolveProperties>(VkPhysicalDeviceDepthStencilResolveProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
 {
        propertyType.supportedDepthResolveModes = allPropertiesBlobs.vk12.supportedDepthResolveModes;
@@ -156,14 +183,12 @@ template<> void initPropertyFromBlob<VkPhysicalDeviceDepthStencilResolveProperti
        propertyType.independentResolveNone = allPropertiesBlobs.vk12.independentResolveNone;
        propertyType.independentResolve = allPropertiesBlobs.vk12.independentResolve;
 }
-template<> void initPropertyFromBlob<VkPhysicalDeviceSamplerFilterMinmaxProperties>(VkPhysicalDeviceSamplerFilterMinmaxProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
-{
-       propertyType.filterMinmaxSingleComponentFormats = allPropertiesBlobs.vk12.filterMinmaxSingleComponentFormats;
-       propertyType.filterMinmaxImageComponentMapping = allPropertiesBlobs.vk12.filterMinmaxImageComponentMapping;
-}
-template<> void initPropertyFromBlob<VkPhysicalDeviceTimelineSemaphoreProperties>(VkPhysicalDeviceTimelineSemaphoreProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
+template<> void initPropertyFromBlob<VkPhysicalDeviceTexelBufferAlignmentProperties>(VkPhysicalDeviceTexelBufferAlignmentProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
 {
-       propertyType.maxTimelineSemaphoreValueDifference = allPropertiesBlobs.vk12.maxTimelineSemaphoreValueDifference;
+       propertyType.storageTexelBufferOffsetAlignmentBytes = allPropertiesBlobs.vk13.storageTexelBufferOffsetAlignmentBytes;
+       propertyType.storageTexelBufferOffsetSingleTexelAlignment = allPropertiesBlobs.vk13.storageTexelBufferOffsetSingleTexelAlignment;
+       propertyType.uniformTexelBufferOffsetAlignmentBytes = allPropertiesBlobs.vk13.uniformTexelBufferOffsetAlignmentBytes;
+       propertyType.uniformTexelBufferOffsetSingleTexelAlignment = allPropertiesBlobs.vk13.uniformTexelBufferOffsetSingleTexelAlignment;
 }
 template<> void initPropertyFromBlob<VkPhysicalDeviceSubgroupSizeControlProperties>(VkPhysicalDeviceSubgroupSizeControlProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
 {
@@ -172,14 +197,6 @@ template<> void initPropertyFromBlob<VkPhysicalDeviceSubgroupSizeControlProperti
        propertyType.maxComputeWorkgroupSubgroups = allPropertiesBlobs.vk13.maxComputeWorkgroupSubgroups;
        propertyType.requiredSubgroupSizeStages = allPropertiesBlobs.vk13.requiredSubgroupSizeStages;
 }
-template<> void initPropertyFromBlob<VkPhysicalDeviceInlineUniformBlockProperties>(VkPhysicalDeviceInlineUniformBlockProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
-{
-       propertyType.maxInlineUniformBlockSize = allPropertiesBlobs.vk13.maxInlineUniformBlockSize;
-       propertyType.maxPerStageDescriptorInlineUniformBlocks = allPropertiesBlobs.vk13.maxPerStageDescriptorInlineUniformBlocks;
-       propertyType.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = allPropertiesBlobs.vk13.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
-       propertyType.maxDescriptorSetInlineUniformBlocks = allPropertiesBlobs.vk13.maxDescriptorSetInlineUniformBlocks;
-       propertyType.maxDescriptorSetUpdateAfterBindInlineUniformBlocks = allPropertiesBlobs.vk13.maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
-}
 template<> void initPropertyFromBlob<VkPhysicalDeviceShaderIntegerDotProductProperties>(VkPhysicalDeviceShaderIntegerDotProductProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
 {
        propertyType.integerDotProduct8BitUnsignedAccelerated = allPropertiesBlobs.vk13.integerDotProduct8BitUnsignedAccelerated;
@@ -213,181 +230,182 @@ template<> void initPropertyFromBlob<VkPhysicalDeviceShaderIntegerDotProductProp
        propertyType.integerDotProductAccumulatingSaturating64BitSignedAccelerated = allPropertiesBlobs.vk13.integerDotProductAccumulatingSaturating64BitSignedAccelerated;
        propertyType.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = allPropertiesBlobs.vk13.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
 }
-template<> void initPropertyFromBlob<VkPhysicalDeviceTexelBufferAlignmentProperties>(VkPhysicalDeviceTexelBufferAlignmentProperties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
-{
-       propertyType.storageTexelBufferOffsetAlignmentBytes = allPropertiesBlobs.vk13.storageTexelBufferOffsetAlignmentBytes;
-       propertyType.storageTexelBufferOffsetSingleTexelAlignment = allPropertiesBlobs.vk13.storageTexelBufferOffsetSingleTexelAlignment;
-       propertyType.uniformTexelBufferOffsetAlignmentBytes = allPropertiesBlobs.vk13.uniformTexelBufferOffsetAlignmentBytes;
-       propertyType.uniformTexelBufferOffsetSingleTexelAlignment = allPropertiesBlobs.vk13.uniformTexelBufferOffsetSingleTexelAlignment;
-}
-template<> void initPropertyFromBlob<VkPhysicalDeviceMaintenance4Properties>(VkPhysicalDeviceMaintenance4Properties& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)
-{
-       propertyType.maxBufferSize = allPropertiesBlobs.vk13.maxBufferSize;
-}
 
 // generic template is not enough for some compilers
 template<> void initPropertyFromBlob<VkPhysicalDeviceMemoryProperties>(VkPhysicalDeviceMemoryProperties&, const AllPropertiesBlobs&) {}
 template<> void initPropertyFromBlob<VkPhysicalDeviceSparseProperties>(VkPhysicalDeviceSparseProperties&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceGroupProperties>(VkPhysicalDeviceGroupProperties&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV>(VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceMultiDrawPropertiesEXT>(VkPhysicalDeviceMultiDrawPropertiesEXT&, const AllPropertiesBlobs&) {}
 template<> void initPropertyFromBlob<VkPhysicalDeviceMemoryProperties2>(VkPhysicalDeviceMemoryProperties2&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceToolProperties>(VkPhysicalDeviceToolProperties&, const AllPropertiesBlobs&) {}
 template<> void initPropertyFromBlob<VkPhysicalDevicePushDescriptorPropertiesKHR>(VkPhysicalDevicePushDescriptorPropertiesKHR&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDevicePerformanceQueryPropertiesKHR>(VkPhysicalDevicePerformanceQueryPropertiesKHR&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceFragmentShadingRatePropertiesKHR>(VkPhysicalDeviceFragmentShadingRatePropertiesKHR&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR>(VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceTransformFeedbackPropertiesEXT>(VkPhysicalDeviceTransformFeedbackPropertiesEXT&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDevicePipelineRobustnessPropertiesEXT>(VkPhysicalDevicePipelineRobustnessPropertiesEXT&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>(VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceGroupProperties>(VkPhysicalDeviceGroupProperties&, const AllPropertiesBlobs&) {}
 template<> void initPropertyFromBlob<VkPhysicalDeviceDiscardRectanglePropertiesEXT>(VkPhysicalDeviceDiscardRectanglePropertiesEXT&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceConservativeRasterizationPropertiesEXT>(VkPhysicalDeviceConservativeRasterizationPropertiesEXT&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>(VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX&, const AllPropertiesBlobs&) {}
 template<> void initPropertyFromBlob<VkPhysicalDeviceSampleLocationsPropertiesEXT>(VkPhysicalDeviceSampleLocationsPropertiesEXT&, const AllPropertiesBlobs&) {}
 template<> void initPropertyFromBlob<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT>(VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV>(VkPhysicalDeviceShaderSMBuiltinsPropertiesNV&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceShadingRateImagePropertiesNV>(VkPhysicalDeviceShadingRateImagePropertiesNV&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceRayTracingPropertiesNV>(VkPhysicalDeviceRayTracingPropertiesNV&, const AllPropertiesBlobs&) {}
 template<> void initPropertyFromBlob<VkPhysicalDeviceExternalMemoryHostPropertiesEXT>(VkPhysicalDeviceExternalMemoryHostPropertiesEXT&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceConservativeRasterizationPropertiesEXT>(VkPhysicalDeviceConservativeRasterizationPropertiesEXT&, const AllPropertiesBlobs&) {}
 template<> void initPropertyFromBlob<VkPhysicalDeviceShaderCorePropertiesAMD>(VkPhysicalDeviceShaderCorePropertiesAMD&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceShaderCoreProperties2AMD>(VkPhysicalDeviceShaderCoreProperties2AMD&, const AllPropertiesBlobs&) {}
 template<> void initPropertyFromBlob<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT>(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceMeshShaderPropertiesNV>(VkPhysicalDeviceMeshShaderPropertiesNV&, const AllPropertiesBlobs&) {}
 template<> void initPropertyFromBlob<VkPhysicalDevicePCIBusInfoPropertiesEXT>(VkPhysicalDevicePCIBusInfoPropertiesEXT&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceTransformFeedbackPropertiesEXT>(VkPhysicalDeviceTransformFeedbackPropertiesEXT&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceShadingRateImagePropertiesNV>(VkPhysicalDeviceShadingRateImagePropertiesNV&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceMeshShaderPropertiesNV>(VkPhysicalDeviceMeshShaderPropertiesNV&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceAccelerationStructurePropertiesKHR>(VkPhysicalDeviceAccelerationStructurePropertiesKHR&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceRayTracingPipelinePropertiesKHR>(VkPhysicalDeviceRayTracingPipelinePropertiesKHR&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceRayTracingPropertiesNV>(VkPhysicalDeviceRayTracingPropertiesNV&, const AllPropertiesBlobs&) {}
 template<> void initPropertyFromBlob<VkPhysicalDeviceFragmentDensityMapPropertiesEXT>(VkPhysicalDeviceFragmentDensityMapPropertiesEXT&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceShaderCoreProperties2AMD>(VkPhysicalDeviceShaderCoreProperties2AMD&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT>(VkPhysicalDeviceFragmentDensityMap2PropertiesEXT&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM>(VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM&, const AllPropertiesBlobs&) {}
 template<> void initPropertyFromBlob<VkPhysicalDeviceMemoryBudgetPropertiesEXT>(VkPhysicalDeviceMemoryBudgetPropertiesEXT&, const AllPropertiesBlobs&) {}
 template<> void initPropertyFromBlob<VkPhysicalDeviceCooperativeMatrixPropertiesNV>(VkPhysicalDeviceCooperativeMatrixPropertiesNV&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceProvokingVertexPropertiesEXT>(VkPhysicalDeviceProvokingVertexPropertiesEXT&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDevicePerformanceQueryPropertiesKHR>(VkPhysicalDevicePerformanceQueryPropertiesKHR&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV>(VkPhysicalDeviceShaderSMBuiltinsPropertiesNV&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI>(VkPhysicalDeviceSubpassShadingPropertiesHUAWEI&, const AllPropertiesBlobs&) {}
 template<> void initPropertyFromBlob<VkPhysicalDeviceLineRasterizationPropertiesEXT>(VkPhysicalDeviceLineRasterizationPropertiesEXT&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV>(VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceRobustness2PropertiesEXT>(VkPhysicalDeviceRobustness2PropertiesEXT&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceToolProperties>(VkPhysicalDeviceToolProperties&, const AllPropertiesBlobs&) {}
 template<> void initPropertyFromBlob<VkPhysicalDeviceCustomBorderColorPropertiesEXT>(VkPhysicalDeviceCustomBorderColorPropertiesEXT&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT>(VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceRobustness2PropertiesEXT>(VkPhysicalDeviceRobustness2PropertiesEXT&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDevicePortabilitySubsetPropertiesKHR>(VkPhysicalDevicePortabilitySubsetPropertiesKHR&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceFragmentShadingRatePropertiesKHR>(VkPhysicalDeviceFragmentShadingRatePropertiesKHR&, const AllPropertiesBlobs&) {}
 template<> void initPropertyFromBlob<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV>(VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT>(VkPhysicalDeviceFragmentDensityMap2PropertiesEXT&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceProvokingVertexPropertiesEXT>(VkPhysicalDeviceProvokingVertexPropertiesEXT&, const AllPropertiesBlobs&) {}
 template<> void initPropertyFromBlob<VkPhysicalDeviceDrmPropertiesEXT>(VkPhysicalDeviceDrmPropertiesEXT&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI>(VkPhysicalDeviceSubpassShadingPropertiesHUAWEI&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR>(VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT>(VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT>(VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT&, const AllPropertiesBlobs&) {}
 template<> void initPropertyFromBlob<VkPhysicalDevicePipelinePropertiesFeaturesEXT>(VkPhysicalDevicePipelinePropertiesFeaturesEXT&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceMultiDrawPropertiesEXT>(VkPhysicalDeviceMultiDrawPropertiesEXT&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM>(VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM&, const AllPropertiesBlobs&) {}
+template<> void initPropertyFromBlob<VkPhysicalDevicePipelineRobustnessPropertiesEXT>(VkPhysicalDevicePipelineRobustnessPropertiesEXT&, const AllPropertiesBlobs&) {}
 template<> void initPropertyFromBlob<VkPhysicalDeviceImageProcessingPropertiesQCOM>(VkPhysicalDeviceImageProcessingPropertiesQCOM&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT>(VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT&, const AllPropertiesBlobs&) {}
 template<> void initPropertyFromBlob<VkPhysicalDeviceTilePropertiesFeaturesQCOM>(VkPhysicalDeviceTilePropertiesFeaturesQCOM&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceAccelerationStructurePropertiesKHR>(VkPhysicalDeviceAccelerationStructurePropertiesKHR&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDeviceRayTracingPipelinePropertiesKHR>(VkPhysicalDeviceRayTracingPipelinePropertiesKHR&, const AllPropertiesBlobs&) {}
-template<> void initPropertyFromBlob<VkPhysicalDevicePortabilitySubsetPropertiesKHR>(VkPhysicalDevicePortabilitySubsetPropertiesKHR&, const AllPropertiesBlobs&) {}
 
 
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceAccelerationStructurePropertiesKHR>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR, VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME, VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION, 54}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION, 53}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceConservativeRasterizationPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME, VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION, 52}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceCooperativeMatrixPropertiesNV>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION, 51}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceCustomBorderColorPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION, 50}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDepthStencilResolveProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES, VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME, VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION, 49}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDescriptorIndexingProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 48}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION, 47}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDiscardRectanglePropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT, VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME, VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION, 46}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDriverProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES, VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME, VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION, 45}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDrmPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT, VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME, VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION, 44}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceExternalMemoryHostPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT, VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME, VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION, 43}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFloatControlsProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES, VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION, 42}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFragmentDensityMapPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION, 41}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION, 40}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM, VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME, VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION, 39}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR, VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION, 38}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFragmentShadingRatePropertiesKHR>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR, VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION, 37}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION, 36}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT, VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME, VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION, 35}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceIDProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES, VK_KHR_PRESENT_ID_EXTENSION_NAME, VK_KHR_PRESENT_ID_SPEC_VERSION, 34}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceImageProcessingPropertiesQCOM>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM, VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME, VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION, 33}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceInlineUniformBlockProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION, 32}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceLineRasterizationPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION, 31}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMaintenance3Properties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, VK_KHR_MAINTENANCE_3_EXTENSION_NAME, VK_KHR_MAINTENANCE_3_SPEC_VERSION, 30}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMaintenance4Properties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES, VK_KHR_MAINTENANCE_4_EXTENSION_NAME, VK_KHR_MAINTENANCE_4_SPEC_VERSION, 29}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMeshShaderPropertiesNV>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION, 28}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMultiviewProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 27}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION, 26}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMultiDrawPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT, VK_EXT_MULTI_DRAW_EXTENSION_NAME, VK_EXT_MULTI_DRAW_SPEC_VERSION, 25}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePerformanceQueryPropertiesKHR>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION, 24}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePipelineRobustnessPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT, VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME, VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION, 23}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePointClippingProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, VK_KHR_MAINTENANCE_2_EXTENSION_NAME, VK_KHR_MAINTENANCE_2_SPEC_VERSION, 22}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePortabilitySubsetPropertiesKHR>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME, VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION, 21}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceProtectedMemoryProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 20}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceProvokingVertexPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT, VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME, VK_EXT_PROVOKING_VERTEX_SPEC_VERSION, 19}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePushDescriptorPropertiesKHR>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR, VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME, VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION, 18}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceRayTracingPropertiesNV>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV, VK_NV_RAY_TRACING_EXTENSION_NAME, VK_NV_RAY_TRACING_SPEC_VERSION, 17}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceRayTracingPipelinePropertiesKHR>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR, VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME, VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION, 16}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceTransformFeedbackPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT, VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION, 60}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMultiviewProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 59}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMemoryProperties2>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION, 58}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePipelineRobustnessPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT, VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME, VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION, 57}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceGroupProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR, VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME, VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION, 56}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceIDProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR, VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME, VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION, 55}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePushDescriptorPropertiesKHR>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR, VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME, VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION, 54}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION, 53}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDiscardRectanglePropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT, VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME, VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION, 52}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceConservativeRasterizationPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME, VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION, 51}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePerformanceQueryPropertiesKHR>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION, 50}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePointClippingProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR, VK_KHR_MAINTENANCE_2_EXTENSION_NAME, VK_KHR_MAINTENANCE_2_SPEC_VERSION, 49}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSamplerFilterMinmaxProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT, VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME, VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION, 48}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceInlineUniformBlockProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION, 47}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSampleLocationsPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT, VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME, VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION, 46}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION, 45}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceAccelerationStructurePropertiesKHR>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR, VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME, VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION, 44}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceRayTracingPipelinePropertiesKHR>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR, VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME, VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION, 43}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV, VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME, VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION, 42}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDescriptorIndexingProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 41}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePortabilitySubsetPropertiesKHR>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME, VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION, 40}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceShadingRateImagePropertiesNV>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION, 39}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceRayTracingPropertiesNV>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV, VK_NV_RAY_TRACING_EXTENSION_NAME, VK_NV_RAY_TRACING_SPEC_VERSION, 38}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMaintenance3Properties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR, VK_KHR_MAINTENANCE_3_EXTENSION_NAME, VK_KHR_MAINTENANCE_3_SPEC_VERSION, 37}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceExternalMemoryHostPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT, VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME, VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION, 36}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceShaderCorePropertiesAMD>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD, VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION, 35}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION, 34}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDriverProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR, VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME, VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION, 33}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFloatControlsProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR, VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION, 32}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDepthStencilResolveProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR, VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME, VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION, 31}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMeshShaderPropertiesNV>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION, 30}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceTimelineSemaphoreProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR, VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME, VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION, 29}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePCIBusInfoPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT, VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, VK_EXT_PCI_BUS_INFO_SPEC_VERSION, 28}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFragmentDensityMapPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION, 27}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSubgroupSizeControlProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION, 26}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFragmentShadingRatePropertiesKHR>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR, VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION, 25}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceShaderCoreProperties2AMD>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD, VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION, 24}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMemoryBudgetPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT, VK_EXT_MEMORY_BUDGET_EXTENSION_NAME, VK_EXT_MEMORY_BUDGET_SPEC_VERSION, 23}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceToolProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT, VK_EXT_TOOLING_INFO_EXTENSION_NAME, VK_EXT_TOOLING_INFO_SPEC_VERSION, 22}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceCooperativeMatrixPropertiesNV>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION, 21}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceProvokingVertexPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT, VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME, VK_EXT_PROVOKING_VERTEX_SPEC_VERSION, 20}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceLineRasterizationPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION, 19}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION, 18}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceShaderIntegerDotProductProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION, 17}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceTexelBufferAlignmentProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT, VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME, VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION, 16}; }
 template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceRobustness2PropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION, 15}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSamplerFilterMinmaxProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME, VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION, 14}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSampleLocationsPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT, VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME, VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION, 13}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceShaderCorePropertiesAMD>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD, VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION, 12}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceShaderCoreProperties2AMD>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD, VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION, 11}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceShaderIntegerDotProductProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION, 10}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT, VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME, VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION, 9}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceShadingRateImagePropertiesNV>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION, 8}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSubgroupProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES, DECL_SUBGROUP_EXTENSION_NAME, 0, 7}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSubgroupSizeControlProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION, 6}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI, VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME, VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION, 5}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceTexelBufferAlignmentProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES, VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME, VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION, 4}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceTimelineSemaphoreProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES, VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME, VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION, 3}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceTransformFeedbackPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT, VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION, 2}; }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION, 1}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceCustomBorderColorPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION, 14}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT, VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME, VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION, 13}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR, VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION, 12}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION, 11}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION, 10}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDrmPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT, VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME, VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION, 9}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI, VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME, VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION, 8}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMultiDrawPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT, VK_EXT_MULTI_DRAW_EXTENSION_NAME, VK_EXT_MULTI_DRAW_SPEC_VERSION, 7}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMaintenance4Properties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR, VK_KHR_MAINTENANCE_4_EXTENSION_NAME, VK_KHR_MAINTENANCE_4_SPEC_VERSION, 6}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM, VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME, VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION, 5}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceImageProcessingPropertiesQCOM>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM, VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME, VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION, 4}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT, VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME, VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION, 3}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSubgroupProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES, DECL_SUBGROUP_EXTENSION_NAME, 0, 2}; }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceProtectedMemoryProperties>(void) { return PropertyDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 1}; }
 
 
 static const PropertyStructCreationData propertyStructCreationArray[] =
 {
-       { createPropertyStructWrapper<VkPhysicalDeviceAccelerationStructurePropertiesKHR>, VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME, VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT>, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceConservativeRasterizationPropertiesEXT>, VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME, VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceCooperativeMatrixPropertiesNV>, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceCustomBorderColorPropertiesEXT>, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceDepthStencilResolveProperties>, VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME, VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceDescriptorIndexingProperties>, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV>, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceDiscardRectanglePropertiesEXT>, VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME, VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceDriverProperties>, VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME, VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceDrmPropertiesEXT>, VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME, VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceExternalMemoryHostPropertiesEXT>, VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME, VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceFloatControlsProperties>, VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceFragmentDensityMapPropertiesEXT>, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT>, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM>, VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME, VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR>, VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceFragmentShadingRatePropertiesKHR>, VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV>, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT>, VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME, VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceIDProperties>, VK_KHR_PRESENT_ID_EXTENSION_NAME, VK_KHR_PRESENT_ID_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceImageProcessingPropertiesQCOM>, VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME, VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceInlineUniformBlockProperties>, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceLineRasterizationPropertiesEXT>, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceMaintenance3Properties>, VK_KHR_MAINTENANCE_3_EXTENSION_NAME, VK_KHR_MAINTENANCE_3_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceMaintenance4Properties>, VK_KHR_MAINTENANCE_4_EXTENSION_NAME, VK_KHR_MAINTENANCE_4_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceMeshShaderPropertiesNV>, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceTransformFeedbackPropertiesEXT>, VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION },
        { createPropertyStructWrapper<VkPhysicalDeviceMultiviewProperties>, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceMemoryProperties2>, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDevicePipelineRobustnessPropertiesEXT>, VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME, VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceGroupProperties>, VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME, VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceIDProperties>, VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME, VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDevicePushDescriptorPropertiesKHR>, VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME, VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION },
        { createPropertyStructWrapper<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceMultiDrawPropertiesEXT>, VK_EXT_MULTI_DRAW_EXTENSION_NAME, VK_EXT_MULTI_DRAW_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceDiscardRectanglePropertiesEXT>, VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME, VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceConservativeRasterizationPropertiesEXT>, VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME, VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION },
        { createPropertyStructWrapper<VkPhysicalDevicePerformanceQueryPropertiesKHR>, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDevicePipelineRobustnessPropertiesEXT>, VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME, VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION },
        { createPropertyStructWrapper<VkPhysicalDevicePointClippingProperties>, VK_KHR_MAINTENANCE_2_EXTENSION_NAME, VK_KHR_MAINTENANCE_2_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDevicePortabilitySubsetPropertiesKHR>, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME, VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceProtectedMemoryProperties>, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0 },
-       { createPropertyStructWrapper<VkPhysicalDeviceProvokingVertexPropertiesEXT>, VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME, VK_EXT_PROVOKING_VERTEX_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDevicePushDescriptorPropertiesKHR>, VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME, VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceRayTracingPropertiesNV>, VK_NV_RAY_TRACING_EXTENSION_NAME, VK_NV_RAY_TRACING_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceRayTracingPipelinePropertiesKHR>, VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME, VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceRobustness2PropertiesEXT>, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION },
        { createPropertyStructWrapper<VkPhysicalDeviceSamplerFilterMinmaxProperties>, VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME, VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceInlineUniformBlockProperties>, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION },
        { createPropertyStructWrapper<VkPhysicalDeviceSampleLocationsPropertiesEXT>, VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME, VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT>, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceAccelerationStructurePropertiesKHR>, VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME, VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceRayTracingPipelinePropertiesKHR>, VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME, VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV>, VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME, VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceDescriptorIndexingProperties>, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDevicePortabilitySubsetPropertiesKHR>, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME, VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceShadingRateImagePropertiesNV>, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceRayTracingPropertiesNV>, VK_NV_RAY_TRACING_EXTENSION_NAME, VK_NV_RAY_TRACING_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceMaintenance3Properties>, VK_KHR_MAINTENANCE_3_EXTENSION_NAME, VK_KHR_MAINTENANCE_3_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceExternalMemoryHostPropertiesEXT>, VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME, VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION },
        { createPropertyStructWrapper<VkPhysicalDeviceShaderCorePropertiesAMD>, VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT>, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceDriverProperties>, VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME, VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceFloatControlsProperties>, VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceDepthStencilResolveProperties>, VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME, VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceMeshShaderPropertiesNV>, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceTimelineSemaphoreProperties>, VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME, VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDevicePCIBusInfoPropertiesEXT>, VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, VK_EXT_PCI_BUS_INFO_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceFragmentDensityMapPropertiesEXT>, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceSubgroupSizeControlProperties>, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceFragmentShadingRatePropertiesKHR>, VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION },
        { createPropertyStructWrapper<VkPhysicalDeviceShaderCoreProperties2AMD>, VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceMemoryBudgetPropertiesEXT>, VK_EXT_MEMORY_BUDGET_EXTENSION_NAME, VK_EXT_MEMORY_BUDGET_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceToolProperties>, VK_EXT_TOOLING_INFO_EXTENSION_NAME, VK_EXT_TOOLING_INFO_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceCooperativeMatrixPropertiesNV>, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceProvokingVertexPropertiesEXT>, VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME, VK_EXT_PROVOKING_VERTEX_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceLineRasterizationPropertiesEXT>, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV>, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION },
        { createPropertyStructWrapper<VkPhysicalDeviceShaderIntegerDotProductProperties>, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME, VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceTexelBufferAlignmentProperties>, VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME, VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceRobustness2PropertiesEXT>, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceCustomBorderColorPropertiesEXT>, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT>, VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME, VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR>, VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV>, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME, VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT>, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceDrmPropertiesEXT>, VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME, VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI>, VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME, VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceMultiDrawPropertiesEXT>, VK_EXT_MULTI_DRAW_EXTENSION_NAME, VK_EXT_MULTI_DRAW_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceMaintenance4Properties>, VK_KHR_MAINTENANCE_4_EXTENSION_NAME, VK_KHR_MAINTENANCE_4_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM>, VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME, VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceImageProcessingPropertiesQCOM>, VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME, VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION },
        { createPropertyStructWrapper<VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT>, VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME, VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceShadingRateImagePropertiesNV>, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION },
        { createPropertyStructWrapper<VkPhysicalDeviceSubgroupProperties>, DECL_SUBGROUP_EXTENSION_NAME, 0 },
-       { createPropertyStructWrapper<VkPhysicalDeviceSubgroupSizeControlProperties>, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI>, VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME, VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceTexelBufferAlignmentProperties>, VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME, VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceTimelineSemaphoreProperties>, VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME, VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceTransformFeedbackPropertiesEXT>, VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION },
-       { createPropertyStructWrapper<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT>, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION },
+       { createPropertyStructWrapper<VkPhysicalDeviceProtectedMemoryProperties>, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0 },
 };
 
 deUint32 getBlobPropertiesVersion (VkStructureType sType)
@@ -395,25 +413,25 @@ deUint32 getBlobPropertiesVersion (VkStructureType sType)
        const std::map<VkStructureType, deUint32> sTypeBlobMap
        {
                // Vulkan11
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,                                                      VK_API_VERSION_1_1 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,                           VK_API_VERSION_1_1 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,                                       VK_API_VERSION_1_1 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,                          VK_API_VERSION_1_1 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES,                        VK_API_VERSION_1_1 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES,                                        VK_API_VERSION_1_1 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR,                                                  VK_API_VERSION_1_1 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR,                               VK_API_VERSION_1_1 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR,                                   VK_API_VERSION_1_1 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR,                              VK_API_VERSION_1_1 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES,                                VK_API_VERSION_1_1 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES,                                                VK_API_VERSION_1_1 },
                // Vulkan12
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,           VK_API_VERSION_1_2 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,                     VK_API_VERSION_1_2 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,                                          VK_API_VERSION_1_2 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,                          VK_API_VERSION_1_2 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,           VK_API_VERSION_1_2 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,                      VK_API_VERSION_1_2 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR,               VK_API_VERSION_1_2 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT,                 VK_API_VERSION_1_2 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR,                                              VK_API_VERSION_1_2 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR,                              VK_API_VERSION_1_2 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT,               VK_API_VERSION_1_2 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR,                  VK_API_VERSION_1_2 },
                // Vulkan13
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,            VK_API_VERSION_1_3 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,                           VK_API_VERSION_1_3 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,      VK_API_VERSION_1_3 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,           VK_API_VERSION_1_3 },
-               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,          VK_API_VERSION_1_3 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT,                VK_API_VERSION_1_3 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR,                               VK_API_VERSION_1_3 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR,  VK_API_VERSION_1_3 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT,               VK_API_VERSION_1_3 },
+               { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT,              VK_API_VERSION_1_3 },
        };
 
        auto it = sTypeBlobMap.find(sType);
index 153e4a3..8ac8135 100644 (file)
@@ -3,57 +3,63 @@
  * This file was generated by /scripts/gen_framework.py
  */
 
-const vk::VkPhysicalDeviceAccelerationStructurePropertiesKHR&          getAccelerationStructureProperties                      (void) const;
-const vk::VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT&         getBlendOperationAdvancedPropertiesEXT          (void) const;
-const vk::VkPhysicalDeviceConservativeRasterizationPropertiesEXT&      getConservativeRasterizationPropertiesEXT       (void) const;
-const vk::VkPhysicalDeviceCooperativeMatrixPropertiesNV&                       getCooperativeMatrixProperties                          (void) const;
-const vk::VkPhysicalDeviceCustomBorderColorPropertiesEXT&                      getCustomBorderColorPropertiesEXT                       (void) const;
-const vk::VkPhysicalDeviceDepthStencilResolveProperties&                       getDepthStencilResolveProperties                        (void) const;
-const vk::VkPhysicalDeviceDescriptorIndexingProperties&                                getDescriptorIndexingProperties                         (void) const;
-const vk::VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV&         getDeviceGeneratedCommandsProperties            (void) const;
-const vk::VkPhysicalDeviceDiscardRectanglePropertiesEXT&                       getDiscardRectanglePropertiesEXT                        (void) const;
-const vk::VkPhysicalDeviceDriverProperties&                                                    getDriverProperties                                                     (void) const;
-const vk::VkPhysicalDeviceDrmPropertiesEXT&                                                    getDrmPropertiesEXT                                                     (void) const;
-const vk::VkPhysicalDeviceExternalMemoryHostPropertiesEXT&                     getExternalMemoryHostPropertiesEXT                      (void) const;
-const vk::VkPhysicalDeviceFloatControlsProperties&                                     getFloatControlsProperties                                      (void) const;
-const vk::VkPhysicalDeviceFragmentDensityMapPropertiesEXT&                     getFragmentDensityMapPropertiesEXT                      (void) const;
-const vk::VkPhysicalDeviceFragmentDensityMap2PropertiesEXT&                    getFragmentDensityMap2PropertiesEXT                     (void) const;
-const vk::VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM&      getFragmentDensityMapOffsetPropertiesQCOM       (void) const;
-const vk::VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR&      getFragmentShaderBarycentricProperties          (void) const;
-const vk::VkPhysicalDeviceFragmentShadingRatePropertiesKHR&                    getFragmentShadingRateProperties                        (void) const;
-const vk::VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV&                getFragmentShadingRateEnumsProperties           (void) const;
-const vk::VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT&                getGraphicsPipelineLibraryPropertiesEXT         (void) const;
-const vk::VkPhysicalDeviceIDProperties&                                                                getIDProperties                                                         (void) const;
-const vk::VkPhysicalDeviceImageProcessingPropertiesQCOM&                       getImageProcessingPropertiesQCOM                        (void) const;
-const vk::VkPhysicalDeviceInlineUniformBlockProperties&                                getInlineUniformBlockProperties                         (void) const;
-const vk::VkPhysicalDeviceLineRasterizationPropertiesEXT&                      getLineRasterizationPropertiesEXT                       (void) const;
-const vk::VkPhysicalDeviceMaintenance3Properties&                                      getMaintenance3Properties                                       (void) const;
-const vk::VkPhysicalDeviceMaintenance4Properties&                                      getMaintenance4Properties                                       (void) const;
-const vk::VkPhysicalDeviceMeshShaderPropertiesNV&                                      getMeshShaderProperties                                         (void) const;
+const vk::VkPhysicalDeviceTransformFeedbackPropertiesEXT&                      getTransformFeedbackPropertiesEXT                       (void) const;
 const vk::VkPhysicalDeviceMultiviewProperties&                                         getMultiviewProperties                                          (void) const;
+const vk::VkPhysicalDeviceMemoryProperties2&                                           getMemoryProperties2                                            (void) const;
+const vk::VkPhysicalDevicePipelineRobustnessPropertiesEXT&                     getPipelineRobustnessPropertiesEXT                      (void) const;
+const vk::VkPhysicalDeviceGroupProperties&                                                     getGroupProperties                                                      (void) const;
+const vk::VkPhysicalDeviceIDProperties&                                                                getIDProperties                                                         (void) const;
+const vk::VkPhysicalDevicePushDescriptorPropertiesKHR&                         getPushDescriptorProperties                                     (void) const;
 const vk::VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX&     getMultiviewPerViewAttributesPropertiesX        (void) const;
-const vk::VkPhysicalDeviceMultiDrawPropertiesEXT&                                      getMultiDrawPropertiesEXT                                       (void) const;
+const vk::VkPhysicalDeviceDiscardRectanglePropertiesEXT&                       getDiscardRectanglePropertiesEXT                        (void) const;
+const vk::VkPhysicalDeviceConservativeRasterizationPropertiesEXT&      getConservativeRasterizationPropertiesEXT       (void) const;
 const vk::VkPhysicalDevicePerformanceQueryPropertiesKHR&                       getPerformanceQueryProperties                           (void) const;
-const vk::VkPhysicalDevicePipelineRobustnessPropertiesEXT&                     getPipelineRobustnessPropertiesEXT                      (void) const;
 const vk::VkPhysicalDevicePointClippingProperties&                                     getPointClippingProperties                                      (void) const;
-const vk::VkPhysicalDevicePortabilitySubsetPropertiesKHR&                      getPortabilitySubsetProperties                          (void) const;
-const vk::VkPhysicalDeviceProtectedMemoryProperties&                           getProtectedMemoryProperties                            (void) const;
-const vk::VkPhysicalDeviceProvokingVertexPropertiesEXT&                                getProvokingVertexPropertiesEXT                         (void) const;
-const vk::VkPhysicalDevicePushDescriptorPropertiesKHR&                         getPushDescriptorProperties                                     (void) const;
-const vk::VkPhysicalDeviceRayTracingPropertiesNV&                                      getRayTracingPropertiesNV                                       (void) const;
-const vk::VkPhysicalDeviceRayTracingPipelinePropertiesKHR&                     getRayTracingPipelineProperties                         (void) const;
-const vk::VkPhysicalDeviceRobustness2PropertiesEXT&                                    getRobustness2PropertiesEXT                                     (void) const;
 const vk::VkPhysicalDeviceSamplerFilterMinmaxProperties&                       getSamplerFilterMinmaxProperties                        (void) const;
+const vk::VkPhysicalDeviceInlineUniformBlockProperties&                                getInlineUniformBlockProperties                         (void) const;
 const vk::VkPhysicalDeviceSampleLocationsPropertiesEXT&                                getSampleLocationsPropertiesEXT                         (void) const;
+const vk::VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT&         getBlendOperationAdvancedPropertiesEXT          (void) const;
+const vk::VkPhysicalDeviceAccelerationStructurePropertiesKHR&          getAccelerationStructureProperties                      (void) const;
+const vk::VkPhysicalDeviceRayTracingPipelinePropertiesKHR&                     getRayTracingPipelineProperties                         (void) const;
+const vk::VkPhysicalDeviceShaderSMBuiltinsPropertiesNV&                                getShaderSMBuiltinsProperties                           (void) const;
+const vk::VkPhysicalDeviceDescriptorIndexingProperties&                                getDescriptorIndexingProperties                         (void) const;
+const vk::VkPhysicalDevicePortabilitySubsetPropertiesKHR&                      getPortabilitySubsetProperties                          (void) const;
+const vk::VkPhysicalDeviceShadingRateImagePropertiesNV&                                getShadingRateImageProperties                           (void) const;
+const vk::VkPhysicalDeviceRayTracingPropertiesNV&                                      getRayTracingPropertiesNV                                       (void) const;
+const vk::VkPhysicalDeviceMaintenance3Properties&                                      getMaintenance3Properties                                       (void) const;
+const vk::VkPhysicalDeviceExternalMemoryHostPropertiesEXT&                     getExternalMemoryHostPropertiesEXT                      (void) const;
 const vk::VkPhysicalDeviceShaderCorePropertiesAMD&                                     getShaderCorePropertiesAMD                                      (void) const;
+const vk::VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT&         getVertexAttributeDivisorPropertiesEXT          (void) const;
+const vk::VkPhysicalDeviceDriverProperties&                                                    getDriverProperties                                                     (void) const;
+const vk::VkPhysicalDeviceFloatControlsProperties&                                     getFloatControlsProperties                                      (void) const;
+const vk::VkPhysicalDeviceDepthStencilResolveProperties&                       getDepthStencilResolveProperties                        (void) const;
+const vk::VkPhysicalDeviceMeshShaderPropertiesNV&                                      getMeshShaderProperties                                         (void) const;
+const vk::VkPhysicalDeviceTimelineSemaphoreProperties&                         getTimelineSemaphoreProperties                          (void) const;
+const vk::VkPhysicalDevicePCIBusInfoPropertiesEXT&                                     getPCIBusInfoPropertiesEXT                                      (void) const;
+const vk::VkPhysicalDeviceFragmentDensityMapPropertiesEXT&                     getFragmentDensityMapPropertiesEXT                      (void) const;
+const vk::VkPhysicalDeviceSubgroupSizeControlProperties&                       getSubgroupSizeControlProperties                        (void) const;
+const vk::VkPhysicalDeviceFragmentShadingRatePropertiesKHR&                    getFragmentShadingRateProperties                        (void) const;
 const vk::VkPhysicalDeviceShaderCoreProperties2AMD&                                    getShaderCoreProperties2AMD                                     (void) const;
+const vk::VkPhysicalDeviceMemoryBudgetPropertiesEXT&                           getMemoryBudgetPropertiesEXT                            (void) const;
+const vk::VkPhysicalDeviceToolProperties&                                                      getToolProperties                                                       (void) const;
+const vk::VkPhysicalDeviceCooperativeMatrixPropertiesNV&                       getCooperativeMatrixProperties                          (void) const;
+const vk::VkPhysicalDeviceProvokingVertexPropertiesEXT&                                getProvokingVertexPropertiesEXT                         (void) const;
+const vk::VkPhysicalDeviceLineRasterizationPropertiesEXT&                      getLineRasterizationPropertiesEXT                       (void) const;
+const vk::VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV&         getDeviceGeneratedCommandsProperties            (void) const;
 const vk::VkPhysicalDeviceShaderIntegerDotProductProperties&           getShaderIntegerDotProductProperties            (void) const;
+const vk::VkPhysicalDeviceTexelBufferAlignmentProperties&                      getTexelBufferAlignmentProperties                       (void) const;
+const vk::VkPhysicalDeviceRobustness2PropertiesEXT&                                    getRobustness2PropertiesEXT                                     (void) const;
+const vk::VkPhysicalDeviceCustomBorderColorPropertiesEXT&                      getCustomBorderColorPropertiesEXT                       (void) const;
+const vk::VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT&                getGraphicsPipelineLibraryPropertiesEXT         (void) const;
+const vk::VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR&      getFragmentShaderBarycentricProperties          (void) const;
+const vk::VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV&                getFragmentShadingRateEnumsProperties           (void) const;
+const vk::VkPhysicalDeviceFragmentDensityMap2PropertiesEXT&                    getFragmentDensityMap2PropertiesEXT                     (void) const;
+const vk::VkPhysicalDeviceDrmPropertiesEXT&                                                    getDrmPropertiesEXT                                                     (void) const;
+const vk::VkPhysicalDeviceSubpassShadingPropertiesHUAWEI&                      getSubpassShadingPropertiesHUAWEI                       (void) const;
+const vk::VkPhysicalDeviceMultiDrawPropertiesEXT&                                      getMultiDrawPropertiesEXT                                       (void) const;
+const vk::VkPhysicalDeviceMaintenance4Properties&                                      getMaintenance4Properties                                       (void) const;
+const vk::VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM&      getFragmentDensityMapOffsetPropertiesQCOM       (void) const;
+const vk::VkPhysicalDeviceImageProcessingPropertiesQCOM&                       getImageProcessingPropertiesQCOM                        (void) const;
 const vk::VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT&         getShaderModuleIdentifierPropertiesEXT          (void) const;
-const vk::VkPhysicalDeviceShadingRateImagePropertiesNV&                                getShadingRateImageProperties                           (void) const;
 const vk::VkPhysicalDeviceSubgroupProperties&                                          getSubgroupProperties                                           (void) const;
-const vk::VkPhysicalDeviceSubgroupSizeControlProperties&                       getSubgroupSizeControlProperties                        (void) const;
-const vk::VkPhysicalDeviceSubpassShadingPropertiesHUAWEI&                      getSubpassShadingPropertiesHUAWEI                       (void) const;
-const vk::VkPhysicalDeviceTexelBufferAlignmentProperties&                      getTexelBufferAlignmentProperties                       (void) const;
-const vk::VkPhysicalDeviceTimelineSemaphoreProperties&                         getTimelineSemaphoreProperties                          (void) const;
-const vk::VkPhysicalDeviceTransformFeedbackPropertiesEXT&                      getTransformFeedbackPropertiesEXT                       (void) const;
-const vk::VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT&         getVertexAttributeDivisorPropertiesEXT          (void) const;
+const vk::VkPhysicalDeviceProtectedMemoryProperties&                           getProtectedMemoryProperties                            (void) const;
index c5a69d8..7aba27a 100644 (file)
@@ -3,57 +3,63 @@
  * This file was generated by /scripts/gen_framework.py
  */
 
-const vk::VkPhysicalDeviceAccelerationStructurePropertiesKHR&          Context::getAccelerationStructureProperties                     (void) const { return m_device->getAccelerationStructureProperties();                   }
-const vk::VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT&         Context::getBlendOperationAdvancedPropertiesEXT         (void) const { return m_device->getBlendOperationAdvancedPropertiesEXT();               }
-const vk::VkPhysicalDeviceConservativeRasterizationPropertiesEXT&      Context::getConservativeRasterizationPropertiesEXT      (void) const { return m_device->getConservativeRasterizationPropertiesEXT();    }
-const vk::VkPhysicalDeviceCooperativeMatrixPropertiesNV&                       Context::getCooperativeMatrixProperties                         (void) const { return m_device->getCooperativeMatrixProperties();                               }
-const vk::VkPhysicalDeviceCustomBorderColorPropertiesEXT&                      Context::getCustomBorderColorPropertiesEXT                      (void) const { return m_device->getCustomBorderColorPropertiesEXT();                    }
-const vk::VkPhysicalDeviceDepthStencilResolveProperties&                       Context::getDepthStencilResolveProperties                       (void) const { return m_device->getDepthStencilResolveProperties();                             }
-const vk::VkPhysicalDeviceDescriptorIndexingProperties&                                Context::getDescriptorIndexingProperties                        (void) const { return m_device->getDescriptorIndexingProperties();                              }
-const vk::VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV&         Context::getDeviceGeneratedCommandsProperties           (void) const { return m_device->getDeviceGeneratedCommandsProperties();                 }
-const vk::VkPhysicalDeviceDiscardRectanglePropertiesEXT&                       Context::getDiscardRectanglePropertiesEXT                       (void) const { return m_device->getDiscardRectanglePropertiesEXT();                             }
-const vk::VkPhysicalDeviceDriverProperties&                                                    Context::getDriverProperties                                            (void) const { return m_device->getDriverProperties();                                                  }
-const vk::VkPhysicalDeviceDrmPropertiesEXT&                                                    Context::getDrmPropertiesEXT                                            (void) const { return m_device->getDrmPropertiesEXT();                                                  }
-const vk::VkPhysicalDeviceExternalMemoryHostPropertiesEXT&                     Context::getExternalMemoryHostPropertiesEXT                     (void) const { return m_device->getExternalMemoryHostPropertiesEXT();                   }
-const vk::VkPhysicalDeviceFloatControlsProperties&                                     Context::getFloatControlsProperties                                     (void) const { return m_device->getFloatControlsProperties();                                   }
-const vk::VkPhysicalDeviceFragmentDensityMapPropertiesEXT&                     Context::getFragmentDensityMapPropertiesEXT                     (void) const { return m_device->getFragmentDensityMapPropertiesEXT();                   }
-const vk::VkPhysicalDeviceFragmentDensityMap2PropertiesEXT&                    Context::getFragmentDensityMap2PropertiesEXT            (void) const { return m_device->getFragmentDensityMap2PropertiesEXT();                  }
-const vk::VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM&      Context::getFragmentDensityMapOffsetPropertiesQCOM      (void) const { return m_device->getFragmentDensityMapOffsetPropertiesQCOM();    }
-const vk::VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR&      Context::getFragmentShaderBarycentricProperties         (void) const { return m_device->getFragmentShaderBarycentricProperties();               }
-const vk::VkPhysicalDeviceFragmentShadingRatePropertiesKHR&                    Context::getFragmentShadingRateProperties                       (void) const { return m_device->getFragmentShadingRateProperties();                             }
-const vk::VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV&                Context::getFragmentShadingRateEnumsProperties          (void) const { return m_device->getFragmentShadingRateEnumsProperties();                }
-const vk::VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT&                Context::getGraphicsPipelineLibraryPropertiesEXT        (void) const { return m_device->getGraphicsPipelineLibraryPropertiesEXT();              }
-const vk::VkPhysicalDeviceIDProperties&                                                                Context::getIDProperties                                                        (void) const { return m_device->getIDProperties();                                                              }
-const vk::VkPhysicalDeviceImageProcessingPropertiesQCOM&                       Context::getImageProcessingPropertiesQCOM                       (void) const { return m_device->getImageProcessingPropertiesQCOM();                             }
-const vk::VkPhysicalDeviceInlineUniformBlockProperties&                                Context::getInlineUniformBlockProperties                        (void) const { return m_device->getInlineUniformBlockProperties();                              }
-const vk::VkPhysicalDeviceLineRasterizationPropertiesEXT&                      Context::getLineRasterizationPropertiesEXT                      (void) const { return m_device->getLineRasterizationPropertiesEXT();                    }
-const vk::VkPhysicalDeviceMaintenance3Properties&                                      Context::getMaintenance3Properties                                      (void) const { return m_device->getMaintenance3Properties();                                    }
-const vk::VkPhysicalDeviceMaintenance4Properties&                                      Context::getMaintenance4Properties                                      (void) const { return m_device->getMaintenance4Properties();                                    }
-const vk::VkPhysicalDeviceMeshShaderPropertiesNV&                                      Context::getMeshShaderProperties                                        (void) const { return m_device->getMeshShaderProperties();                                              }
+const vk::VkPhysicalDeviceTransformFeedbackPropertiesEXT&                      Context::getTransformFeedbackPropertiesEXT                      (void) const { return m_device->getTransformFeedbackPropertiesEXT();                    }
 const vk::VkPhysicalDeviceMultiviewProperties&                                         Context::getMultiviewProperties                                         (void) const { return m_device->getMultiviewProperties();                                               }
+const vk::VkPhysicalDeviceMemoryProperties2&                                           Context::getMemoryProperties2                                           (void) const { return m_device->getMemoryProperties2();                                                 }
+const vk::VkPhysicalDevicePipelineRobustnessPropertiesEXT&                     Context::getPipelineRobustnessPropertiesEXT                     (void) const { return m_device->getPipelineRobustnessPropertiesEXT();                   }
+const vk::VkPhysicalDeviceGroupProperties&                                                     Context::getGroupProperties                                                     (void) const { return m_device->getGroupProperties();                                                   }
+const vk::VkPhysicalDeviceIDProperties&                                                                Context::getIDProperties                                                        (void) const { return m_device->getIDProperties();                                                              }
+const vk::VkPhysicalDevicePushDescriptorPropertiesKHR&                         Context::getPushDescriptorProperties                            (void) const { return m_device->getPushDescriptorProperties();                                  }
 const vk::VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX&     Context::getMultiviewPerViewAttributesPropertiesX       (void) const { return m_device->getMultiviewPerViewAttributesPropertiesX();             }
-const vk::VkPhysicalDeviceMultiDrawPropertiesEXT&                                      Context::getMultiDrawPropertiesEXT                                      (void) const { return m_device->getMultiDrawPropertiesEXT();                                    }
+const vk::VkPhysicalDeviceDiscardRectanglePropertiesEXT&                       Context::getDiscardRectanglePropertiesEXT                       (void) const { return m_device->getDiscardRectanglePropertiesEXT();                             }
+const vk::VkPhysicalDeviceConservativeRasterizationPropertiesEXT&      Context::getConservativeRasterizationPropertiesEXT      (void) const { return m_device->getConservativeRasterizationPropertiesEXT();    }
 const vk::VkPhysicalDevicePerformanceQueryPropertiesKHR&                       Context::getPerformanceQueryProperties                          (void) const { return m_device->getPerformanceQueryProperties();                                }
-const vk::VkPhysicalDevicePipelineRobustnessPropertiesEXT&                     Context::getPipelineRobustnessPropertiesEXT                     (void) const { return m_device->getPipelineRobustnessPropertiesEXT();                   }
 const vk::VkPhysicalDevicePointClippingProperties&                                     Context::getPointClippingProperties                                     (void) const { return m_device->getPointClippingProperties();                                   }
-const vk::VkPhysicalDevicePortabilitySubsetPropertiesKHR&                      Context::getPortabilitySubsetProperties                         (void) const { return m_device->getPortabilitySubsetProperties();                               }
-const vk::VkPhysicalDeviceProtectedMemoryProperties&                           Context::getProtectedMemoryProperties                           (void) const { return m_device->getProtectedMemoryProperties();                                 }
-const vk::VkPhysicalDeviceProvokingVertexPropertiesEXT&                                Context::getProvokingVertexPropertiesEXT                        (void) const { return m_device->getProvokingVertexPropertiesEXT();                              }
-const vk::VkPhysicalDevicePushDescriptorPropertiesKHR&                         Context::getPushDescriptorProperties                            (void) const { return m_device->getPushDescriptorProperties();                                  }
-const vk::VkPhysicalDeviceRayTracingPropertiesNV&                                      Context::getRayTracingPropertiesNV                                      (void) const { return m_device->getRayTracingPropertiesNV();                                    }
-const vk::VkPhysicalDeviceRayTracingPipelinePropertiesKHR&                     Context::getRayTracingPipelineProperties                        (void) const { return m_device->getRayTracingPipelineProperties();                              }
-const vk::VkPhysicalDeviceRobustness2PropertiesEXT&                                    Context::getRobustness2PropertiesEXT                            (void) const { return m_device->getRobustness2PropertiesEXT();                                  }
 const vk::VkPhysicalDeviceSamplerFilterMinmaxProperties&                       Context::getSamplerFilterMinmaxProperties                       (void) const { return m_device->getSamplerFilterMinmaxProperties();                             }
+const vk::VkPhysicalDeviceInlineUniformBlockProperties&                                Context::getInlineUniformBlockProperties                        (void) const { return m_device->getInlineUniformBlockProperties();                              }
 const vk::VkPhysicalDeviceSampleLocationsPropertiesEXT&                                Context::getSampleLocationsPropertiesEXT                        (void) const { return m_device->getSampleLocationsPropertiesEXT();                              }
+const vk::VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT&         Context::getBlendOperationAdvancedPropertiesEXT         (void) const { return m_device->getBlendOperationAdvancedPropertiesEXT();               }
+const vk::VkPhysicalDeviceAccelerationStructurePropertiesKHR&          Context::getAccelerationStructureProperties                     (void) const { return m_device->getAccelerationStructureProperties();                   }
+const vk::VkPhysicalDeviceRayTracingPipelinePropertiesKHR&                     Context::getRayTracingPipelineProperties                        (void) const { return m_device->getRayTracingPipelineProperties();                              }
+const vk::VkPhysicalDeviceShaderSMBuiltinsPropertiesNV&                                Context::getShaderSMBuiltinsProperties                          (void) const { return m_device->getShaderSMBuiltinsProperties();                                }
+const vk::VkPhysicalDeviceDescriptorIndexingProperties&                                Context::getDescriptorIndexingProperties                        (void) const { return m_device->getDescriptorIndexingProperties();                              }
+const vk::VkPhysicalDevicePortabilitySubsetPropertiesKHR&                      Context::getPortabilitySubsetProperties                         (void) const { return m_device->getPortabilitySubsetProperties();                               }
+const vk::VkPhysicalDeviceShadingRateImagePropertiesNV&                                Context::getShadingRateImageProperties                          (void) const { return m_device->getShadingRateImageProperties();                                }
+const vk::VkPhysicalDeviceRayTracingPropertiesNV&                                      Context::getRayTracingPropertiesNV                                      (void) const { return m_device->getRayTracingPropertiesNV();                                    }
+const vk::VkPhysicalDeviceMaintenance3Properties&                                      Context::getMaintenance3Properties                                      (void) const { return m_device->getMaintenance3Properties();                                    }
+const vk::VkPhysicalDeviceExternalMemoryHostPropertiesEXT&                     Context::getExternalMemoryHostPropertiesEXT                     (void) const { return m_device->getExternalMemoryHostPropertiesEXT();                   }
 const vk::VkPhysicalDeviceShaderCorePropertiesAMD&                                     Context::getShaderCorePropertiesAMD                                     (void) const { return m_device->getShaderCorePropertiesAMD();                                   }
+const vk::VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT&         Context::getVertexAttributeDivisorPropertiesEXT         (void) const { return m_device->getVertexAttributeDivisorPropertiesEXT();               }
+const vk::VkPhysicalDeviceDriverProperties&                                                    Context::getDriverProperties                                            (void) const { return m_device->getDriverProperties();                                                  }
+const vk::VkPhysicalDeviceFloatControlsProperties&                                     Context::getFloatControlsProperties                                     (void) const { return m_device->getFloatControlsProperties();                                   }
+const vk::VkPhysicalDeviceDepthStencilResolveProperties&                       Context::getDepthStencilResolveProperties                       (void) const { return m_device->getDepthStencilResolveProperties();                             }
+const vk::VkPhysicalDeviceMeshShaderPropertiesNV&                                      Context::getMeshShaderProperties                                        (void) const { return m_device->getMeshShaderProperties();                                              }
+const vk::VkPhysicalDeviceTimelineSemaphoreProperties&                         Context::getTimelineSemaphoreProperties                         (void) const { return m_device->getTimelineSemaphoreProperties();                               }
+const vk::VkPhysicalDevicePCIBusInfoPropertiesEXT&                                     Context::getPCIBusInfoPropertiesEXT                                     (void) const { return m_device->getPCIBusInfoPropertiesEXT();                                   }
+const vk::VkPhysicalDeviceFragmentDensityMapPropertiesEXT&                     Context::getFragmentDensityMapPropertiesEXT                     (void) const { return m_device->getFragmentDensityMapPropertiesEXT();                   }
+const vk::VkPhysicalDeviceSubgroupSizeControlProperties&                       Context::getSubgroupSizeControlProperties                       (void) const { return m_device->getSubgroupSizeControlProperties();                             }
+const vk::VkPhysicalDeviceFragmentShadingRatePropertiesKHR&                    Context::getFragmentShadingRateProperties                       (void) const { return m_device->getFragmentShadingRateProperties();                             }
 const vk::VkPhysicalDeviceShaderCoreProperties2AMD&                                    Context::getShaderCoreProperties2AMD                            (void) const { return m_device->getShaderCoreProperties2AMD();                                  }
+const vk::VkPhysicalDeviceMemoryBudgetPropertiesEXT&                           Context::getMemoryBudgetPropertiesEXT                           (void) const { return m_device->getMemoryBudgetPropertiesEXT();                                 }
+const vk::VkPhysicalDeviceToolProperties&                                                      Context::getToolProperties                                                      (void) const { return m_device->getToolProperties();                                                    }
+const vk::VkPhysicalDeviceCooperativeMatrixPropertiesNV&                       Context::getCooperativeMatrixProperties                         (void) const { return m_device->getCooperativeMatrixProperties();                               }
+const vk::VkPhysicalDeviceProvokingVertexPropertiesEXT&                                Context::getProvokingVertexPropertiesEXT                        (void) const { return m_device->getProvokingVertexPropertiesEXT();                              }
+const vk::VkPhysicalDeviceLineRasterizationPropertiesEXT&                      Context::getLineRasterizationPropertiesEXT                      (void) const { return m_device->getLineRasterizationPropertiesEXT();                    }
+const vk::VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV&         Context::getDeviceGeneratedCommandsProperties           (void) const { return m_device->getDeviceGeneratedCommandsProperties();                 }
 const vk::VkPhysicalDeviceShaderIntegerDotProductProperties&           Context::getShaderIntegerDotProductProperties           (void) const { return m_device->getShaderIntegerDotProductProperties();                 }
+const vk::VkPhysicalDeviceTexelBufferAlignmentProperties&                      Context::getTexelBufferAlignmentProperties                      (void) const { return m_device->getTexelBufferAlignmentProperties();                    }
+const vk::VkPhysicalDeviceRobustness2PropertiesEXT&                                    Context::getRobustness2PropertiesEXT                            (void) const { return m_device->getRobustness2PropertiesEXT();                                  }
+const vk::VkPhysicalDeviceCustomBorderColorPropertiesEXT&                      Context::getCustomBorderColorPropertiesEXT                      (void) const { return m_device->getCustomBorderColorPropertiesEXT();                    }
+const vk::VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT&                Context::getGraphicsPipelineLibraryPropertiesEXT        (void) const { return m_device->getGraphicsPipelineLibraryPropertiesEXT();              }
+const vk::VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR&      Context::getFragmentShaderBarycentricProperties         (void) const { return m_device->getFragmentShaderBarycentricProperties();               }
+const vk::VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV&                Context::getFragmentShadingRateEnumsProperties          (void) const { return m_device->getFragmentShadingRateEnumsProperties();                }
+const vk::VkPhysicalDeviceFragmentDensityMap2PropertiesEXT&                    Context::getFragmentDensityMap2PropertiesEXT            (void) const { return m_device->getFragmentDensityMap2PropertiesEXT();                  }
+const vk::VkPhysicalDeviceDrmPropertiesEXT&                                                    Context::getDrmPropertiesEXT                                            (void) const { return m_device->getDrmPropertiesEXT();                                                  }
+const vk::VkPhysicalDeviceSubpassShadingPropertiesHUAWEI&                      Context::getSubpassShadingPropertiesHUAWEI                      (void) const { return m_device->getSubpassShadingPropertiesHUAWEI();                    }
+const vk::VkPhysicalDeviceMultiDrawPropertiesEXT&                                      Context::getMultiDrawPropertiesEXT                                      (void) const { return m_device->getMultiDrawPropertiesEXT();                                    }
+const vk::VkPhysicalDeviceMaintenance4Properties&                                      Context::getMaintenance4Properties                                      (void) const { return m_device->getMaintenance4Properties();                                    }
+const vk::VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM&      Context::getFragmentDensityMapOffsetPropertiesQCOM      (void) const { return m_device->getFragmentDensityMapOffsetPropertiesQCOM();    }
+const vk::VkPhysicalDeviceImageProcessingPropertiesQCOM&                       Context::getImageProcessingPropertiesQCOM                       (void) const { return m_device->getImageProcessingPropertiesQCOM();                             }
 const vk::VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT&         Context::getShaderModuleIdentifierPropertiesEXT         (void) const { return m_device->getShaderModuleIdentifierPropertiesEXT();               }
-const vk::VkPhysicalDeviceShadingRateImagePropertiesNV&                                Context::getShadingRateImageProperties                          (void) const { return m_device->getShadingRateImageProperties();                                }
 const vk::VkPhysicalDeviceSubgroupProperties&                                          Context::getSubgroupProperties                                          (void) const { return m_device->getSubgroupProperties();                                                }
-const vk::VkPhysicalDeviceSubgroupSizeControlProperties&                       Context::getSubgroupSizeControlProperties                       (void) const { return m_device->getSubgroupSizeControlProperties();                             }
-const vk::VkPhysicalDeviceSubpassShadingPropertiesHUAWEI&                      Context::getSubpassShadingPropertiesHUAWEI                      (void) const { return m_device->getSubpassShadingPropertiesHUAWEI();                    }
-const vk::VkPhysicalDeviceTexelBufferAlignmentProperties&                      Context::getTexelBufferAlignmentProperties                      (void) const { return m_device->getTexelBufferAlignmentProperties();                    }
-const vk::VkPhysicalDeviceTimelineSemaphoreProperties&                         Context::getTimelineSemaphoreProperties                         (void) const { return m_device->getTimelineSemaphoreProperties();                               }
-const vk::VkPhysicalDeviceTransformFeedbackPropertiesEXT&                      Context::getTransformFeedbackPropertiesEXT                      (void) const { return m_device->getTransformFeedbackPropertiesEXT();                    }
-const vk::VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT&         Context::getVertexAttributeDivisorPropertiesEXT         (void) const { return m_device->getVertexAttributeDivisorPropertiesEXT();               }
+const vk::VkPhysicalDeviceProtectedMemoryProperties&                           Context::getProtectedMemoryProperties                           (void) const { return m_device->getProtectedMemoryProperties();                                 }
index 3fc64b9..12780b7 100644 (file)
@@ -3,57 +3,63 @@
  * This file was generated by /scripts/gen_framework.py
  */
 
-const VkPhysicalDeviceAccelerationStructurePropertiesKHR&              getAccelerationStructureProperties                      (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceAccelerationStructurePropertiesKHR>();                 }
-const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT&             getBlendOperationAdvancedPropertiesEXT          (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT>();                }
-const VkPhysicalDeviceConservativeRasterizationPropertiesEXT&  getConservativeRasterizationPropertiesEXT       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceConservativeRasterizationPropertiesEXT>();             }
-const VkPhysicalDeviceCooperativeMatrixPropertiesNV&                   getCooperativeMatrixProperties                          (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceCooperativeMatrixPropertiesNV>();                              }
-const VkPhysicalDeviceCustomBorderColorPropertiesEXT&                  getCustomBorderColorPropertiesEXT                       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceCustomBorderColorPropertiesEXT>();                             }
-const VkPhysicalDeviceDepthStencilResolveProperties&                   getDepthStencilResolveProperties                        (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceDepthStencilResolveProperties>();                              }
-const VkPhysicalDeviceDescriptorIndexingProperties&                            getDescriptorIndexingProperties                         (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceDescriptorIndexingProperties>();                               }
-const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV&             getDeviceGeneratedCommandsProperties            (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV>();                }
-const VkPhysicalDeviceDiscardRectanglePropertiesEXT&                   getDiscardRectanglePropertiesEXT                        (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceDiscardRectanglePropertiesEXT>();                              }
-const VkPhysicalDeviceDriverProperties&                                                        getDriverProperties                                                     (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceDriverProperties>();                                                   }
-const VkPhysicalDeviceDrmPropertiesEXT&                                                        getDrmPropertiesEXT                                                     (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceDrmPropertiesEXT>();                                                   }
-const VkPhysicalDeviceExternalMemoryHostPropertiesEXT&                 getExternalMemoryHostPropertiesEXT                      (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceExternalMemoryHostPropertiesEXT>();                    }
-const VkPhysicalDeviceFloatControlsProperties&                                 getFloatControlsProperties                                      (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceFloatControlsProperties>();                                    }
-const VkPhysicalDeviceFragmentDensityMapPropertiesEXT&                 getFragmentDensityMapPropertiesEXT                      (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceFragmentDensityMapPropertiesEXT>();                    }
-const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT&                        getFragmentDensityMap2PropertiesEXT                     (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT>();                   }
-const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM&  getFragmentDensityMapOffsetPropertiesQCOM       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM>();             }
-const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR&  getFragmentShaderBarycentricProperties          (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR>();             }
-const VkPhysicalDeviceFragmentShadingRatePropertiesKHR&                        getFragmentShadingRateProperties                        (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceFragmentShadingRatePropertiesKHR>();                   }
-const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV&            getFragmentShadingRateEnumsProperties           (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV>();               }
-const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT&            getGraphicsPipelineLibraryPropertiesEXT         (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT>();               }
-const VkPhysicalDeviceIDProperties&                                                            getIDProperties                                                         (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceIDProperties>();                                                               }
-const VkPhysicalDeviceImageProcessingPropertiesQCOM&                   getImageProcessingPropertiesQCOM                        (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceImageProcessingPropertiesQCOM>();                              }
-const VkPhysicalDeviceInlineUniformBlockProperties&                            getInlineUniformBlockProperties                         (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceInlineUniformBlockProperties>();                               }
-const VkPhysicalDeviceLineRasterizationPropertiesEXT&                  getLineRasterizationPropertiesEXT                       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceLineRasterizationPropertiesEXT>();                             }
-const VkPhysicalDeviceMaintenance3Properties&                                  getMaintenance3Properties                                       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceMaintenance3Properties>();                                             }
-const VkPhysicalDeviceMaintenance4Properties&                                  getMaintenance4Properties                                       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceMaintenance4Properties>();                                             }
-const VkPhysicalDeviceMeshShaderPropertiesNV&                                  getMeshShaderProperties                                         (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceMeshShaderPropertiesNV>();                                             }
+const VkPhysicalDeviceTransformFeedbackPropertiesEXT&                  getTransformFeedbackPropertiesEXT                       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceTransformFeedbackPropertiesEXT>();                             }
 const VkPhysicalDeviceMultiviewProperties&                                             getMultiviewProperties                                          (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceMultiviewProperties>();                                                }
+const VkPhysicalDeviceMemoryProperties2&                                               getMemoryProperties2                                            (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceMemoryProperties2>();                                                  }
+const VkPhysicalDevicePipelineRobustnessPropertiesEXT&                 getPipelineRobustnessPropertiesEXT                      (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDevicePipelineRobustnessPropertiesEXT>();                    }
+const VkPhysicalDeviceGroupProperties&                                                 getGroupProperties                                                      (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceGroupProperties>();                                                    }
+const VkPhysicalDeviceIDProperties&                                                            getIDProperties                                                         (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceIDProperties>();                                                               }
+const VkPhysicalDevicePushDescriptorPropertiesKHR&                             getPushDescriptorProperties                                     (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDevicePushDescriptorPropertiesKHR>();                                }
 const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& getMultiviewPerViewAttributesPropertiesX        (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>();    }
-const VkPhysicalDeviceMultiDrawPropertiesEXT&                                  getMultiDrawPropertiesEXT                                       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceMultiDrawPropertiesEXT>();                                             }
+const VkPhysicalDeviceDiscardRectanglePropertiesEXT&                   getDiscardRectanglePropertiesEXT                        (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceDiscardRectanglePropertiesEXT>();                              }
+const VkPhysicalDeviceConservativeRasterizationPropertiesEXT&  getConservativeRasterizationPropertiesEXT       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceConservativeRasterizationPropertiesEXT>();             }
 const VkPhysicalDevicePerformanceQueryPropertiesKHR&                   getPerformanceQueryProperties                           (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDevicePerformanceQueryPropertiesKHR>();                              }
-const VkPhysicalDevicePipelineRobustnessPropertiesEXT&                 getPipelineRobustnessPropertiesEXT                      (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDevicePipelineRobustnessPropertiesEXT>();                    }
 const VkPhysicalDevicePointClippingProperties&                                 getPointClippingProperties                                      (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDevicePointClippingProperties>();                                    }
-const VkPhysicalDevicePortabilitySubsetPropertiesKHR&                  getPortabilitySubsetProperties                          (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDevicePortabilitySubsetPropertiesKHR>();                             }
-const VkPhysicalDeviceProtectedMemoryProperties&                               getProtectedMemoryProperties                            (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceProtectedMemoryProperties>();                                  }
-const VkPhysicalDeviceProvokingVertexPropertiesEXT&                            getProvokingVertexPropertiesEXT                         (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceProvokingVertexPropertiesEXT>();                               }
-const VkPhysicalDevicePushDescriptorPropertiesKHR&                             getPushDescriptorProperties                                     (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDevicePushDescriptorPropertiesKHR>();                                }
-const VkPhysicalDeviceRayTracingPropertiesNV&                                  getRayTracingPropertiesNV                                       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceRayTracingPropertiesNV>();                                             }
-const VkPhysicalDeviceRayTracingPipelinePropertiesKHR&                 getRayTracingPipelineProperties                         (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceRayTracingPipelinePropertiesKHR>();                    }
-const VkPhysicalDeviceRobustness2PropertiesEXT&                                        getRobustness2PropertiesEXT                                     (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceRobustness2PropertiesEXT>();                                   }
 const VkPhysicalDeviceSamplerFilterMinmaxProperties&                   getSamplerFilterMinmaxProperties                        (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceSamplerFilterMinmaxProperties>();                              }
+const VkPhysicalDeviceInlineUniformBlockProperties&                            getInlineUniformBlockProperties                         (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceInlineUniformBlockProperties>();                               }
 const VkPhysicalDeviceSampleLocationsPropertiesEXT&                            getSampleLocationsPropertiesEXT                         (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceSampleLocationsPropertiesEXT>();                               }
+const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT&             getBlendOperationAdvancedPropertiesEXT          (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT>();                }
+const VkPhysicalDeviceAccelerationStructurePropertiesKHR&              getAccelerationStructureProperties                      (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceAccelerationStructurePropertiesKHR>();                 }
+const VkPhysicalDeviceRayTracingPipelinePropertiesKHR&                 getRayTracingPipelineProperties                         (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceRayTracingPipelinePropertiesKHR>();                    }
+const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV&                            getShaderSMBuiltinsProperties                           (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV>();                               }
+const VkPhysicalDeviceDescriptorIndexingProperties&                            getDescriptorIndexingProperties                         (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceDescriptorIndexingProperties>();                               }
+const VkPhysicalDevicePortabilitySubsetPropertiesKHR&                  getPortabilitySubsetProperties                          (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDevicePortabilitySubsetPropertiesKHR>();                             }
+const VkPhysicalDeviceShadingRateImagePropertiesNV&                            getShadingRateImageProperties                           (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceShadingRateImagePropertiesNV>();                               }
+const VkPhysicalDeviceRayTracingPropertiesNV&                                  getRayTracingPropertiesNV                                       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceRayTracingPropertiesNV>();                                             }
+const VkPhysicalDeviceMaintenance3Properties&                                  getMaintenance3Properties                                       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceMaintenance3Properties>();                                             }
+const VkPhysicalDeviceExternalMemoryHostPropertiesEXT&                 getExternalMemoryHostPropertiesEXT                      (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceExternalMemoryHostPropertiesEXT>();                    }
 const VkPhysicalDeviceShaderCorePropertiesAMD&                                 getShaderCorePropertiesAMD                                      (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceShaderCorePropertiesAMD>();                                    }
+const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT&             getVertexAttributeDivisorPropertiesEXT          (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT>();                }
+const VkPhysicalDeviceDriverProperties&                                                        getDriverProperties                                                     (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceDriverProperties>();                                                   }
+const VkPhysicalDeviceFloatControlsProperties&                                 getFloatControlsProperties                                      (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceFloatControlsProperties>();                                    }
+const VkPhysicalDeviceDepthStencilResolveProperties&                   getDepthStencilResolveProperties                        (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceDepthStencilResolveProperties>();                              }
+const VkPhysicalDeviceMeshShaderPropertiesNV&                                  getMeshShaderProperties                                         (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceMeshShaderPropertiesNV>();                                             }
+const VkPhysicalDeviceTimelineSemaphoreProperties&                             getTimelineSemaphoreProperties                          (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceTimelineSemaphoreProperties>();                                }
+const VkPhysicalDevicePCIBusInfoPropertiesEXT&                                 getPCIBusInfoPropertiesEXT                                      (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDevicePCIBusInfoPropertiesEXT>();                                    }
+const VkPhysicalDeviceFragmentDensityMapPropertiesEXT&                 getFragmentDensityMapPropertiesEXT                      (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceFragmentDensityMapPropertiesEXT>();                    }
+const VkPhysicalDeviceSubgroupSizeControlProperties&                   getSubgroupSizeControlProperties                        (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceSubgroupSizeControlProperties>();                              }
+const VkPhysicalDeviceFragmentShadingRatePropertiesKHR&                        getFragmentShadingRateProperties                        (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceFragmentShadingRatePropertiesKHR>();                   }
 const VkPhysicalDeviceShaderCoreProperties2AMD&                                        getShaderCoreProperties2AMD                                     (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceShaderCoreProperties2AMD>();                                   }
+const VkPhysicalDeviceMemoryBudgetPropertiesEXT&                               getMemoryBudgetPropertiesEXT                            (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceMemoryBudgetPropertiesEXT>();                                  }
+const VkPhysicalDeviceToolProperties&                                                  getToolProperties                                                       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceToolProperties>();                                                             }
+const VkPhysicalDeviceCooperativeMatrixPropertiesNV&                   getCooperativeMatrixProperties                          (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceCooperativeMatrixPropertiesNV>();                              }
+const VkPhysicalDeviceProvokingVertexPropertiesEXT&                            getProvokingVertexPropertiesEXT                         (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceProvokingVertexPropertiesEXT>();                               }
+const VkPhysicalDeviceLineRasterizationPropertiesEXT&                  getLineRasterizationPropertiesEXT                       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceLineRasterizationPropertiesEXT>();                             }
+const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV&             getDeviceGeneratedCommandsProperties            (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV>();                }
 const VkPhysicalDeviceShaderIntegerDotProductProperties&               getShaderIntegerDotProductProperties            (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceShaderIntegerDotProductProperties>();                  }
+const VkPhysicalDeviceTexelBufferAlignmentProperties&                  getTexelBufferAlignmentProperties                       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceTexelBufferAlignmentProperties>();                             }
+const VkPhysicalDeviceRobustness2PropertiesEXT&                                        getRobustness2PropertiesEXT                                     (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceRobustness2PropertiesEXT>();                                   }
+const VkPhysicalDeviceCustomBorderColorPropertiesEXT&                  getCustomBorderColorPropertiesEXT                       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceCustomBorderColorPropertiesEXT>();                             }
+const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT&            getGraphicsPipelineLibraryPropertiesEXT         (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT>();               }
+const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR&  getFragmentShaderBarycentricProperties          (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR>();             }
+const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV&            getFragmentShadingRateEnumsProperties           (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV>();               }
+const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT&                        getFragmentDensityMap2PropertiesEXT                     (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT>();                   }
+const VkPhysicalDeviceDrmPropertiesEXT&                                                        getDrmPropertiesEXT                                                     (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceDrmPropertiesEXT>();                                                   }
+const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI&                  getSubpassShadingPropertiesHUAWEI                       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI>();                             }
+const VkPhysicalDeviceMultiDrawPropertiesEXT&                                  getMultiDrawPropertiesEXT                                       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceMultiDrawPropertiesEXT>();                                             }
+const VkPhysicalDeviceMaintenance4Properties&                                  getMaintenance4Properties                                       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceMaintenance4Properties>();                                             }
+const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM&  getFragmentDensityMapOffsetPropertiesQCOM       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM>();             }
+const VkPhysicalDeviceImageProcessingPropertiesQCOM&                   getImageProcessingPropertiesQCOM                        (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceImageProcessingPropertiesQCOM>();                              }
 const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT&             getShaderModuleIdentifierPropertiesEXT          (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT>();                }
-const VkPhysicalDeviceShadingRateImagePropertiesNV&                            getShadingRateImageProperties                           (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceShadingRateImagePropertiesNV>();                               }
 const VkPhysicalDeviceSubgroupProperties&                                              getSubgroupProperties                                           (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceSubgroupProperties>();                                                 }
-const VkPhysicalDeviceSubgroupSizeControlProperties&                   getSubgroupSizeControlProperties                        (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceSubgroupSizeControlProperties>();                              }
-const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI&                  getSubpassShadingPropertiesHUAWEI                       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI>();                             }
-const VkPhysicalDeviceTexelBufferAlignmentProperties&                  getTexelBufferAlignmentProperties                       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceTexelBufferAlignmentProperties>();                             }
-const VkPhysicalDeviceTimelineSemaphoreProperties&                             getTimelineSemaphoreProperties                          (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceTimelineSemaphoreProperties>();                                }
-const VkPhysicalDeviceTransformFeedbackPropertiesEXT&                  getTransformFeedbackPropertiesEXT                       (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceTransformFeedbackPropertiesEXT>();                             }
-const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT&             getVertexAttributeDivisorPropertiesEXT          (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT>();                }
+const VkPhysicalDeviceProtectedMemoryProperties&                               getProtectedMemoryProperties                            (void) const { return m_deviceProperties.getPropertyType<VkPhysicalDeviceProtectedMemoryProperties>();                                  }
index 3967f09..c3801cd 100644 (file)
@@ -35,651 +35,657 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
-       if (extName == "VK_KHR_sampler_mirror_clamp_to_edge")
+       if (extName == "VK_KHR_xlib_surface")
        {
+               functions.push_back("vkCreateXlibSurfaceKHR");
+               functions.push_back("vkGetPhysicalDeviceXlibPresentationSupportKHR");
                return;
        }
-       if (extName == "VK_KHR_dynamic_rendering")
+       if (extName == "VK_KHR_xcb_surface")
        {
+               functions.push_back("vkCreateXcbSurfaceKHR");
+               functions.push_back("vkGetPhysicalDeviceXcbPresentationSupportKHR");
                return;
        }
-       if (extName == "VK_KHR_multiview")
+       if (extName == "VK_KHR_wayland_surface")
        {
+               functions.push_back("vkCreateWaylandSurfaceKHR");
+               functions.push_back("vkGetPhysicalDeviceWaylandPresentationSupportKHR");
                return;
        }
-       if (extName == "VK_KHR_get_physical_device_properties2")
+       if (extName == "VK_KHR_android_surface")
        {
-               functions.push_back("vkGetPhysicalDeviceFeatures2KHR");
-               functions.push_back("vkGetPhysicalDeviceProperties2KHR");
-               functions.push_back("vkGetPhysicalDeviceFormatProperties2KHR");
-               functions.push_back("vkGetPhysicalDeviceImageFormatProperties2KHR");
-               functions.push_back("vkGetPhysicalDeviceQueueFamilyProperties2KHR");
-               functions.push_back("vkGetPhysicalDeviceMemoryProperties2KHR");
-               functions.push_back("vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
+               functions.push_back("vkCreateAndroidSurfaceKHR");
                return;
        }
-       if (extName == "VK_KHR_device_group")
+       if (extName == "VK_KHR_win32_surface")
        {
-               if(apiVersion < VK_API_VERSION_1_1) functions.push_back("vkGetPhysicalDevicePresentRectanglesKHR");
+               functions.push_back("vkCreateWin32SurfaceKHR");
+               functions.push_back("vkGetPhysicalDeviceWin32PresentationSupportKHR");
                return;
        }
-       if (extName == "VK_KHR_shader_draw_parameters")
+       if (extName == "VK_EXT_debug_report")
        {
+               functions.push_back("vkCreateDebugReportCallbackEXT");
+               functions.push_back("vkDestroyDebugReportCallbackEXT");
+               functions.push_back("vkDebugReportMessageEXT");
                return;
        }
-       if (extName == "VK_KHR_maintenance1")
+       if (extName == "VK_NV_glsl_shader")
        {
                return;
        }
-       if (extName == "VK_KHR_device_group_creation")
+       if (extName == "VK_EXT_depth_range_unrestricted")
        {
-               functions.push_back("vkEnumeratePhysicalDeviceGroupsKHR");
                return;
        }
-       if (extName == "VK_KHR_external_memory_capabilities")
+       if (extName == "VK_KHR_sampler_mirror_clamp_to_edge")
        {
-               functions.push_back("vkGetPhysicalDeviceExternalBufferPropertiesKHR");
                return;
        }
-       if (extName == "VK_KHR_external_memory")
+       if (extName == "VK_IMG_filter_cubic")
        {
                return;
        }
-       if (extName == "VK_KHR_external_memory_fd")
+       if (extName == "VK_AMD_rasterization_order")
        {
                return;
        }
-       if (extName == "VK_KHR_external_semaphore_capabilities")
+       if (extName == "VK_AMD_shader_trinary_minmax")
        {
-               functions.push_back("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
                return;
        }
-       if (extName == "VK_KHR_external_semaphore")
+       if (extName == "VK_AMD_shader_explicit_vertex_parameter")
        {
                return;
        }
-       if (extName == "VK_KHR_external_semaphore_fd")
+       if (extName == "VK_EXT_debug_marker")
        {
                return;
        }
-       if (extName == "VK_KHR_push_descriptor")
+       if (extName == "VK_KHR_video_queue")
        {
+               functions.push_back("vkGetPhysicalDeviceVideoCapabilitiesKHR");
+               functions.push_back("vkGetPhysicalDeviceVideoFormatPropertiesKHR");
                return;
        }
-       if (extName == "VK_KHR_shader_float16_int8")
+       if (extName == "VK_KHR_video_decode_queue")
        {
                return;
        }
-       if (extName == "VK_KHR_16bit_storage")
+       if (extName == "VK_AMD_gcn_shader")
        {
                return;
        }
-       if (extName == "VK_KHR_incremental_present")
+       if (extName == "VK_NV_dedicated_allocation")
        {
                return;
        }
-       if (extName == "VK_KHR_descriptor_update_template")
+       if (extName == "VK_EXT_transform_feedback")
        {
                return;
        }
-       if (extName == "VK_KHR_imageless_framebuffer")
+       if (extName == "VK_NVX_binary_import")
        {
                return;
        }
-       if (extName == "VK_KHR_create_renderpass2")
+       if (extName == "VK_NVX_image_view_handle")
        {
                return;
        }
-       if (extName == "VK_KHR_shared_presentable_image")
+       if (extName == "VK_AMD_draw_indirect_count")
        {
                return;
        }
-       if (extName == "VK_KHR_external_fence_capabilities")
+       if (extName == "VK_AMD_negative_viewport_height")
        {
-               functions.push_back("vkGetPhysicalDeviceExternalFencePropertiesKHR");
                return;
        }
-       if (extName == "VK_KHR_external_fence")
+       if (extName == "VK_AMD_gpu_shader_half_float")
        {
                return;
        }
-       if (extName == "VK_KHR_external_fence_fd")
+       if (extName == "VK_AMD_shader_ballot")
        {
                return;
        }
-       if (extName == "VK_KHR_performance_query")
+       if (extName == "VK_EXT_video_encode_h264")
        {
-               functions.push_back("vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
-               functions.push_back("vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
                return;
        }
-       if (extName == "VK_KHR_maintenance2")
+       if (extName == "VK_EXT_video_encode_h265")
        {
                return;
        }
-       if (extName == "VK_KHR_get_surface_capabilities2")
+       if (extName == "VK_EXT_video_decode_h264")
        {
-               functions.push_back("vkGetPhysicalDeviceSurfaceCapabilities2KHR");
-               functions.push_back("vkGetPhysicalDeviceSurfaceFormats2KHR");
                return;
        }
-       if (extName == "VK_KHR_variable_pointers")
+       if (extName == "VK_AMD_texture_gather_bias_lod")
        {
                return;
        }
-       if (extName == "VK_KHR_get_display_properties2")
+       if (extName == "VK_AMD_shader_info")
        {
-               functions.push_back("vkGetPhysicalDeviceDisplayProperties2KHR");
-               functions.push_back("vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
-               functions.push_back("vkGetDisplayModeProperties2KHR");
-               functions.push_back("vkGetDisplayPlaneCapabilities2KHR");
                return;
        }
-       if (extName == "VK_KHR_dedicated_allocation")
+       if (extName == "VK_KHR_dynamic_rendering")
        {
                return;
        }
-       if (extName == "VK_KHR_storage_buffer_storage_class")
+       if (extName == "VK_AMD_shader_image_load_store_lod")
        {
                return;
        }
-       if (extName == "VK_KHR_relaxed_block_layout")
+       if (extName == "VK_GGP_stream_descriptor_surface")
        {
+               functions.push_back("vkCreateStreamDescriptorSurfaceGGP");
                return;
        }
-       if (extName == "VK_KHR_get_memory_requirements2")
+       if (extName == "VK_NV_corner_sampled_image")
        {
                return;
        }
-       if (extName == "VK_KHR_image_format_list")
+       if (extName == "VK_KHR_multiview")
        {
                return;
        }
-       if (extName == "VK_KHR_sampler_ycbcr_conversion")
+       if (extName == "VK_IMG_format_pvrtc")
        {
                return;
        }
-       if (extName == "VK_KHR_bind_memory2")
+       if (extName == "VK_NV_external_memory_capabilities")
        {
+               functions.push_back("vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
                return;
        }
-       if (extName == "VK_KHR_maintenance3")
+       if (extName == "VK_NV_external_memory")
        {
                return;
        }
-       if (extName == "VK_KHR_draw_indirect_count")
+       if (extName == "VK_NV_external_memory_win32")
        {
                return;
        }
-       if (extName == "VK_KHR_shader_subgroup_extended_types")
+       if (extName == "VK_NV_win32_keyed_mutex")
        {
                return;
        }
-       if (extName == "VK_KHR_8bit_storage")
+       if (extName == "VK_KHR_get_physical_device_properties2")
        {
                return;
        }
-       if (extName == "VK_KHR_shader_atomic_int64")
+       if (extName == "VK_KHR_device_group")
        {
+               if(apiVersion >= VK_API_VERSION_1_1) functions.push_back("vkGetPhysicalDevicePresentRectanglesKHR");
+               if(apiVersion < VK_API_VERSION_1_1) functions.push_back("vkGetPhysicalDevicePresentRectanglesKHR");
                return;
        }
-       if (extName == "VK_KHR_shader_clock")
+       if (extName == "VK_EXT_validation_flags")
        {
                return;
        }
-       if (extName == "VK_KHR_global_priority")
+       if (extName == "VK_NN_vi_surface")
        {
+               functions.push_back("vkCreateViSurfaceNN");
                return;
        }
-       if (extName == "VK_KHR_driver_properties")
+       if (extName == "VK_KHR_shader_draw_parameters")
        {
                return;
        }
-       if (extName == "VK_KHR_shader_float_controls")
+       if (extName == "VK_EXT_shader_subgroup_ballot")
        {
                return;
        }
-       if (extName == "VK_KHR_depth_stencil_resolve")
+       if (extName == "VK_EXT_shader_subgroup_vote")
        {
                return;
        }
-       if (extName == "VK_KHR_swapchain_mutable_format")
+       if (extName == "VK_EXT_texture_compression_astc_hdr")
        {
                return;
        }
-       if (extName == "VK_KHR_timeline_semaphore")
+       if (extName == "VK_EXT_astc_decode_mode")
        {
                return;
        }
-       if (extName == "VK_KHR_vulkan_memory_model")
+       if (extName == "VK_EXT_pipeline_robustness")
        {
                return;
        }
-       if (extName == "VK_KHR_shader_terminate_invocation")
+       if (extName == "VK_KHR_maintenance1")
        {
                return;
        }
-       if (extName == "VK_KHR_fragment_shading_rate")
+       if (extName == "VK_KHR_device_group_creation")
        {
-               functions.push_back("vkGetPhysicalDeviceFragmentShadingRatesKHR");
                return;
        }
-       if (extName == "VK_KHR_spirv_1_4")
+       if (extName == "VK_KHR_external_memory_capabilities")
        {
                return;
        }
-       if (extName == "VK_KHR_surface_protected_capabilities")
+       if (extName == "VK_KHR_external_memory")
        {
                return;
        }
-       if (extName == "VK_KHR_separate_depth_stencil_layouts")
+       if (extName == "VK_KHR_external_memory_win32")
        {
                return;
        }
-       if (extName == "VK_KHR_present_wait")
+       if (extName == "VK_KHR_external_memory_fd")
        {
                return;
        }
-       if (extName == "VK_KHR_uniform_buffer_standard_layout")
+       if (extName == "VK_KHR_win32_keyed_mutex")
        {
                return;
        }
-       if (extName == "VK_KHR_buffer_device_address")
+       if (extName == "VK_KHR_external_semaphore_capabilities")
        {
                return;
        }
-       if (extName == "VK_KHR_deferred_host_operations")
+       if (extName == "VK_KHR_external_semaphore")
        {
                return;
        }
-       if (extName == "VK_KHR_pipeline_executable_properties")
+       if (extName == "VK_KHR_external_semaphore_win32")
        {
                return;
        }
-       if (extName == "VK_KHR_shader_integer_dot_product")
+       if (extName == "VK_KHR_external_semaphore_fd")
        {
                return;
        }
-       if (extName == "VK_KHR_pipeline_library")
+       if (extName == "VK_KHR_push_descriptor")
        {
                return;
        }
-       if (extName == "VK_KHR_shader_non_semantic_info")
+       if (extName == "VK_EXT_conditional_rendering")
        {
                return;
        }
-       if (extName == "VK_KHR_present_id")
+       if (extName == "VK_KHR_shader_float16_int8")
        {
                return;
        }
-       if (extName == "VK_KHR_synchronization2")
+       if (extName == "VK_KHR_16bit_storage")
        {
                return;
        }
-       if (extName == "VK_KHR_fragment_shader_barycentric")
+       if (extName == "VK_KHR_incremental_present")
        {
                return;
        }
-       if (extName == "VK_KHR_shader_subgroup_uniform_control_flow")
+       if (extName == "VK_KHR_descriptor_update_template")
        {
                return;
        }
-       if (extName == "VK_KHR_zero_initialize_workgroup_memory")
+       if (extName == "VK_NV_clip_space_w_scaling")
        {
                return;
        }
-       if (extName == "VK_KHR_workgroup_memory_explicit_layout")
+       if (extName == "VK_EXT_direct_mode_display")
        {
+               functions.push_back("vkReleaseDisplayEXT");
                return;
        }
-       if (extName == "VK_KHR_copy_commands2")
+       if (extName == "VK_EXT_acquire_xlib_display")
        {
+               functions.push_back("vkAcquireXlibDisplayEXT");
+               functions.push_back("vkGetRandROutputDisplayEXT");
                return;
        }
-       if (extName == "VK_KHR_format_feature_flags2")
+       if (extName == "VK_EXT_display_surface_counter")
        {
+               functions.push_back("vkGetPhysicalDeviceSurfaceCapabilities2EXT");
                return;
        }
-       if (extName == "VK_KHR_ray_tracing_maintenance1")
+       if (extName == "VK_EXT_display_control")
        {
                return;
        }
-       if (extName == "VK_KHR_portability_enumeration")
+       if (extName == "VK_GOOGLE_display_timing")
        {
                return;
        }
-       if (extName == "VK_KHR_maintenance4")
+       if (extName == "VK_NV_sample_mask_override_coverage")
        {
                return;
        }
-       if (extName == "VK_EXT_debug_report")
+       if (extName == "VK_NV_geometry_shader_passthrough")
        {
-               functions.push_back("vkCreateDebugReportCallbackEXT");
-               functions.push_back("vkDestroyDebugReportCallbackEXT");
-               functions.push_back("vkDebugReportMessageEXT");
                return;
        }
-       if (extName == "VK_NV_glsl_shader")
+       if (extName == "VK_NV_viewport_array2")
        {
                return;
        }
-       if (extName == "VK_EXT_depth_range_unrestricted")
+       if (extName == "VK_NVX_multiview_per_view_attributes")
        {
                return;
        }
-       if (extName == "VK_IMG_filter_cubic")
+       if (extName == "VK_NV_viewport_swizzle")
        {
                return;
        }
-       if (extName == "VK_AMD_rasterization_order")
+       if (extName == "VK_EXT_discard_rectangles")
        {
                return;
        }
-       if (extName == "VK_AMD_shader_trinary_minmax")
+       if (extName == "VK_EXT_conservative_rasterization")
        {
                return;
        }
-       if (extName == "VK_AMD_shader_explicit_vertex_parameter")
+       if (extName == "VK_EXT_depth_clip_enable")
        {
                return;
        }
-       if (extName == "VK_EXT_debug_marker")
+       if (extName == "VK_EXT_swapchain_colorspace")
        {
                return;
        }
-       if (extName == "VK_AMD_gcn_shader")
+       if (extName == "VK_EXT_hdr_metadata")
        {
                return;
        }
-       if (extName == "VK_NV_dedicated_allocation")
+       if (extName == "VK_KHR_imageless_framebuffer")
        {
                return;
        }
-       if (extName == "VK_EXT_transform_feedback")
+       if (extName == "VK_KHR_create_renderpass2")
        {
                return;
        }
-       if (extName == "VK_NVX_binary_import")
+       if (extName == "VK_KHR_shared_presentable_image")
        {
                return;
        }
-       if (extName == "VK_NVX_image_view_handle")
+       if (extName == "VK_KHR_external_fence_capabilities")
        {
                return;
        }
-       if (extName == "VK_AMD_draw_indirect_count")
+       if (extName == "VK_KHR_external_fence")
        {
                return;
        }
-       if (extName == "VK_AMD_negative_viewport_height")
+       if (extName == "VK_KHR_external_fence_win32")
        {
                return;
        }
-       if (extName == "VK_AMD_gpu_shader_half_float")
+       if (extName == "VK_KHR_external_fence_fd")
        {
                return;
        }
-       if (extName == "VK_AMD_shader_ballot")
+       if (extName == "VK_KHR_performance_query")
        {
+               functions.push_back("vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
+               functions.push_back("vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
                return;
        }
-       if (extName == "VK_AMD_texture_gather_bias_lod")
+       if (extName == "VK_KHR_maintenance2")
        {
                return;
        }
-       if (extName == "VK_AMD_shader_info")
+       if (extName == "VK_KHR_get_surface_capabilities2")
        {
+               functions.push_back("vkGetPhysicalDeviceSurfaceCapabilities2KHR");
+               functions.push_back("vkGetPhysicalDeviceSurfaceFormats2KHR");
                return;
        }
-       if (extName == "VK_AMD_shader_image_load_store_lod")
+       if (extName == "VK_KHR_variable_pointers")
        {
                return;
        }
-       if (extName == "VK_NV_corner_sampled_image")
+       if (extName == "VK_KHR_get_display_properties2")
        {
+               functions.push_back("vkGetPhysicalDeviceDisplayProperties2KHR");
+               functions.push_back("vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
+               functions.push_back("vkGetDisplayModeProperties2KHR");
+               functions.push_back("vkGetDisplayPlaneCapabilities2KHR");
                return;
        }
-       if (extName == "VK_IMG_format_pvrtc")
+       if (extName == "VK_MVK_ios_surface")
        {
+               functions.push_back("vkCreateIOSSurfaceMVK");
                return;
        }
-       if (extName == "VK_NV_external_memory_capabilities")
+       if (extName == "VK_MVK_macos_surface")
        {
-               functions.push_back("vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
+               functions.push_back("vkCreateMacOSSurfaceMVK");
                return;
        }
-       if (extName == "VK_NV_external_memory")
+       if (extName == "VK_EXT_external_memory_dma_buf")
        {
                return;
        }
-       if (extName == "VK_EXT_validation_flags")
+       if (extName == "VK_EXT_queue_family_foreign")
        {
                return;
        }
-       if (extName == "VK_EXT_shader_subgroup_ballot")
+       if (extName == "VK_KHR_dedicated_allocation")
        {
                return;
        }
-       if (extName == "VK_EXT_shader_subgroup_vote")
+       if (extName == "VK_EXT_debug_utils")
        {
+               functions.push_back("vkCreateDebugUtilsMessengerEXT");
+               functions.push_back("vkDestroyDebugUtilsMessengerEXT");
+               functions.push_back("vkSubmitDebugUtilsMessageEXT");
                return;
        }
-       if (extName == "VK_EXT_texture_compression_astc_hdr")
+       if (extName == "VK_ANDROID_external_memory_android_hardware_buffer")
        {
                return;
        }
-       if (extName == "VK_EXT_astc_decode_mode")
+       if (extName == "VK_EXT_sampler_filter_minmax")
        {
                return;
        }
-       if (extName == "VK_EXT_pipeline_robustness")
+       if (extName == "VK_KHR_storage_buffer_storage_class")
        {
                return;
        }
-       if (extName == "VK_EXT_conditional_rendering")
+       if (extName == "VK_AMD_gpu_shader_int16")
        {
                return;
        }
-       if (extName == "VK_NV_clip_space_w_scaling")
+       if (extName == "VK_AMD_mixed_attachment_samples")
        {
                return;
        }
-       if (extName == "VK_EXT_direct_mode_display")
+       if (extName == "VK_AMD_shader_fragment_mask")
        {
-               functions.push_back("vkReleaseDisplayEXT");
                return;
        }
-       if (extName == "VK_EXT_display_surface_counter")
+       if (extName == "VK_EXT_inline_uniform_block")
        {
-               functions.push_back("vkGetPhysicalDeviceSurfaceCapabilities2EXT");
                return;
        }
-       if (extName == "VK_EXT_display_control")
+       if (extName == "VK_EXT_shader_stencil_export")
        {
                return;
        }
-       if (extName == "VK_GOOGLE_display_timing")
+       if (extName == "VK_EXT_sample_locations")
        {
+               functions.push_back("vkGetPhysicalDeviceMultisamplePropertiesEXT");
                return;
        }
-       if (extName == "VK_NV_sample_mask_override_coverage")
+       if (extName == "VK_KHR_relaxed_block_layout")
        {
                return;
        }
-       if (extName == "VK_NV_geometry_shader_passthrough")
+       if (extName == "VK_KHR_get_memory_requirements2")
        {
                return;
        }
-       if (extName == "VK_NV_viewport_array2")
+       if (extName == "VK_KHR_image_format_list")
        {
                return;
        }
-       if (extName == "VK_NVX_multiview_per_view_attributes")
+       if (extName == "VK_EXT_blend_operation_advanced")
        {
                return;
        }
-       if (extName == "VK_NV_viewport_swizzle")
+       if (extName == "VK_NV_fragment_coverage_to_color")
        {
                return;
        }
-       if (extName == "VK_EXT_discard_rectangles")
+       if (extName == "VK_KHR_acceleration_structure")
        {
                return;
        }
-       if (extName == "VK_EXT_conservative_rasterization")
+       if (extName == "VK_KHR_ray_tracing_pipeline")
        {
                return;
        }
-       if (extName == "VK_EXT_depth_clip_enable")
+       if (extName == "VK_KHR_ray_query")
        {
                return;
        }
-       if (extName == "VK_EXT_swapchain_colorspace")
+       if (extName == "VK_NV_framebuffer_mixed_samples")
        {
                return;
        }
-       if (extName == "VK_EXT_hdr_metadata")
+       if (extName == "VK_NV_fill_rectangle")
        {
                return;
        }
-       if (extName == "VK_EXT_external_memory_dma_buf")
+       if (extName == "VK_NV_shader_sm_builtins")
        {
                return;
        }
-       if (extName == "VK_EXT_queue_family_foreign")
+       if (extName == "VK_EXT_post_depth_coverage")
        {
                return;
        }
-       if (extName == "VK_EXT_debug_utils")
+       if (extName == "VK_KHR_sampler_ycbcr_conversion")
        {
-               functions.push_back("vkCreateDebugUtilsMessengerEXT");
-               functions.push_back("vkDestroyDebugUtilsMessengerEXT");
-               functions.push_back("vkSubmitDebugUtilsMessageEXT");
                return;
        }
-       if (extName == "VK_EXT_sampler_filter_minmax")
+       if (extName == "VK_KHR_bind_memory2")
        {
                return;
        }
-       if (extName == "VK_AMD_gpu_shader_int16")
+       if (extName == "VK_EXT_image_drm_format_modifier")
        {
                return;
        }
-       if (extName == "VK_AMD_mixed_attachment_samples")
+       if (extName == "VK_EXT_validation_cache")
        {
                return;
        }
-       if (extName == "VK_AMD_shader_fragment_mask")
+       if (extName == "VK_EXT_descriptor_indexing")
        {
                return;
        }
-       if (extName == "VK_EXT_inline_uniform_block")
+       if (extName == "VK_EXT_shader_viewport_index_layer")
        {
                return;
        }
-       if (extName == "VK_EXT_shader_stencil_export")
+       if (extName == "VK_KHR_portability_subset")
        {
                return;
        }
-       if (extName == "VK_EXT_sample_locations")
+       if (extName == "VK_NV_shading_rate_image")
        {
-               functions.push_back("vkGetPhysicalDeviceMultisamplePropertiesEXT");
                return;
        }
-       if (extName == "VK_EXT_blend_operation_advanced")
+       if (extName == "VK_NV_ray_tracing")
        {
                return;
        }
-       if (extName == "VK_NV_fragment_coverage_to_color")
+       if (extName == "VK_NV_representative_fragment_test")
        {
                return;
        }
-       if (extName == "VK_NV_framebuffer_mixed_samples")
+       if (extName == "VK_KHR_maintenance3")
        {
                return;
        }
-       if (extName == "VK_NV_fill_rectangle")
+       if (extName == "VK_KHR_draw_indirect_count")
        {
                return;
        }
-       if (extName == "VK_NV_shader_sm_builtins")
+       if (extName == "VK_EXT_filter_cubic")
        {
                return;
        }
-       if (extName == "VK_EXT_post_depth_coverage")
+       if (extName == "VK_QCOM_render_pass_shader_resolve")
        {
                return;
        }
-       if (extName == "VK_EXT_image_drm_format_modifier")
+       if (extName == "VK_EXT_global_priority")
        {
                return;
        }
-       if (extName == "VK_EXT_validation_cache")
+       if (extName == "VK_KHR_shader_subgroup_extended_types")
        {
                return;
        }
-       if (extName == "VK_EXT_descriptor_indexing")
+       if (extName == "VK_KHR_8bit_storage")
        {
                return;
        }
-       if (extName == "VK_EXT_shader_viewport_index_layer")
+       if (extName == "VK_EXT_external_memory_host")
        {
                return;
        }
-       if (extName == "VK_NV_shading_rate_image")
+       if (extName == "VK_AMD_buffer_marker")
        {
                return;
        }
-       if (extName == "VK_NV_ray_tracing")
+       if (extName == "VK_KHR_shader_atomic_int64")
        {
                return;
        }
-       if (extName == "VK_NV_representative_fragment_test")
+       if (extName == "VK_KHR_shader_clock")
        {
                return;
        }
-       if (extName == "VK_EXT_filter_cubic")
+       if (extName == "VK_AMD_pipeline_compiler_control")
        {
                return;
        }
-       if (extName == "VK_QCOM_render_pass_shader_resolve")
+       if (extName == "VK_EXT_calibrated_timestamps")
        {
+               functions.push_back("vkGetPhysicalDeviceCalibrateableTimeDomainsEXT");
                return;
        }
-       if (extName == "VK_EXT_global_priority")
+       if (extName == "VK_AMD_shader_core_properties")
        {
                return;
        }
-       if (extName == "VK_EXT_external_memory_host")
+       if (extName == "VK_EXT_video_decode_h265")
        {
                return;
        }
-       if (extName == "VK_AMD_buffer_marker")
+       if (extName == "VK_KHR_global_priority")
        {
                return;
        }
-       if (extName == "VK_AMD_pipeline_compiler_control")
+       if (extName == "VK_AMD_memory_overallocation_behavior")
        {
                return;
        }
-       if (extName == "VK_EXT_calibrated_timestamps")
+       if (extName == "VK_EXT_vertex_attribute_divisor")
        {
-               functions.push_back("vkGetPhysicalDeviceCalibrateableTimeDomainsEXT");
                return;
        }
-       if (extName == "VK_AMD_shader_core_properties")
+       if (extName == "VK_GGP_frame_token")
        {
                return;
        }
-       if (extName == "VK_AMD_memory_overallocation_behavior")
+       if (extName == "VK_EXT_pipeline_creation_feedback")
        {
                return;
        }
-       if (extName == "VK_EXT_vertex_attribute_divisor")
+       if (extName == "VK_KHR_driver_properties")
        {
                return;
        }
-       if (extName == "VK_EXT_pipeline_creation_feedback")
+       if (extName == "VK_KHR_shader_float_controls")
        {
                return;
        }
@@ -687,6 +693,14 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_KHR_depth_stencil_resolve")
+       {
+               return;
+       }
+       if (extName == "VK_KHR_swapchain_mutable_format")
+       {
+               return;
+       }
        if (extName == "VK_NV_compute_shader_derivatives")
        {
                return;
@@ -711,6 +725,10 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_KHR_timeline_semaphore")
+       {
+               return;
+       }
        if (extName == "VK_INTEL_shader_integer_functions2")
        {
                return;
@@ -719,6 +737,10 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_KHR_vulkan_memory_model")
+       {
+               return;
+       }
        if (extName == "VK_EXT_pci_bus_info")
        {
                return;
@@ -727,6 +749,20 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_FUCHSIA_imagepipe_surface")
+       {
+               functions.push_back("vkCreateImagePipeSurfaceFUCHSIA");
+               return;
+       }
+       if (extName == "VK_KHR_shader_terminate_invocation")
+       {
+               return;
+       }
+       if (extName == "VK_EXT_metal_surface")
+       {
+               functions.push_back("vkCreateMetalSurfaceEXT");
+               return;
+       }
        if (extName == "VK_EXT_fragment_density_map")
        {
                return;
@@ -747,6 +783,11 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_KHR_fragment_shading_rate")
+       {
+               functions.push_back("vkGetPhysicalDeviceFragmentShadingRatesKHR");
+               return;
+       }
        if (extName == "VK_AMD_shader_core_properties2")
        {
                return;
@@ -759,6 +800,10 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_KHR_spirv_1_4")
+       {
+               return;
+       }
        if (extName == "VK_EXT_memory_budget")
        {
                return;
@@ -767,17 +812,24 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_KHR_surface_protected_capabilities")
+       {
+               return;
+       }
        if (extName == "VK_NV_dedicated_allocation_image_aliasing")
        {
                return;
        }
+       if (extName == "VK_KHR_separate_depth_stencil_layouts")
+       {
+               return;
+       }
        if (extName == "VK_EXT_buffer_device_address")
        {
                return;
        }
        if (extName == "VK_EXT_tooling_info")
        {
-               functions.push_back("vkGetPhysicalDeviceToolPropertiesEXT");
                return;
        }
        if (extName == "VK_EXT_separate_stencil_usage")
@@ -788,6 +840,10 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_KHR_present_wait")
+       {
+               return;
+       }
        if (extName == "VK_NV_cooperative_matrix")
        {
                functions.push_back("vkGetPhysicalDeviceCooperativeMatrixPropertiesNV");
@@ -806,15 +862,28 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_KHR_uniform_buffer_standard_layout")
+       {
+               return;
+       }
        if (extName == "VK_EXT_provoking_vertex")
        {
                return;
        }
+       if (extName == "VK_EXT_full_screen_exclusive")
+       {
+               functions.push_back("vkGetPhysicalDeviceSurfacePresentModes2EXT");
+               return;
+       }
        if (extName == "VK_EXT_headless_surface")
        {
                functions.push_back("vkCreateHeadlessSurfaceEXT");
                return;
        }
+       if (extName == "VK_KHR_buffer_device_address")
+       {
+               return;
+       }
        if (extName == "VK_EXT_line_rasterization")
        {
                return;
@@ -835,6 +904,14 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_KHR_deferred_host_operations")
+       {
+               return;
+       }
+       if (extName == "VK_KHR_pipeline_executable_properties")
+       {
+               return;
+       }
        if (extName == "VK_EXT_shader_atomic_float2")
        {
                return;
@@ -851,6 +928,10 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_KHR_shader_integer_dot_product")
+       {
+               return;
+       }
        if (extName == "VK_EXT_texel_buffer_alignment")
        {
                return;
@@ -881,6 +962,18 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_KHR_pipeline_library")
+       {
+               return;
+       }
+       if (extName == "VK_KHR_shader_non_semantic_info")
+       {
+               return;
+       }
+       if (extName == "VK_KHR_present_id")
+       {
+               return;
+       }
        if (extName == "VK_EXT_private_data")
        {
                return;
@@ -889,6 +982,10 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_KHR_video_encode_queue")
+       {
+               return;
+       }
        if (extName == "VK_NV_device_diagnostics_config")
        {
                return;
@@ -897,6 +994,14 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_EXT_metal_objects")
+       {
+               return;
+       }
+       if (extName == "VK_KHR_synchronization2")
+       {
+               return;
+       }
        if (extName == "VK_EXT_graphics_pipeline_library")
        {
                return;
@@ -905,6 +1010,18 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_KHR_fragment_shader_barycentric")
+       {
+               return;
+       }
+       if (extName == "VK_KHR_shader_subgroup_uniform_control_flow")
+       {
+               return;
+       }
+       if (extName == "VK_KHR_zero_initialize_workgroup_memory")
+       {
+               return;
+       }
        if (extName == "VK_NV_fragment_shading_rate_enums")
        {
                return;
@@ -929,6 +1046,14 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_KHR_workgroup_memory_explicit_layout")
+       {
+               return;
+       }
+       if (extName == "VK_KHR_copy_commands2")
+       {
+               return;
+       }
        if (extName == "VK_EXT_image_compression_control")
        {
                return;
@@ -971,6 +1096,22 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_KHR_format_feature_flags2")
+       {
+               return;
+       }
+       if (extName == "VK_FUCHSIA_external_memory")
+       {
+               return;
+       }
+       if (extName == "VK_FUCHSIA_external_semaphore")
+       {
+               return;
+       }
+       if (extName == "VK_FUCHSIA_buffer_collection")
+       {
+               return;
+       }
        if (extName == "VK_HUAWEI_subpass_shading")
        {
                return;
@@ -995,6 +1136,12 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_QNX_screen_surface")
+       {
+               functions.push_back("vkCreateScreenSurfaceQNX");
+               functions.push_back("vkGetPhysicalDeviceScreenPresentationSupportQNX");
+               return;
+       }
        if (extName == "VK_EXT_color_write_enable")
        {
                return;
@@ -1003,6 +1150,10 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_KHR_ray_tracing_maintenance1")
+       {
+               return;
+       }
        if (extName == "VK_EXT_global_priority_query")
        {
                return;
@@ -1019,7 +1170,11 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
-       if (extName == "VK_EXT_load_store_op_none")
+       if (extName == "VK_KHR_portability_enumeration")
+       {
+               return;
+       }
+       if (extName == "VK_EXT_load_store_op_none")
        {
                return;
        }
@@ -1031,6 +1186,10 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
+       if (extName == "VK_KHR_maintenance4")
+       {
+               return;
+       }
        if (extName == "VK_VALVE_descriptor_set_host_mapping")
        {
                return;
@@ -1071,1203 +1230,1163 @@ void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName,
        {
                return;
        }
-       if (extName == "VK_KHR_acceleration_structure")
+       if (extName == "vulkan_video_codecs_common")
        {
                return;
        }
-       if (extName == "VK_KHR_ray_tracing_pipeline")
+       if (extName == "vulkan_video_codec_h264std")
        {
                return;
        }
-       if (extName == "VK_KHR_ray_query")
+       if (extName == "vulkan_video_codec_h264std_decode")
        {
                return;
        }
-       if (extName == "VK_KHR_android_surface")
+       if (extName == "vulkan_video_codec_h264std_encode")
        {
-               functions.push_back("vkCreateAndroidSurfaceKHR");
                return;
        }
-       if (extName == "VK_ANDROID_external_memory_android_hardware_buffer")
+       if (extName == "vulkan_video_codec_h265std")
        {
                return;
        }
-       if (extName == "VK_KHR_video_queue")
+       if (extName == "vulkan_video_codec_h265std_decode")
        {
-               functions.push_back("vkGetPhysicalDeviceVideoCapabilitiesKHR");
-               functions.push_back("vkGetPhysicalDeviceVideoFormatPropertiesKHR");
                return;
        }
-       if (extName == "VK_KHR_video_decode_queue")
+       if (extName == "vulkan_video_codec_h265std_encode")
        {
                return;
        }
-       if (extName == "VK_KHR_portability_subset")
+       DE_FATAL("Extension name not found");
+}
+
+void getDeviceExtensionFunctions (uint32_t apiVersion, ::std::string extName, ::std::vector<const char*>& functions)
+{
+       if (extName == "VK_KHR_surface")
        {
                return;
        }
-       if (extName == "VK_KHR_video_encode_queue")
+       if (extName == "VK_KHR_swapchain")
        {
+               functions.push_back("vkCreateSwapchainKHR");
+               functions.push_back("vkDestroySwapchainKHR");
+               functions.push_back("vkGetSwapchainImagesKHR");
+               functions.push_back("vkAcquireNextImageKHR");
+               functions.push_back("vkQueuePresentKHR");
+               if(apiVersion >= VK_API_VERSION_1_1) functions.push_back("vkGetDeviceGroupPresentCapabilitiesKHR");
+               if(apiVersion >= VK_API_VERSION_1_1) functions.push_back("vkGetDeviceGroupSurfacePresentModesKHR");
+               if(apiVersion >= VK_API_VERSION_1_1) functions.push_back("vkAcquireNextImage2KHR");
                return;
        }
-       if (extName == "VK_EXT_video_encode_h264")
+       if (extName == "VK_KHR_display")
        {
                return;
        }
-       if (extName == "VK_EXT_video_encode_h265")
+       if (extName == "VK_KHR_display_swapchain")
        {
+               functions.push_back("vkCreateSharedSwapchainsKHR");
                return;
        }
-       if (extName == "VK_EXT_video_decode_h264")
+       if (extName == "VK_KHR_xlib_surface")
        {
                return;
        }
-       if (extName == "VK_EXT_video_decode_h265")
+       if (extName == "VK_KHR_xcb_surface")
        {
                return;
        }
-       if (extName == "VK_FUCHSIA_imagepipe_surface")
+       if (extName == "VK_KHR_wayland_surface")
        {
-               functions.push_back("vkCreateImagePipeSurfaceFUCHSIA");
                return;
        }
-       if (extName == "VK_FUCHSIA_external_memory")
+       if (extName == "VK_KHR_android_surface")
        {
                return;
        }
-       if (extName == "VK_FUCHSIA_external_semaphore")
+       if (extName == "VK_KHR_win32_surface")
        {
                return;
        }
-       if (extName == "VK_FUCHSIA_buffer_collection")
+       if (extName == "VK_EXT_debug_report")
        {
                return;
        }
-       if (extName == "VK_GGP_stream_descriptor_surface")
+       if (extName == "VK_NV_glsl_shader")
        {
-               functions.push_back("vkCreateStreamDescriptorSurfaceGGP");
                return;
        }
-       if (extName == "VK_GGP_frame_token")
+       if (extName == "VK_EXT_depth_range_unrestricted")
        {
                return;
        }
-       if (extName == "VK_MVK_ios_surface")
+       if (extName == "VK_KHR_sampler_mirror_clamp_to_edge")
        {
-               functions.push_back("vkCreateIOSSurfaceMVK");
                return;
        }
-       if (extName == "VK_MVK_macos_surface")
+       if (extName == "VK_IMG_filter_cubic")
        {
-               functions.push_back("vkCreateMacOSSurfaceMVK");
                return;
        }
-       if (extName == "VK_EXT_metal_surface")
+       if (extName == "VK_AMD_rasterization_order")
        {
-               functions.push_back("vkCreateMetalSurfaceEXT");
                return;
        }
-       if (extName == "VK_EXT_metal_objects")
+       if (extName == "VK_AMD_shader_trinary_minmax")
        {
                return;
        }
-       if (extName == "VK_NN_vi_surface")
+       if (extName == "VK_AMD_shader_explicit_vertex_parameter")
        {
-               functions.push_back("vkCreateViSurfaceNN");
                return;
        }
-       if (extName == "VK_KHR_wayland_surface")
+       if (extName == "VK_EXT_debug_marker")
        {
-               functions.push_back("vkCreateWaylandSurfaceKHR");
-               functions.push_back("vkGetPhysicalDeviceWaylandPresentationSupportKHR");
+               functions.push_back("vkDebugMarkerSetObjectTagEXT");
+               functions.push_back("vkDebugMarkerSetObjectNameEXT");
+               functions.push_back("vkCmdDebugMarkerBeginEXT");
+               functions.push_back("vkCmdDebugMarkerEndEXT");
+               functions.push_back("vkCmdDebugMarkerInsertEXT");
                return;
        }
-       if (extName == "VK_KHR_win32_surface")
+       if (extName == "VK_KHR_video_queue")
        {
-               functions.push_back("vkCreateWin32SurfaceKHR");
-               functions.push_back("vkGetPhysicalDeviceWin32PresentationSupportKHR");
+               functions.push_back("vkCreateVideoSessionKHR");
+               functions.push_back("vkDestroyVideoSessionKHR");
+               functions.push_back("vkGetVideoSessionMemoryRequirementsKHR");
+               functions.push_back("vkBindVideoSessionMemoryKHR");
+               functions.push_back("vkCreateVideoSessionParametersKHR");
+               functions.push_back("vkUpdateVideoSessionParametersKHR");
+               functions.push_back("vkDestroyVideoSessionParametersKHR");
+               functions.push_back("vkCmdBeginVideoCodingKHR");
+               functions.push_back("vkCmdEndVideoCodingKHR");
+               functions.push_back("vkCmdControlVideoCodingKHR");
                return;
        }
-       if (extName == "VK_KHR_external_memory_win32")
+       if (extName == "VK_KHR_video_decode_queue")
        {
+               functions.push_back("vkCmdDecodeVideoKHR");
                return;
        }
-       if (extName == "VK_KHR_win32_keyed_mutex")
+       if (extName == "VK_AMD_gcn_shader")
        {
                return;
        }
-       if (extName == "VK_KHR_external_semaphore_win32")
+       if (extName == "VK_NV_dedicated_allocation")
        {
                return;
        }
-       if (extName == "VK_KHR_external_fence_win32")
+       if (extName == "VK_EXT_transform_feedback")
        {
+               functions.push_back("vkCmdBindTransformFeedbackBuffersEXT");
+               functions.push_back("vkCmdBeginTransformFeedbackEXT");
+               functions.push_back("vkCmdEndTransformFeedbackEXT");
+               functions.push_back("vkCmdBeginQueryIndexedEXT");
+               functions.push_back("vkCmdEndQueryIndexedEXT");
+               functions.push_back("vkCmdDrawIndirectByteCountEXT");
                return;
        }
-       if (extName == "VK_NV_external_memory_win32")
+       if (extName == "VK_NVX_binary_import")
        {
+               functions.push_back("vkCreateCuModuleNVX");
+               functions.push_back("vkCreateCuFunctionNVX");
+               functions.push_back("vkDestroyCuModuleNVX");
+               functions.push_back("vkDestroyCuFunctionNVX");
+               functions.push_back("vkCmdCuLaunchKernelNVX");
                return;
        }
-       if (extName == "VK_NV_win32_keyed_mutex")
+       if (extName == "VK_NVX_image_view_handle")
        {
+               functions.push_back("vkGetImageViewHandleNVX");
+               functions.push_back("vkGetImageViewAddressNVX");
                return;
        }
-       if (extName == "VK_EXT_full_screen_exclusive")
+       if (extName == "VK_AMD_draw_indirect_count")
        {
-               functions.push_back("vkGetPhysicalDeviceSurfacePresentModes2EXT");
                return;
        }
-       if (extName == "VK_KHR_xcb_surface")
+       if (extName == "VK_AMD_negative_viewport_height")
        {
-               functions.push_back("vkCreateXcbSurfaceKHR");
-               functions.push_back("vkGetPhysicalDeviceXcbPresentationSupportKHR");
                return;
        }
-       if (extName == "VK_KHR_xlib_surface")
+       if (extName == "VK_AMD_gpu_shader_half_float")
        {
-               functions.push_back("vkCreateXlibSurfaceKHR");
-               functions.push_back("vkGetPhysicalDeviceXlibPresentationSupportKHR");
                return;
        }
-       if (extName == "VK_EXT_acquire_xlib_display")
+       if (extName == "VK_AMD_shader_ballot")
        {
-               functions.push_back("vkAcquireXlibDisplayEXT");
-               functions.push_back("vkGetRandROutputDisplayEXT");
                return;
        }
-       DE_FATAL("Extension name not found");
-}
-
-void getDeviceExtensionFunctions (uint32_t apiVersion, ::std::string extName, ::std::vector<const char*>& functions)
-{
-       if (extName == "VK_KHR_surface")
+       if (extName == "VK_EXT_video_encode_h264")
        {
                return;
        }
-       if (extName == "VK_KHR_swapchain")
+       if (extName == "VK_EXT_video_encode_h265")
        {
-               functions.push_back("vkCreateSwapchainKHR");
-               functions.push_back("vkDestroySwapchainKHR");
-               functions.push_back("vkGetSwapchainImagesKHR");
-               functions.push_back("vkAcquireNextImageKHR");
-               functions.push_back("vkQueuePresentKHR");
-               if(apiVersion >= VK_API_VERSION_1_1) functions.push_back("vkGetDeviceGroupPresentCapabilitiesKHR");
-               if(apiVersion >= VK_API_VERSION_1_1) functions.push_back("vkGetDeviceGroupSurfacePresentModesKHR");
-               if(apiVersion >= VK_API_VERSION_1_1) functions.push_back("vkAcquireNextImage2KHR");
                return;
        }
-       if (extName == "VK_KHR_display")
+       if (extName == "VK_EXT_video_decode_h264")
        {
                return;
        }
-       if (extName == "VK_KHR_display_swapchain")
+       if (extName == "VK_AMD_texture_gather_bias_lod")
        {
-               functions.push_back("vkCreateSharedSwapchainsKHR");
                return;
        }
-       if (extName == "VK_KHR_sampler_mirror_clamp_to_edge")
+       if (extName == "VK_AMD_shader_info")
        {
+               functions.push_back("vkGetShaderInfoAMD");
                return;
        }
        if (extName == "VK_KHR_dynamic_rendering")
        {
-               functions.push_back("vkCmdBeginRenderingKHR");
-               functions.push_back("vkCmdEndRenderingKHR");
                return;
        }
-       if (extName == "VK_KHR_multiview")
+       if (extName == "VK_AMD_shader_image_load_store_lod")
        {
                return;
        }
-       if (extName == "VK_KHR_get_physical_device_properties2")
+       if (extName == "VK_GGP_stream_descriptor_surface")
        {
                return;
        }
-       if (extName == "VK_KHR_device_group")
+       if (extName == "VK_NV_corner_sampled_image")
        {
-               functions.push_back("vkGetDeviceGroupPeerMemoryFeaturesKHR");
-               functions.push_back("vkCmdSetDeviceMaskKHR");
-               functions.push_back("vkCmdDispatchBaseKHR");
-               if(apiVersion < VK_API_VERSION_1_1) functions.push_back("vkGetDeviceGroupPresentCapabilitiesKHR");
-               if(apiVersion < VK_API_VERSION_1_1) functions.push_back("vkGetDeviceGroupSurfacePresentModesKHR");
-               if(apiVersion < VK_API_VERSION_1_1) functions.push_back("vkAcquireNextImage2KHR");
                return;
        }
-       if (extName == "VK_KHR_shader_draw_parameters")
+       if (extName == "VK_KHR_multiview")
        {
                return;
        }
-       if (extName == "VK_KHR_maintenance1")
+       if (extName == "VK_IMG_format_pvrtc")
        {
-               functions.push_back("vkTrimCommandPoolKHR");
                return;
        }
-       if (extName == "VK_KHR_device_group_creation")
+       if (extName == "VK_NV_external_memory_capabilities")
        {
                return;
        }
-       if (extName == "VK_KHR_external_memory_capabilities")
+       if (extName == "VK_NV_external_memory")
        {
                return;
        }
-       if (extName == "VK_KHR_external_memory")
+       if (extName == "VK_NV_external_memory_win32")
        {
+               functions.push_back("vkGetMemoryWin32HandleNV");
                return;
        }
-       if (extName == "VK_KHR_external_memory_fd")
+       if (extName == "VK_NV_win32_keyed_mutex")
        {
-               functions.push_back("vkGetMemoryFdKHR");
-               functions.push_back("vkGetMemoryFdPropertiesKHR");
                return;
        }
-       if (extName == "VK_KHR_external_semaphore_capabilities")
+       if (extName == "VK_KHR_get_physical_device_properties2")
        {
                return;
        }
-       if (extName == "VK_KHR_external_semaphore")
+       if (extName == "VK_KHR_device_group")
        {
+               if(apiVersion >= VK_API_VERSION_1_1) functions.push_back("vkGetDeviceGroupPresentCapabilitiesKHR");
+               if(apiVersion >= VK_API_VERSION_1_1) functions.push_back("vkGetDeviceGroupSurfacePresentModesKHR");
+               if(apiVersion >= VK_API_VERSION_1_1) functions.push_back("vkAcquireNextImage2KHR");
+               if(apiVersion < VK_API_VERSION_1_1) functions.push_back("vkGetDeviceGroupPresentCapabilitiesKHR");
+               if(apiVersion < VK_API_VERSION_1_1) functions.push_back("vkGetDeviceGroupSurfacePresentModesKHR");
+               if(apiVersion < VK_API_VERSION_1_1) functions.push_back("vkAcquireNextImage2KHR");
                return;
        }
-       if (extName == "VK_KHR_external_semaphore_fd")
+       if (extName == "VK_EXT_validation_flags")
        {
-               functions.push_back("vkImportSemaphoreFdKHR");
-               functions.push_back("vkGetSemaphoreFdKHR");
                return;
        }
-       if (extName == "VK_KHR_push_descriptor")
+       if (extName == "VK_NN_vi_surface")
        {
-               functions.push_back("vkCmdPushDescriptorSetKHR");
-               functions.push_back("vkCmdPushDescriptorSetWithTemplateKHR");
                return;
        }
-       if (extName == "VK_KHR_shader_float16_int8")
+       if (extName == "VK_KHR_shader_draw_parameters")
        {
                return;
        }
-       if (extName == "VK_KHR_16bit_storage")
+       if (extName == "VK_EXT_shader_subgroup_ballot")
        {
                return;
        }
-       if (extName == "VK_KHR_incremental_present")
+       if (extName == "VK_EXT_shader_subgroup_vote")
        {
                return;
        }
-       if (extName == "VK_KHR_descriptor_update_template")
+       if (extName == "VK_EXT_texture_compression_astc_hdr")
        {
-               functions.push_back("vkCreateDescriptorUpdateTemplateKHR");
-               functions.push_back("vkDestroyDescriptorUpdateTemplateKHR");
-               functions.push_back("vkUpdateDescriptorSetWithTemplateKHR");
                return;
        }
-       if (extName == "VK_KHR_imageless_framebuffer")
+       if (extName == "VK_EXT_astc_decode_mode")
        {
                return;
        }
-       if (extName == "VK_KHR_create_renderpass2")
+       if (extName == "VK_EXT_pipeline_robustness")
        {
-               functions.push_back("vkCreateRenderPass2KHR");
-               functions.push_back("vkCmdBeginRenderPass2KHR");
-               functions.push_back("vkCmdNextSubpass2KHR");
-               functions.push_back("vkCmdEndRenderPass2KHR");
                return;
        }
-       if (extName == "VK_KHR_shared_presentable_image")
+       if (extName == "VK_KHR_maintenance1")
        {
-               functions.push_back("vkGetSwapchainStatusKHR");
                return;
        }
-       if (extName == "VK_KHR_external_fence_capabilities")
+       if (extName == "VK_KHR_device_group_creation")
        {
                return;
        }
-       if (extName == "VK_KHR_external_fence")
+       if (extName == "VK_KHR_external_memory_capabilities")
        {
                return;
        }
-       if (extName == "VK_KHR_external_fence_fd")
+       if (extName == "VK_KHR_external_memory")
        {
-               functions.push_back("vkImportFenceFdKHR");
-               functions.push_back("vkGetFenceFdKHR");
                return;
        }
-       if (extName == "VK_KHR_performance_query")
+       if (extName == "VK_KHR_external_memory_win32")
        {
-               functions.push_back("vkAcquireProfilingLockKHR");
-               functions.push_back("vkReleaseProfilingLockKHR");
+               functions.push_back("vkGetMemoryWin32HandleKHR");
+               functions.push_back("vkGetMemoryWin32HandlePropertiesKHR");
                return;
        }
-       if (extName == "VK_KHR_maintenance2")
+       if (extName == "VK_KHR_external_memory_fd")
        {
+               functions.push_back("vkGetMemoryFdKHR");
+               functions.push_back("vkGetMemoryFdPropertiesKHR");
                return;
        }
-       if (extName == "VK_KHR_get_surface_capabilities2")
+       if (extName == "VK_KHR_win32_keyed_mutex")
        {
                return;
        }
-       if (extName == "VK_KHR_variable_pointers")
+       if (extName == "VK_KHR_external_semaphore_capabilities")
        {
                return;
        }
-       if (extName == "VK_KHR_get_display_properties2")
+       if (extName == "VK_KHR_external_semaphore")
        {
                return;
        }
-       if (extName == "VK_KHR_dedicated_allocation")
+       if (extName == "VK_KHR_external_semaphore_win32")
        {
+               functions.push_back("vkImportSemaphoreWin32HandleKHR");
+               functions.push_back("vkGetSemaphoreWin32HandleKHR");
                return;
        }
-       if (extName == "VK_KHR_storage_buffer_storage_class")
+       if (extName == "VK_KHR_external_semaphore_fd")
        {
+               functions.push_back("vkImportSemaphoreFdKHR");
+               functions.push_back("vkGetSemaphoreFdKHR");
                return;
        }
-       if (extName == "VK_KHR_relaxed_block_layout")
+       if (extName == "VK_KHR_push_descriptor")
        {
+               functions.push_back("vkCmdPushDescriptorSetKHR");
+               functions.push_back("vkCmdPushDescriptorSetWithTemplateKHR");
+               functions.push_back("vkCmdPushDescriptorSetWithTemplateKHR");
                return;
        }
-       if (extName == "VK_KHR_get_memory_requirements2")
+       if (extName == "VK_EXT_conditional_rendering")
        {
-               functions.push_back("vkGetImageMemoryRequirements2KHR");
-               functions.push_back("vkGetBufferMemoryRequirements2KHR");
-               functions.push_back("vkGetImageSparseMemoryRequirements2KHR");
+               functions.push_back("vkCmdBeginConditionalRenderingEXT");
+               functions.push_back("vkCmdEndConditionalRenderingEXT");
                return;
        }
-       if (extName == "VK_KHR_image_format_list")
+       if (extName == "VK_KHR_shader_float16_int8")
        {
                return;
        }
-       if (extName == "VK_KHR_sampler_ycbcr_conversion")
+       if (extName == "VK_KHR_16bit_storage")
        {
-               functions.push_back("vkCreateSamplerYcbcrConversionKHR");
-               functions.push_back("vkDestroySamplerYcbcrConversionKHR");
                return;
        }
-       if (extName == "VK_KHR_bind_memory2")
+       if (extName == "VK_KHR_incremental_present")
        {
-               functions.push_back("vkBindBufferMemory2KHR");
-               functions.push_back("vkBindImageMemory2KHR");
                return;
        }
-       if (extName == "VK_KHR_maintenance3")
+       if (extName == "VK_KHR_descriptor_update_template")
        {
-               functions.push_back("vkGetDescriptorSetLayoutSupportKHR");
+               functions.push_back("vkCmdPushDescriptorSetWithTemplateKHR");
                return;
        }
-       if (extName == "VK_KHR_draw_indirect_count")
+       if (extName == "VK_NV_clip_space_w_scaling")
        {
-               functions.push_back("vkCmdDrawIndirectCountKHR");
-               functions.push_back("vkCmdDrawIndexedIndirectCountKHR");
+               functions.push_back("vkCmdSetViewportWScalingNV");
                return;
        }
-       if (extName == "VK_KHR_shader_subgroup_extended_types")
+       if (extName == "VK_EXT_direct_mode_display")
        {
                return;
        }
-       if (extName == "VK_KHR_8bit_storage")
+       if (extName == "VK_EXT_acquire_xlib_display")
        {
                return;
        }
-       if (extName == "VK_KHR_shader_atomic_int64")
+       if (extName == "VK_EXT_display_surface_counter")
        {
                return;
        }
-       if (extName == "VK_KHR_shader_clock")
+       if (extName == "VK_EXT_display_control")
        {
+               functions.push_back("vkDisplayPowerControlEXT");
+               functions.push_back("vkRegisterDeviceEventEXT");
+               functions.push_back("vkRegisterDisplayEventEXT");
+               functions.push_back("vkGetSwapchainCounterEXT");
                return;
        }
-       if (extName == "VK_KHR_global_priority")
+       if (extName == "VK_GOOGLE_display_timing")
        {
+               functions.push_back("vkGetRefreshCycleDurationGOOGLE");
+               functions.push_back("vkGetPastPresentationTimingGOOGLE");
                return;
        }
-       if (extName == "VK_KHR_driver_properties")
+       if (extName == "VK_NV_sample_mask_override_coverage")
        {
                return;
        }
-       if (extName == "VK_KHR_shader_float_controls")
+       if (extName == "VK_NV_geometry_shader_passthrough")
        {
                return;
        }
-       if (extName == "VK_KHR_depth_stencil_resolve")
+       if (extName == "VK_NV_viewport_array2")
        {
                return;
        }
-       if (extName == "VK_KHR_swapchain_mutable_format")
+       if (extName == "VK_NVX_multiview_per_view_attributes")
        {
                return;
        }
-       if (extName == "VK_KHR_timeline_semaphore")
+       if (extName == "VK_NV_viewport_swizzle")
        {
-               functions.push_back("vkGetSemaphoreCounterValueKHR");
-               functions.push_back("vkWaitSemaphoresKHR");
-               functions.push_back("vkSignalSemaphoreKHR");
                return;
        }
-       if (extName == "VK_KHR_vulkan_memory_model")
+       if (extName == "VK_EXT_discard_rectangles")
        {
+               functions.push_back("vkCmdSetDiscardRectangleEXT");
                return;
        }
-       if (extName == "VK_KHR_shader_terminate_invocation")
+       if (extName == "VK_EXT_conservative_rasterization")
        {
                return;
        }
-       if (extName == "VK_KHR_fragment_shading_rate")
+       if (extName == "VK_EXT_depth_clip_enable")
        {
-               functions.push_back("vkCmdSetFragmentShadingRateKHR");
                return;
        }
-       if (extName == "VK_KHR_spirv_1_4")
+       if (extName == "VK_EXT_swapchain_colorspace")
        {
                return;
        }
-       if (extName == "VK_KHR_surface_protected_capabilities")
+       if (extName == "VK_EXT_hdr_metadata")
        {
+               functions.push_back("vkSetHdrMetadataEXT");
                return;
        }
-       if (extName == "VK_KHR_separate_depth_stencil_layouts")
+       if (extName == "VK_KHR_imageless_framebuffer")
        {
                return;
        }
-       if (extName == "VK_KHR_present_wait")
+       if (extName == "VK_KHR_create_renderpass2")
        {
-               functions.push_back("vkWaitForPresentKHR");
                return;
        }
-       if (extName == "VK_KHR_uniform_buffer_standard_layout")
+       if (extName == "VK_KHR_shared_presentable_image")
        {
+               functions.push_back("vkGetSwapchainStatusKHR");
                return;
        }
-       if (extName == "VK_KHR_buffer_device_address")
+       if (extName == "VK_KHR_external_fence_capabilities")
        {
-               functions.push_back("vkGetBufferDeviceAddressKHR");
-               functions.push_back("vkGetBufferOpaqueCaptureAddressKHR");
-               functions.push_back("vkGetDeviceMemoryOpaqueCaptureAddressKHR");
                return;
        }
-       if (extName == "VK_KHR_deferred_host_operations")
+       if (extName == "VK_KHR_external_fence")
        {
-               functions.push_back("vkCreateDeferredOperationKHR");
-               functions.push_back("vkDestroyDeferredOperationKHR");
-               functions.push_back("vkGetDeferredOperationMaxConcurrencyKHR");
-               functions.push_back("vkGetDeferredOperationResultKHR");
-               functions.push_back("vkDeferredOperationJoinKHR");
                return;
        }
-       if (extName == "VK_KHR_pipeline_executable_properties")
+       if (extName == "VK_KHR_external_fence_win32")
        {
-               functions.push_back("vkGetPipelineExecutablePropertiesKHR");
-               functions.push_back("vkGetPipelineExecutableStatisticsKHR");
-               functions.push_back("vkGetPipelineExecutableInternalRepresentationsKHR");
+               functions.push_back("vkImportFenceWin32HandleKHR");
+               functions.push_back("vkGetFenceWin32HandleKHR");
                return;
        }
-       if (extName == "VK_KHR_shader_integer_dot_product")
+       if (extName == "VK_KHR_external_fence_fd")
        {
+               functions.push_back("vkImportFenceFdKHR");
+               functions.push_back("vkGetFenceFdKHR");
                return;
        }
-       if (extName == "VK_KHR_pipeline_library")
+       if (extName == "VK_KHR_performance_query")
        {
+               functions.push_back("vkAcquireProfilingLockKHR");
+               functions.push_back("vkReleaseProfilingLockKHR");
                return;
        }
-       if (extName == "VK_KHR_shader_non_semantic_info")
+       if (extName == "VK_KHR_maintenance2")
        {
                return;
        }
-       if (extName == "VK_KHR_present_id")
+       if (extName == "VK_KHR_get_surface_capabilities2")
        {
                return;
        }
-       if (extName == "VK_KHR_synchronization2")
+       if (extName == "VK_KHR_variable_pointers")
        {
-               functions.push_back("vkCmdSetEvent2KHR");
-               functions.push_back("vkCmdResetEvent2KHR");
-               functions.push_back("vkCmdWaitEvents2KHR");
-               functions.push_back("vkCmdPipelineBarrier2KHR");
-               functions.push_back("vkCmdWriteTimestamp2KHR");
-               functions.push_back("vkQueueSubmit2KHR");
                return;
        }
-       if (extName == "VK_KHR_fragment_shader_barycentric")
+       if (extName == "VK_KHR_get_display_properties2")
        {
                return;
        }
-       if (extName == "VK_KHR_shader_subgroup_uniform_control_flow")
+       if (extName == "VK_MVK_ios_surface")
        {
                return;
        }
-       if (extName == "VK_KHR_zero_initialize_workgroup_memory")
+       if (extName == "VK_MVK_macos_surface")
        {
                return;
        }
-       if (extName == "VK_KHR_workgroup_memory_explicit_layout")
+       if (extName == "VK_EXT_external_memory_dma_buf")
        {
                return;
        }
-       if (extName == "VK_KHR_copy_commands2")
+       if (extName == "VK_EXT_queue_family_foreign")
        {
-               functions.push_back("vkCmdCopyBuffer2KHR");
-               functions.push_back("vkCmdCopyImage2KHR");
-               functions.push_back("vkCmdCopyBufferToImage2KHR");
-               functions.push_back("vkCmdCopyImageToBuffer2KHR");
-               functions.push_back("vkCmdBlitImage2KHR");
-               functions.push_back("vkCmdResolveImage2KHR");
                return;
        }
-       if (extName == "VK_KHR_format_feature_flags2")
+       if (extName == "VK_KHR_dedicated_allocation")
        {
                return;
        }
-       if (extName == "VK_KHR_ray_tracing_maintenance1")
+       if (extName == "VK_EXT_debug_utils")
        {
-               functions.push_back("vkCmdTraceRaysIndirect2KHR");
+               functions.push_back("vkSetDebugUtilsObjectNameEXT");
+               functions.push_back("vkSetDebugUtilsObjectTagEXT");
+               functions.push_back("vkQueueBeginDebugUtilsLabelEXT");
+               functions.push_back("vkQueueEndDebugUtilsLabelEXT");
+               functions.push_back("vkQueueInsertDebugUtilsLabelEXT");
+               functions.push_back("vkCmdBeginDebugUtilsLabelEXT");
+               functions.push_back("vkCmdEndDebugUtilsLabelEXT");
+               functions.push_back("vkCmdInsertDebugUtilsLabelEXT");
                return;
        }
-       if (extName == "VK_KHR_portability_enumeration")
+       if (extName == "VK_ANDROID_external_memory_android_hardware_buffer")
        {
+               functions.push_back("vkGetAndroidHardwareBufferPropertiesANDROID");
+               functions.push_back("vkGetMemoryAndroidHardwareBufferANDROID");
                return;
        }
-       if (extName == "VK_KHR_maintenance4")
+       if (extName == "VK_EXT_sampler_filter_minmax")
        {
-               functions.push_back("vkGetDeviceBufferMemoryRequirementsKHR");
-               functions.push_back("vkGetDeviceImageMemoryRequirementsKHR");
-               functions.push_back("vkGetDeviceImageSparseMemoryRequirementsKHR");
                return;
        }
-       if (extName == "VK_EXT_debug_report")
+       if (extName == "VK_KHR_storage_buffer_storage_class")
        {
                return;
        }
-       if (extName == "VK_NV_glsl_shader")
+       if (extName == "VK_AMD_gpu_shader_int16")
        {
                return;
        }
-       if (extName == "VK_EXT_depth_range_unrestricted")
+       if (extName == "VK_AMD_mixed_attachment_samples")
        {
                return;
        }
-       if (extName == "VK_IMG_filter_cubic")
+       if (extName == "VK_AMD_shader_fragment_mask")
        {
                return;
        }
-       if (extName == "VK_AMD_rasterization_order")
+       if (extName == "VK_EXT_inline_uniform_block")
        {
                return;
        }
-       if (extName == "VK_AMD_shader_trinary_minmax")
+       if (extName == "VK_EXT_shader_stencil_export")
        {
                return;
        }
-       if (extName == "VK_AMD_shader_explicit_vertex_parameter")
+       if (extName == "VK_EXT_sample_locations")
        {
+               functions.push_back("vkCmdSetSampleLocationsEXT");
                return;
        }
-       if (extName == "VK_EXT_debug_marker")
+       if (extName == "VK_KHR_relaxed_block_layout")
        {
-               functions.push_back("vkDebugMarkerSetObjectTagEXT");
-               functions.push_back("vkDebugMarkerSetObjectNameEXT");
-               functions.push_back("vkCmdDebugMarkerBeginEXT");
-               functions.push_back("vkCmdDebugMarkerEndEXT");
-               functions.push_back("vkCmdDebugMarkerInsertEXT");
                return;
        }
-       if (extName == "VK_AMD_gcn_shader")
+       if (extName == "VK_KHR_get_memory_requirements2")
        {
                return;
        }
-       if (extName == "VK_NV_dedicated_allocation")
+       if (extName == "VK_KHR_image_format_list")
        {
                return;
        }
-       if (extName == "VK_EXT_transform_feedback")
+       if (extName == "VK_EXT_blend_operation_advanced")
        {
-               functions.push_back("vkCmdBindTransformFeedbackBuffersEXT");
-               functions.push_back("vkCmdBeginTransformFeedbackEXT");
-               functions.push_back("vkCmdEndTransformFeedbackEXT");
-               functions.push_back("vkCmdBeginQueryIndexedEXT");
-               functions.push_back("vkCmdEndQueryIndexedEXT");
-               functions.push_back("vkCmdDrawIndirectByteCountEXT");
                return;
        }
-       if (extName == "VK_NVX_binary_import")
+       if (extName == "VK_NV_fragment_coverage_to_color")
        {
-               functions.push_back("vkCreateCuModuleNVX");
-               functions.push_back("vkCreateCuFunctionNVX");
-               functions.push_back("vkDestroyCuModuleNVX");
-               functions.push_back("vkDestroyCuFunctionNVX");
-               functions.push_back("vkCmdCuLaunchKernelNVX");
                return;
        }
-       if (extName == "VK_NVX_image_view_handle")
+       if (extName == "VK_KHR_acceleration_structure")
        {
-               functions.push_back("vkGetImageViewHandleNVX");
-               functions.push_back("vkGetImageViewAddressNVX");
+               functions.push_back("vkCreateAccelerationStructureKHR");
+               functions.push_back("vkDestroyAccelerationStructureKHR");
+               functions.push_back("vkCmdBuildAccelerationStructuresKHR");
+               functions.push_back("vkCmdBuildAccelerationStructuresIndirectKHR");
+               functions.push_back("vkBuildAccelerationStructuresKHR");
+               functions.push_back("vkCopyAccelerationStructureKHR");
+               functions.push_back("vkCopyAccelerationStructureToMemoryKHR");
+               functions.push_back("vkCopyMemoryToAccelerationStructureKHR");
+               functions.push_back("vkWriteAccelerationStructuresPropertiesKHR");
+               functions.push_back("vkCmdCopyAccelerationStructureKHR");
+               functions.push_back("vkCmdCopyAccelerationStructureToMemoryKHR");
+               functions.push_back("vkCmdCopyMemoryToAccelerationStructureKHR");
+               functions.push_back("vkGetAccelerationStructureDeviceAddressKHR");
+               functions.push_back("vkCmdWriteAccelerationStructuresPropertiesKHR");
+               functions.push_back("vkGetDeviceAccelerationStructureCompatibilityKHR");
+               functions.push_back("vkGetAccelerationStructureBuildSizesKHR");
                return;
        }
-       if (extName == "VK_AMD_draw_indirect_count")
+       if (extName == "VK_KHR_ray_tracing_pipeline")
        {
-               functions.push_back("vkCmdDrawIndirectCountAMD");
-               functions.push_back("vkCmdDrawIndexedIndirectCountAMD");
+               functions.push_back("vkCmdTraceRaysKHR");
+               functions.push_back("vkCreateRayTracingPipelinesKHR");
+               functions.push_back("vkGetRayTracingShaderGroupHandlesKHR");
+               functions.push_back("vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
+               functions.push_back("vkCmdTraceRaysIndirectKHR");
+               functions.push_back("vkGetRayTracingShaderGroupStackSizeKHR");
+               functions.push_back("vkCmdSetRayTracingPipelineStackSizeKHR");
                return;
        }
-       if (extName == "VK_AMD_negative_viewport_height")
+       if (extName == "VK_KHR_ray_query")
        {
                return;
        }
-       if (extName == "VK_AMD_gpu_shader_half_float")
+       if (extName == "VK_NV_framebuffer_mixed_samples")
        {
                return;
        }
-       if (extName == "VK_AMD_shader_ballot")
+       if (extName == "VK_NV_fill_rectangle")
        {
                return;
        }
-       if (extName == "VK_AMD_texture_gather_bias_lod")
+       if (extName == "VK_NV_shader_sm_builtins")
        {
                return;
        }
-       if (extName == "VK_AMD_shader_info")
+       if (extName == "VK_EXT_post_depth_coverage")
        {
-               functions.push_back("vkGetShaderInfoAMD");
                return;
        }
-       if (extName == "VK_AMD_shader_image_load_store_lod")
+       if (extName == "VK_KHR_sampler_ycbcr_conversion")
        {
                return;
        }
-       if (extName == "VK_NV_corner_sampled_image")
+       if (extName == "VK_KHR_bind_memory2")
        {
                return;
        }
-       if (extName == "VK_IMG_format_pvrtc")
+       if (extName == "VK_EXT_image_drm_format_modifier")
        {
+               functions.push_back("vkGetImageDrmFormatModifierPropertiesEXT");
                return;
        }
-       if (extName == "VK_NV_external_memory_capabilities")
+       if (extName == "VK_EXT_validation_cache")
        {
+               functions.push_back("vkCreateValidationCacheEXT");
+               functions.push_back("vkDestroyValidationCacheEXT");
+               functions.push_back("vkMergeValidationCachesEXT");
+               functions.push_back("vkGetValidationCacheDataEXT");
                return;
        }
-       if (extName == "VK_NV_external_memory")
+       if (extName == "VK_EXT_descriptor_indexing")
        {
                return;
        }
-       if (extName == "VK_EXT_validation_flags")
+       if (extName == "VK_EXT_shader_viewport_index_layer")
        {
                return;
        }
-       if (extName == "VK_EXT_shader_subgroup_ballot")
+       if (extName == "VK_KHR_portability_subset")
        {
                return;
        }
-       if (extName == "VK_EXT_shader_subgroup_vote")
+       if (extName == "VK_NV_shading_rate_image")
        {
+               functions.push_back("vkCmdBindShadingRateImageNV");
+               functions.push_back("vkCmdSetViewportShadingRatePaletteNV");
+               functions.push_back("vkCmdSetCoarseSampleOrderNV");
                return;
        }
-       if (extName == "VK_EXT_texture_compression_astc_hdr")
+       if (extName == "VK_NV_ray_tracing")
        {
+               functions.push_back("vkCreateAccelerationStructureNV");
+               functions.push_back("vkDestroyAccelerationStructureNV");
+               functions.push_back("vkGetAccelerationStructureMemoryRequirementsNV");
+               functions.push_back("vkBindAccelerationStructureMemoryNV");
+               functions.push_back("vkCmdBuildAccelerationStructureNV");
+               functions.push_back("vkCmdCopyAccelerationStructureNV");
+               functions.push_back("vkCmdTraceRaysNV");
+               functions.push_back("vkCreateRayTracingPipelinesNV");
+               functions.push_back("vkGetAccelerationStructureHandleNV");
+               functions.push_back("vkCmdWriteAccelerationStructuresPropertiesNV");
+               functions.push_back("vkCompileDeferredNV");
                return;
        }
-       if (extName == "VK_EXT_astc_decode_mode")
+       if (extName == "VK_NV_representative_fragment_test")
        {
                return;
        }
-       if (extName == "VK_EXT_pipeline_robustness")
+       if (extName == "VK_KHR_maintenance3")
        {
                return;
        }
-       if (extName == "VK_EXT_conditional_rendering")
+       if (extName == "VK_KHR_draw_indirect_count")
        {
-               functions.push_back("vkCmdBeginConditionalRenderingEXT");
-               functions.push_back("vkCmdEndConditionalRenderingEXT");
                return;
        }
-       if (extName == "VK_NV_clip_space_w_scaling")
+       if (extName == "VK_EXT_filter_cubic")
        {
-               functions.push_back("vkCmdSetViewportWScalingNV");
                return;
        }
-       if (extName == "VK_EXT_direct_mode_display")
+       if (extName == "VK_QCOM_render_pass_shader_resolve")
        {
                return;
        }
-       if (extName == "VK_EXT_display_surface_counter")
+       if (extName == "VK_EXT_global_priority")
        {
                return;
        }
-       if (extName == "VK_EXT_display_control")
+       if (extName == "VK_KHR_shader_subgroup_extended_types")
        {
-               functions.push_back("vkDisplayPowerControlEXT");
-               functions.push_back("vkRegisterDeviceEventEXT");
-               functions.push_back("vkRegisterDisplayEventEXT");
-               functions.push_back("vkGetSwapchainCounterEXT");
                return;
        }
-       if (extName == "VK_GOOGLE_display_timing")
+       if (extName == "VK_KHR_8bit_storage")
        {
-               functions.push_back("vkGetRefreshCycleDurationGOOGLE");
-               functions.push_back("vkGetPastPresentationTimingGOOGLE");
                return;
        }
-       if (extName == "VK_NV_sample_mask_override_coverage")
+       if (extName == "VK_EXT_external_memory_host")
        {
+               functions.push_back("vkGetMemoryHostPointerPropertiesEXT");
                return;
        }
-       if (extName == "VK_NV_geometry_shader_passthrough")
+       if (extName == "VK_AMD_buffer_marker")
        {
+               functions.push_back("vkCmdWriteBufferMarkerAMD");
                return;
        }
-       if (extName == "VK_NV_viewport_array2")
+       if (extName == "VK_KHR_shader_atomic_int64")
        {
                return;
        }
-       if (extName == "VK_NVX_multiview_per_view_attributes")
+       if (extName == "VK_KHR_shader_clock")
        {
                return;
        }
-       if (extName == "VK_NV_viewport_swizzle")
+       if (extName == "VK_AMD_pipeline_compiler_control")
        {
                return;
        }
-       if (extName == "VK_EXT_discard_rectangles")
+       if (extName == "VK_EXT_calibrated_timestamps")
        {
-               functions.push_back("vkCmdSetDiscardRectangleEXT");
+               functions.push_back("vkGetCalibratedTimestampsEXT");
                return;
        }
-       if (extName == "VK_EXT_conservative_rasterization")
+       if (extName == "VK_AMD_shader_core_properties")
        {
                return;
        }
-       if (extName == "VK_EXT_depth_clip_enable")
+       if (extName == "VK_EXT_video_decode_h265")
        {
                return;
        }
-       if (extName == "VK_EXT_swapchain_colorspace")
+       if (extName == "VK_KHR_global_priority")
        {
                return;
        }
-       if (extName == "VK_EXT_hdr_metadata")
+       if (extName == "VK_AMD_memory_overallocation_behavior")
        {
-               functions.push_back("vkSetHdrMetadataEXT");
                return;
        }
-       if (extName == "VK_EXT_external_memory_dma_buf")
+       if (extName == "VK_EXT_vertex_attribute_divisor")
        {
                return;
        }
-       if (extName == "VK_EXT_queue_family_foreign")
+       if (extName == "VK_GGP_frame_token")
        {
                return;
        }
-       if (extName == "VK_EXT_debug_utils")
+       if (extName == "VK_EXT_pipeline_creation_feedback")
        {
-               functions.push_back("vkSetDebugUtilsObjectNameEXT");
-               functions.push_back("vkSetDebugUtilsObjectTagEXT");
-               functions.push_back("vkQueueBeginDebugUtilsLabelEXT");
-               functions.push_back("vkQueueEndDebugUtilsLabelEXT");
-               functions.push_back("vkQueueInsertDebugUtilsLabelEXT");
-               functions.push_back("vkCmdBeginDebugUtilsLabelEXT");
-               functions.push_back("vkCmdEndDebugUtilsLabelEXT");
-               functions.push_back("vkCmdInsertDebugUtilsLabelEXT");
                return;
        }
-       if (extName == "VK_EXT_sampler_filter_minmax")
+       if (extName == "VK_KHR_driver_properties")
        {
                return;
        }
-       if (extName == "VK_AMD_gpu_shader_int16")
+       if (extName == "VK_KHR_shader_float_controls")
        {
                return;
        }
-       if (extName == "VK_AMD_mixed_attachment_samples")
+       if (extName == "VK_NV_shader_subgroup_partitioned")
        {
                return;
        }
-       if (extName == "VK_AMD_shader_fragment_mask")
+       if (extName == "VK_KHR_depth_stencil_resolve")
        {
                return;
        }
-       if (extName == "VK_EXT_inline_uniform_block")
+       if (extName == "VK_KHR_swapchain_mutable_format")
        {
                return;
        }
-       if (extName == "VK_EXT_shader_stencil_export")
+       if (extName == "VK_NV_compute_shader_derivatives")
        {
                return;
        }
-       if (extName == "VK_EXT_sample_locations")
+       if (extName == "VK_NV_mesh_shader")
        {
-               functions.push_back("vkCmdSetSampleLocationsEXT");
+               functions.push_back("vkCmdDrawMeshTasksNV");
+               functions.push_back("vkCmdDrawMeshTasksIndirectNV");
+               functions.push_back("vkCmdDrawMeshTasksIndirectCountNV");
                return;
        }
-       if (extName == "VK_EXT_blend_operation_advanced")
+       if (extName == "VK_NV_fragment_shader_barycentric")
        {
                return;
        }
-       if (extName == "VK_NV_fragment_coverage_to_color")
+       if (extName == "VK_NV_shader_image_footprint")
        {
                return;
        }
-       if (extName == "VK_NV_framebuffer_mixed_samples")
+       if (extName == "VK_NV_scissor_exclusive")
        {
+               functions.push_back("vkCmdSetExclusiveScissorNV");
                return;
        }
-       if (extName == "VK_NV_fill_rectangle")
+       if (extName == "VK_NV_device_diagnostic_checkpoints")
        {
+               functions.push_back("vkCmdSetCheckpointNV");
+               functions.push_back("vkGetQueueCheckpointDataNV");
                return;
        }
-       if (extName == "VK_NV_shader_sm_builtins")
+       if (extName == "VK_KHR_timeline_semaphore")
        {
                return;
        }
-       if (extName == "VK_EXT_post_depth_coverage")
+       if (extName == "VK_INTEL_shader_integer_functions2")
        {
                return;
        }
-       if (extName == "VK_EXT_image_drm_format_modifier")
+       if (extName == "VK_INTEL_performance_query")
        {
-               functions.push_back("vkGetImageDrmFormatModifierPropertiesEXT");
+               functions.push_back("vkInitializePerformanceApiINTEL");
+               functions.push_back("vkUninitializePerformanceApiINTEL");
+               functions.push_back("vkCmdSetPerformanceMarkerINTEL");
+               functions.push_back("vkCmdSetPerformanceStreamMarkerINTEL");
+               functions.push_back("vkCmdSetPerformanceOverrideINTEL");
+               functions.push_back("vkAcquirePerformanceConfigurationINTEL");
+               functions.push_back("vkReleasePerformanceConfigurationINTEL");
+               functions.push_back("vkQueueSetPerformanceConfigurationINTEL");
+               functions.push_back("vkGetPerformanceParameterINTEL");
                return;
        }
-       if (extName == "VK_EXT_validation_cache")
+       if (extName == "VK_KHR_vulkan_memory_model")
        {
-               functions.push_back("vkCreateValidationCacheEXT");
-               functions.push_back("vkDestroyValidationCacheEXT");
-               functions.push_back("vkMergeValidationCachesEXT");
-               functions.push_back("vkGetValidationCacheDataEXT");
                return;
        }
-       if (extName == "VK_EXT_descriptor_indexing")
+       if (extName == "VK_EXT_pci_bus_info")
        {
                return;
        }
-       if (extName == "VK_EXT_shader_viewport_index_layer")
+       if (extName == "VK_AMD_display_native_hdr")
        {
+               functions.push_back("vkSetLocalDimmingAMD");
                return;
        }
-       if (extName == "VK_NV_shading_rate_image")
+       if (extName == "VK_FUCHSIA_imagepipe_surface")
        {
-               functions.push_back("vkCmdBindShadingRateImageNV");
-               functions.push_back("vkCmdSetViewportShadingRatePaletteNV");
-               functions.push_back("vkCmdSetCoarseSampleOrderNV");
                return;
        }
-       if (extName == "VK_NV_ray_tracing")
+       if (extName == "VK_KHR_shader_terminate_invocation")
        {
-               functions.push_back("vkCreateAccelerationStructureNV");
-               functions.push_back("vkDestroyAccelerationStructureNV");
-               functions.push_back("vkGetAccelerationStructureMemoryRequirementsNV");
-               functions.push_back("vkBindAccelerationStructureMemoryNV");
-               functions.push_back("vkCmdBuildAccelerationStructureNV");
-               functions.push_back("vkCmdCopyAccelerationStructureNV");
-               functions.push_back("vkCmdTraceRaysNV");
-               functions.push_back("vkCreateRayTracingPipelinesNV");
-               functions.push_back("vkGetRayTracingShaderGroupHandlesNV");
-               functions.push_back("vkGetAccelerationStructureHandleNV");
-               functions.push_back("vkCmdWriteAccelerationStructuresPropertiesNV");
-               functions.push_back("vkCompileDeferredNV");
                return;
        }
-       if (extName == "VK_NV_representative_fragment_test")
+       if (extName == "VK_EXT_metal_surface")
        {
                return;
        }
-       if (extName == "VK_EXT_filter_cubic")
+       if (extName == "VK_EXT_fragment_density_map")
        {
                return;
        }
-       if (extName == "VK_QCOM_render_pass_shader_resolve")
+       if (extName == "VK_EXT_scalar_block_layout")
        {
                return;
        }
-       if (extName == "VK_EXT_global_priority")
+       if (extName == "VK_GOOGLE_hlsl_functionality1")
        {
                return;
        }
-       if (extName == "VK_EXT_external_memory_host")
+       if (extName == "VK_GOOGLE_decorate_string")
        {
-               functions.push_back("vkGetMemoryHostPointerPropertiesEXT");
                return;
        }
-       if (extName == "VK_AMD_buffer_marker")
+       if (extName == "VK_EXT_subgroup_size_control")
        {
-               functions.push_back("vkCmdWriteBufferMarkerAMD");
                return;
        }
-       if (extName == "VK_AMD_pipeline_compiler_control")
+       if (extName == "VK_KHR_fragment_shading_rate")
        {
+               functions.push_back("vkCmdSetFragmentShadingRateKHR");
                return;
        }
-       if (extName == "VK_EXT_calibrated_timestamps")
+       if (extName == "VK_AMD_shader_core_properties2")
        {
-               functions.push_back("vkGetCalibratedTimestampsEXT");
                return;
        }
-       if (extName == "VK_AMD_shader_core_properties")
+       if (extName == "VK_AMD_device_coherent_memory")
        {
                return;
        }
-       if (extName == "VK_AMD_memory_overallocation_behavior")
+       if (extName == "VK_EXT_shader_image_atomic_int64")
        {
                return;
        }
-       if (extName == "VK_EXT_vertex_attribute_divisor")
+       if (extName == "VK_KHR_spirv_1_4")
        {
                return;
        }
-       if (extName == "VK_EXT_pipeline_creation_feedback")
+       if (extName == "VK_EXT_memory_budget")
        {
                return;
        }
-       if (extName == "VK_NV_shader_subgroup_partitioned")
+       if (extName == "VK_EXT_memory_priority")
        {
                return;
        }
-       if (extName == "VK_NV_compute_shader_derivatives")
+       if (extName == "VK_KHR_surface_protected_capabilities")
        {
                return;
        }
-       if (extName == "VK_NV_mesh_shader")
+       if (extName == "VK_NV_dedicated_allocation_image_aliasing")
        {
-               functions.push_back("vkCmdDrawMeshTasksNV");
-               functions.push_back("vkCmdDrawMeshTasksIndirectNV");
-               functions.push_back("vkCmdDrawMeshTasksIndirectCountNV");
                return;
        }
-       if (extName == "VK_NV_fragment_shader_barycentric")
+       if (extName == "VK_KHR_separate_depth_stencil_layouts")
        {
                return;
        }
-       if (extName == "VK_NV_shader_image_footprint")
+       if (extName == "VK_EXT_buffer_device_address")
        {
                return;
        }
-       if (extName == "VK_NV_scissor_exclusive")
+       if (extName == "VK_EXT_tooling_info")
        {
-               functions.push_back("vkCmdSetExclusiveScissorNV");
                return;
        }
-       if (extName == "VK_NV_device_diagnostic_checkpoints")
+       if (extName == "VK_EXT_separate_stencil_usage")
        {
-               functions.push_back("vkCmdSetCheckpointNV");
-               functions.push_back("vkGetQueueCheckpointDataNV");
                return;
        }
-       if (extName == "VK_INTEL_shader_integer_functions2")
+       if (extName == "VK_EXT_validation_features")
        {
                return;
        }
-       if (extName == "VK_INTEL_performance_query")
+       if (extName == "VK_KHR_present_wait")
        {
-               functions.push_back("vkInitializePerformanceApiINTEL");
-               functions.push_back("vkUninitializePerformanceApiINTEL");
-               functions.push_back("vkCmdSetPerformanceMarkerINTEL");
-               functions.push_back("vkCmdSetPerformanceStreamMarkerINTEL");
-               functions.push_back("vkCmdSetPerformanceOverrideINTEL");
-               functions.push_back("vkAcquirePerformanceConfigurationINTEL");
-               functions.push_back("vkReleasePerformanceConfigurationINTEL");
-               functions.push_back("vkQueueSetPerformanceConfigurationINTEL");
-               functions.push_back("vkGetPerformanceParameterINTEL");
+               functions.push_back("vkWaitForPresentKHR");
                return;
        }
-       if (extName == "VK_EXT_pci_bus_info")
+       if (extName == "VK_NV_cooperative_matrix")
        {
                return;
        }
-       if (extName == "VK_AMD_display_native_hdr")
+       if (extName == "VK_NV_coverage_reduction_mode")
        {
-               functions.push_back("vkSetLocalDimmingAMD");
                return;
        }
-       if (extName == "VK_EXT_fragment_density_map")
+       if (extName == "VK_EXT_fragment_shader_interlock")
        {
                return;
        }
-       if (extName == "VK_EXT_scalar_block_layout")
+       if (extName == "VK_EXT_ycbcr_image_arrays")
        {
                return;
        }
-       if (extName == "VK_GOOGLE_hlsl_functionality1")
+       if (extName == "VK_KHR_uniform_buffer_standard_layout")
        {
                return;
        }
-       if (extName == "VK_GOOGLE_decorate_string")
+       if (extName == "VK_EXT_provoking_vertex")
        {
                return;
        }
-       if (extName == "VK_EXT_subgroup_size_control")
+       if (extName == "VK_EXT_full_screen_exclusive")
        {
+               functions.push_back("vkAcquireFullScreenExclusiveModeEXT");
+               functions.push_back("vkReleaseFullScreenExclusiveModeEXT");
+               functions.push_back("vkGetDeviceGroupSurfacePresentModes2EXT");
+               functions.push_back("vkGetDeviceGroupSurfacePresentModes2EXT");
                return;
        }
-       if (extName == "VK_AMD_shader_core_properties2")
+       if (extName == "VK_EXT_headless_surface")
        {
                return;
        }
-       if (extName == "VK_AMD_device_coherent_memory")
+       if (extName == "VK_KHR_buffer_device_address")
        {
                return;
        }
-       if (extName == "VK_EXT_shader_image_atomic_int64")
+       if (extName == "VK_EXT_line_rasterization")
        {
+               functions.push_back("vkCmdSetLineStippleEXT");
                return;
        }
-       if (extName == "VK_EXT_memory_budget")
+       if (extName == "VK_EXT_shader_atomic_float")
        {
                return;
        }
-       if (extName == "VK_EXT_memory_priority")
+       if (extName == "VK_EXT_host_query_reset")
        {
                return;
        }
-       if (extName == "VK_NV_dedicated_allocation_image_aliasing")
+       if (extName == "VK_EXT_index_type_uint8")
        {
                return;
        }
-       if (extName == "VK_EXT_buffer_device_address")
+       if (extName == "VK_EXT_extended_dynamic_state")
        {
-               functions.push_back("vkGetBufferDeviceAddressEXT");
                return;
        }
-       if (extName == "VK_EXT_tooling_info")
+       if (extName == "VK_KHR_deferred_host_operations")
        {
+               functions.push_back("vkCreateDeferredOperationKHR");
+               functions.push_back("vkDestroyDeferredOperationKHR");
+               functions.push_back("vkGetDeferredOperationMaxConcurrencyKHR");
+               functions.push_back("vkGetDeferredOperationResultKHR");
+               functions.push_back("vkDeferredOperationJoinKHR");
                return;
        }
-       if (extName == "VK_EXT_separate_stencil_usage")
+       if (extName == "VK_KHR_pipeline_executable_properties")
        {
+               functions.push_back("vkGetPipelineExecutablePropertiesKHR");
+               functions.push_back("vkGetPipelineExecutableStatisticsKHR");
+               functions.push_back("vkGetPipelineExecutableInternalRepresentationsKHR");
                return;
        }
-       if (extName == "VK_EXT_validation_features")
+       if (extName == "VK_EXT_shader_atomic_float2")
        {
                return;
        }
-       if (extName == "VK_NV_cooperative_matrix")
+       if (extName == "VK_EXT_shader_demote_to_helper_invocation")
        {
                return;
        }
-       if (extName == "VK_NV_coverage_reduction_mode")
+       if (extName == "VK_NV_device_generated_commands")
        {
+               functions.push_back("vkGetGeneratedCommandsMemoryRequirementsNV");
+               functions.push_back("vkCmdPreprocessGeneratedCommandsNV");
+               functions.push_back("vkCmdExecuteGeneratedCommandsNV");
+               functions.push_back("vkCmdBindPipelineShaderGroupNV");
+               functions.push_back("vkCreateIndirectCommandsLayoutNV");
+               functions.push_back("vkDestroyIndirectCommandsLayoutNV");
                return;
        }
-       if (extName == "VK_EXT_fragment_shader_interlock")
+       if (extName == "VK_NV_inherited_viewport_scissor")
        {
                return;
        }
-       if (extName == "VK_EXT_ycbcr_image_arrays")
+       if (extName == "VK_KHR_shader_integer_dot_product")
        {
                return;
        }
-       if (extName == "VK_EXT_provoking_vertex")
+       if (extName == "VK_EXT_texel_buffer_alignment")
        {
                return;
        }
-       if (extName == "VK_EXT_headless_surface")
+       if (extName == "VK_QCOM_render_pass_transform")
        {
                return;
        }
-       if (extName == "VK_EXT_line_rasterization")
+       if (extName == "VK_EXT_device_memory_report")
        {
-               functions.push_back("vkCmdSetLineStippleEXT");
                return;
        }
-       if (extName == "VK_EXT_shader_atomic_float")
+       if (extName == "VK_EXT_acquire_drm_display")
        {
                return;
        }
-       if (extName == "VK_EXT_host_query_reset")
+       if (extName == "VK_EXT_robustness2")
        {
-               functions.push_back("vkResetQueryPoolEXT");
                return;
        }
-       if (extName == "VK_EXT_index_type_uint8")
-       {
-               return;
-       }
-       if (extName == "VK_EXT_extended_dynamic_state")
+       if (extName == "VK_EXT_custom_border_color")
        {
-               functions.push_back("vkCmdSetCullModeEXT");
-               functions.push_back("vkCmdSetFrontFaceEXT");
-               functions.push_back("vkCmdSetPrimitiveTopologyEXT");
-               functions.push_back("vkCmdSetViewportWithCountEXT");
-               functions.push_back("vkCmdSetScissorWithCountEXT");
-               functions.push_back("vkCmdBindVertexBuffers2EXT");
-               functions.push_back("vkCmdSetDepthTestEnableEXT");
-               functions.push_back("vkCmdSetDepthWriteEnableEXT");
-               functions.push_back("vkCmdSetDepthCompareOpEXT");
-               functions.push_back("vkCmdSetDepthBoundsTestEnableEXT");
-               functions.push_back("vkCmdSetStencilTestEnableEXT");
-               functions.push_back("vkCmdSetStencilOpEXT");
                return;
        }
-       if (extName == "VK_EXT_shader_atomic_float2")
+       if (extName == "VK_GOOGLE_user_type")
        {
                return;
        }
-       if (extName == "VK_EXT_shader_demote_to_helper_invocation")
+       if (extName == "VK_KHR_pipeline_library")
        {
                return;
        }
-       if (extName == "VK_NV_device_generated_commands")
-       {
-               functions.push_back("vkGetGeneratedCommandsMemoryRequirementsNV");
-               functions.push_back("vkCmdPreprocessGeneratedCommandsNV");
-               functions.push_back("vkCmdExecuteGeneratedCommandsNV");
-               functions.push_back("vkCmdBindPipelineShaderGroupNV");
-               functions.push_back("vkCreateIndirectCommandsLayoutNV");
-               functions.push_back("vkDestroyIndirectCommandsLayoutNV");
-               return;
-       }
-       if (extName == "VK_NV_inherited_viewport_scissor")
+       if (extName == "VK_KHR_shader_non_semantic_info")
        {
                return;
        }
-       if (extName == "VK_EXT_texel_buffer_alignment")
+       if (extName == "VK_KHR_present_id")
        {
                return;
        }
-       if (extName == "VK_QCOM_render_pass_transform")
+       if (extName == "VK_EXT_private_data")
        {
                return;
        }
-       if (extName == "VK_EXT_device_memory_report")
+       if (extName == "VK_EXT_pipeline_creation_cache_control")
        {
                return;
        }
-       if (extName == "VK_EXT_acquire_drm_display")
+       if (extName == "VK_KHR_video_encode_queue")
        {
+               functions.push_back("vkCmdEncodeVideoKHR");
                return;
        }
-       if (extName == "VK_EXT_robustness2")
+       if (extName == "VK_NV_device_diagnostics_config")
        {
                return;
        }
-       if (extName == "VK_EXT_custom_border_color")
+       if (extName == "VK_QCOM_render_pass_store_ops")
        {
                return;
        }
-       if (extName == "VK_GOOGLE_user_type")
+       if (extName == "VK_EXT_metal_objects")
        {
+               functions.push_back("vkExportMetalObjectsEXT");
                return;
        }
-       if (extName == "VK_EXT_private_data")
+       if (extName == "VK_KHR_synchronization2")
        {
-               functions.push_back("vkCreatePrivateDataSlotEXT");
-               functions.push_back("vkDestroyPrivateDataSlotEXT");
-               functions.push_back("vkSetPrivateDataEXT");
-               functions.push_back("vkGetPrivateDataEXT");
                return;
        }
-       if (extName == "VK_EXT_pipeline_creation_cache_control")
+       if (extName == "VK_EXT_graphics_pipeline_library")
        {
                return;
        }
-       if (extName == "VK_NV_device_diagnostics_config")
+       if (extName == "VK_AMD_shader_early_and_late_fragment_tests")
        {
                return;
        }
-       if (extName == "VK_QCOM_render_pass_store_ops")
+       if (extName == "VK_KHR_fragment_shader_barycentric")
        {
                return;
        }
-       if (extName == "VK_EXT_graphics_pipeline_library")
+       if (extName == "VK_KHR_shader_subgroup_uniform_control_flow")
        {
                return;
        }
-       if (extName == "VK_AMD_shader_early_and_late_fragment_tests")
+       if (extName == "VK_KHR_zero_initialize_workgroup_memory")
        {
                return;
        }
@@ -2296,6 +2415,14 @@ void getDeviceExtensionFunctions (uint32_t apiVersion, ::std::string extName, ::
        {
                return;
        }
+       if (extName == "VK_KHR_workgroup_memory_explicit_layout")
+       {
+               return;
+       }
+       if (extName == "VK_KHR_copy_commands2")
+       {
+               return;
+       }
        if (extName == "VK_EXT_image_compression_control")
        {
                functions.push_back("vkGetImageSubresourceLayout2EXT");
@@ -2338,6 +2465,31 @@ void getDeviceExtensionFunctions (uint32_t apiVersion, ::std::string extName, ::
        {
                return;
        }
+       if (extName == "VK_KHR_format_feature_flags2")
+       {
+               return;
+       }
+       if (extName == "VK_FUCHSIA_external_memory")
+       {
+               functions.push_back("vkGetMemoryZirconHandleFUCHSIA");
+               functions.push_back("vkGetMemoryZirconHandlePropertiesFUCHSIA");
+               return;
+       }
+       if (extName == "VK_FUCHSIA_external_semaphore")
+       {
+               functions.push_back("vkImportSemaphoreZirconHandleFUCHSIA");
+               functions.push_back("vkGetSemaphoreZirconHandleFUCHSIA");
+               return;
+       }
+       if (extName == "VK_FUCHSIA_buffer_collection")
+       {
+               functions.push_back("vkCreateBufferCollectionFUCHSIA");
+               functions.push_back("vkSetBufferCollectionImageConstraintsFUCHSIA");
+               functions.push_back("vkSetBufferCollectionBufferConstraintsFUCHSIA");
+               functions.push_back("vkDestroyBufferCollectionFUCHSIA");
+               functions.push_back("vkGetBufferCollectionPropertiesFUCHSIA");
+               return;
+       }
        if (extName == "VK_HUAWEI_subpass_shading")
        {
                functions.push_back("vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI");
@@ -2366,10 +2518,11 @@ void getDeviceExtensionFunctions (uint32_t apiVersion, ::std::string extName, ::
        if (extName == "VK_EXT_extended_dynamic_state2")
        {
                functions.push_back("vkCmdSetPatchControlPointsEXT");
-               functions.push_back("vkCmdSetRasterizerDiscardEnableEXT");
-               functions.push_back("vkCmdSetDepthBiasEnableEXT");
                functions.push_back("vkCmdSetLogicOpEXT");
-               functions.push_back("vkCmdSetPrimitiveRestartEnableEXT");
+               return;
+       }
+       if (extName == "VK_QNX_screen_surface")
+       {
                return;
        }
        if (extName == "VK_EXT_color_write_enable")
@@ -2381,6 +2534,11 @@ void getDeviceExtensionFunctions (uint32_t apiVersion, ::std::string extName, ::
        {
                return;
        }
+       if (extName == "VK_KHR_ray_tracing_maintenance1")
+       {
+               functions.push_back("vkCmdTraceRaysIndirect2KHR");
+               return;
+       }
        if (extName == "VK_EXT_global_priority_query")
        {
                return;
@@ -2399,6 +2557,10 @@ void getDeviceExtensionFunctions (uint32_t apiVersion, ::std::string extName, ::
        {
                return;
        }
+       if (extName == "VK_KHR_portability_enumeration")
+       {
+               return;
+       }
        if (extName == "VK_EXT_load_store_op_none")
        {
                return;
@@ -2412,6 +2574,10 @@ void getDeviceExtensionFunctions (uint32_t apiVersion, ::std::string extName, ::
                functions.push_back("vkSetDeviceMemoryPriorityEXT");
                return;
        }
+       if (extName == "VK_KHR_maintenance4")
+       {
+               return;
+       }
        if (extName == "VK_VALVE_descriptor_set_host_mapping")
        {
                functions.push_back("vkGetDescriptorSetLayoutHostMappingInfoVALVE");
@@ -2458,203 +2624,31 @@ void getDeviceExtensionFunctions (uint32_t apiVersion, ::std::string extName, ::
                functions.push_back("vkGetDynamicRenderingTilePropertiesQCOM");
                return;
        }
-       if (extName == "VK_KHR_acceleration_structure")
+       if (extName == "vulkan_video_codecs_common")
        {
-               functions.push_back("vkCreateAccelerationStructureKHR");
-               functions.push_back("vkDestroyAccelerationStructureKHR");
-               functions.push_back("vkCmdBuildAccelerationStructuresKHR");
-               functions.push_back("vkCmdBuildAccelerationStructuresIndirectKHR");
-               functions.push_back("vkBuildAccelerationStructuresKHR");
-               functions.push_back("vkCopyAccelerationStructureKHR");
-               functions.push_back("vkCopyAccelerationStructureToMemoryKHR");
-               functions.push_back("vkCopyMemoryToAccelerationStructureKHR");
-               functions.push_back("vkWriteAccelerationStructuresPropertiesKHR");
-               functions.push_back("vkCmdCopyAccelerationStructureKHR");
-               functions.push_back("vkCmdCopyAccelerationStructureToMemoryKHR");
-               functions.push_back("vkCmdCopyMemoryToAccelerationStructureKHR");
-               functions.push_back("vkGetAccelerationStructureDeviceAddressKHR");
-               functions.push_back("vkCmdWriteAccelerationStructuresPropertiesKHR");
-               functions.push_back("vkGetDeviceAccelerationStructureCompatibilityKHR");
-               functions.push_back("vkGetAccelerationStructureBuildSizesKHR");
-               return;
-       }
-       if (extName == "VK_KHR_ray_tracing_pipeline")
-       {
-               functions.push_back("vkCmdTraceRaysKHR");
-               functions.push_back("vkCreateRayTracingPipelinesKHR");
-               functions.push_back("vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
-               functions.push_back("vkCmdTraceRaysIndirectKHR");
-               functions.push_back("vkGetRayTracingShaderGroupStackSizeKHR");
-               functions.push_back("vkCmdSetRayTracingPipelineStackSizeKHR");
                return;
        }
-       if (extName == "VK_KHR_ray_query")
+       if (extName == "vulkan_video_codec_h264std")
        {
                return;
        }
-       if (extName == "VK_KHR_android_surface")
+       if (extName == "vulkan_video_codec_h264std_decode")
        {
                return;
        }
-       if (extName == "VK_ANDROID_external_memory_android_hardware_buffer")
+       if (extName == "vulkan_video_codec_h264std_encode")
        {
-               functions.push_back("vkGetAndroidHardwareBufferPropertiesANDROID");
-               functions.push_back("vkGetMemoryAndroidHardwareBufferANDROID");
                return;
        }
-       if (extName == "VK_KHR_video_queue")
+       if (extName == "vulkan_video_codec_h265std")
        {
-               functions.push_back("vkCreateVideoSessionKHR");
-               functions.push_back("vkDestroyVideoSessionKHR");
-               functions.push_back("vkGetVideoSessionMemoryRequirementsKHR");
-               functions.push_back("vkBindVideoSessionMemoryKHR");
-               functions.push_back("vkCreateVideoSessionParametersKHR");
-               functions.push_back("vkUpdateVideoSessionParametersKHR");
-               functions.push_back("vkDestroyVideoSessionParametersKHR");
-               functions.push_back("vkCmdBeginVideoCodingKHR");
-               functions.push_back("vkCmdEndVideoCodingKHR");
-               functions.push_back("vkCmdControlVideoCodingKHR");
-               return;
-       }
-       if (extName == "VK_KHR_video_decode_queue")
-       {
-               functions.push_back("vkCmdDecodeVideoKHR");
                return;
        }
-       if (extName == "VK_KHR_portability_subset")
+       if (extName == "vulkan_video_codec_h265std_decode")
        {
                return;
        }
-       if (extName == "VK_KHR_video_encode_queue")
-       {
-               functions.push_back("vkCmdEncodeVideoKHR");
-               return;
-       }
-       if (extName == "VK_EXT_video_encode_h264")
-       {
-               return;
-       }
-       if (extName == "VK_EXT_video_encode_h265")
-       {
-               return;
-       }
-       if (extName == "VK_EXT_video_decode_h264")
-       {
-               return;
-       }
-       if (extName == "VK_EXT_video_decode_h265")
-       {
-               return;
-       }
-       if (extName == "VK_FUCHSIA_imagepipe_surface")
-       {
-               return;
-       }
-       if (extName == "VK_FUCHSIA_external_memory")
-       {
-               functions.push_back("vkGetMemoryZirconHandleFUCHSIA");
-               functions.push_back("vkGetMemoryZirconHandlePropertiesFUCHSIA");
-               return;
-       }
-       if (extName == "VK_FUCHSIA_external_semaphore")
-       {
-               functions.push_back("vkImportSemaphoreZirconHandleFUCHSIA");
-               functions.push_back("vkGetSemaphoreZirconHandleFUCHSIA");
-               return;
-       }
-       if (extName == "VK_FUCHSIA_buffer_collection")
-       {
-               functions.push_back("vkCreateBufferCollectionFUCHSIA");
-               functions.push_back("vkSetBufferCollectionImageConstraintsFUCHSIA");
-               functions.push_back("vkSetBufferCollectionBufferConstraintsFUCHSIA");
-               functions.push_back("vkDestroyBufferCollectionFUCHSIA");
-               functions.push_back("vkGetBufferCollectionPropertiesFUCHSIA");
-               return;
-       }
-       if (extName == "VK_GGP_stream_descriptor_surface")
-       {
-               return;
-       }
-       if (extName == "VK_GGP_frame_token")
-       {
-               return;
-       }
-       if (extName == "VK_MVK_ios_surface")
-       {
-               return;
-       }
-       if (extName == "VK_MVK_macos_surface")
-       {
-               return;
-       }
-       if (extName == "VK_EXT_metal_surface")
-       {
-               return;
-       }
-       if (extName == "VK_EXT_metal_objects")
-       {
-               functions.push_back("vkExportMetalObjectsEXT");
-               return;
-       }
-       if (extName == "VK_NN_vi_surface")
-       {
-               return;
-       }
-       if (extName == "VK_KHR_wayland_surface")
-       {
-               return;
-       }
-       if (extName == "VK_KHR_win32_surface")
-       {
-               return;
-       }
-       if (extName == "VK_KHR_external_memory_win32")
-       {
-               functions.push_back("vkGetMemoryWin32HandleKHR");
-               functions.push_back("vkGetMemoryWin32HandlePropertiesKHR");
-               return;
-       }
-       if (extName == "VK_KHR_win32_keyed_mutex")
-       {
-               return;
-       }
-       if (extName == "VK_KHR_external_semaphore_win32")
-       {
-               functions.push_back("vkImportSemaphoreWin32HandleKHR");
-               functions.push_back("vkGetSemaphoreWin32HandleKHR");
-               return;
-       }
-       if (extName == "VK_KHR_external_fence_win32")
-       {
-               functions.push_back("vkImportFenceWin32HandleKHR");
-               functions.push_back("vkGetFenceWin32HandleKHR");
-               return;
-       }
-       if (extName == "VK_NV_external_memory_win32")
-       {
-               functions.push_back("vkGetMemoryWin32HandleNV");
-               return;
-       }
-       if (extName == "VK_NV_win32_keyed_mutex")
-       {
-               return;
-       }
-       if (extName == "VK_EXT_full_screen_exclusive")
-       {
-               functions.push_back("vkAcquireFullScreenExclusiveModeEXT");
-               functions.push_back("vkReleaseFullScreenExclusiveModeEXT");
-               functions.push_back("vkGetDeviceGroupSurfacePresentModes2EXT");
-               return;
-       }
-       if (extName == "VK_KHR_xcb_surface")
-       {
-               return;
-       }
-       if (extName == "VK_KHR_xlib_surface")
-       {
-               return;
-       }
-       if (extName == "VK_EXT_acquire_xlib_display")
+       if (extName == "vulkan_video_codec_h265std_encode")
        {
                return;
        }
@@ -2665,126 +2659,296 @@ void getDeviceExtensionFunctions (uint32_t apiVersion, ::std::string extName, ::
 {
        "VK_KHR_surface",
        "VK_KHR_display",
+       "VK_KHR_xlib_surface",
+       "VK_KHR_xcb_surface",
+       "VK_KHR_wayland_surface",
+       "VK_KHR_android_surface",
+       "VK_KHR_win32_surface",
+       "VK_EXT_debug_report",
+       "VK_GGP_stream_descriptor_surface",
+       "VK_NV_external_memory_capabilities",
        "VK_KHR_get_physical_device_properties2",
+       "VK_EXT_validation_flags",
+       "VK_NN_vi_surface",
        "VK_KHR_device_group_creation",
        "VK_KHR_external_memory_capabilities",
        "VK_KHR_external_semaphore_capabilities",
+       "VK_EXT_direct_mode_display",
+       "VK_EXT_acquire_xlib_display",
+       "VK_EXT_display_surface_counter",
+       "VK_EXT_swapchain_colorspace",
        "VK_KHR_external_fence_capabilities",
-       "VK_KHR_performance_query",
        "VK_KHR_get_surface_capabilities2",
        "VK_KHR_get_display_properties2",
-       "VK_KHR_fragment_shading_rate",
-       "VK_EXT_debug_report",
-       "VK_NV_external_memory_capabilities",
-       "VK_EXT_direct_mode_display",
-       "VK_EXT_display_surface_counter",
-       "VK_EXT_calibrated_timestamps",
-       "VK_EXT_tooling_info",
-       "VK_NV_cooperative_matrix",
-       "VK_NV_coverage_reduction_mode",
-       "VK_EXT_headless_surface",
-       "VK_EXT_acquire_drm_display",
-       "VK_NV_acquire_winrt_display",
-       "VK_KHR_android_surface",
-       "VK_KHR_video_queue",
-       "VK_FUCHSIA_imagepipe_surface",
-       "VK_GGP_stream_descriptor_surface",
        "VK_MVK_ios_surface",
        "VK_MVK_macos_surface",
+       "VK_EXT_debug_utils",
+       "VK_FUCHSIA_imagepipe_surface",
        "VK_EXT_metal_surface",
-       "VK_NN_vi_surface",
-       "VK_KHR_wayland_surface",
-       "VK_KHR_win32_surface",
-       "VK_EXT_full_screen_exclusive",
-       "VK_KHR_xcb_surface",
-       "VK_KHR_xlib_surface",
-       "VK_EXT_acquire_xlib_display"
+       "VK_KHR_surface_protected_capabilities",
+       "VK_EXT_validation_features",
+       "VK_EXT_headless_surface",
+       "VK_EXT_acquire_drm_display",
+       "VK_QNX_screen_surface",
+       "VK_KHR_portability_enumeration",
+       "VK_GOOGLE_surfaceless_query",
 };
 
 ::std::string deviceExtensionNames[] =
 {
        "VK_KHR_swapchain",
        "VK_KHR_display_swapchain",
-       "VK_KHR_dynamic_rendering",
-       "VK_KHR_device_group",
-       "VK_KHR_maintenance1",
-       "VK_KHR_external_memory_fd",
-       "VK_KHR_external_semaphore_fd",
-       "VK_KHR_push_descriptor",
-       "VK_KHR_descriptor_update_template",
-       "VK_KHR_create_renderpass2",
-       "VK_KHR_shared_presentable_image",
-       "VK_KHR_external_fence_fd",
-       "VK_KHR_get_memory_requirements2",
-       "VK_KHR_sampler_ycbcr_conversion",
-       "VK_KHR_bind_memory2",
-       "VK_KHR_maintenance3",
-       "VK_KHR_draw_indirect_count",
-       "VK_KHR_timeline_semaphore",
-       "VK_KHR_present_wait",
-       "VK_KHR_buffer_device_address",
-       "VK_KHR_deferred_host_operations",
-       "VK_KHR_pipeline_executable_properties",
-       "VK_KHR_synchronization2",
-       "VK_KHR_copy_commands2",
-       "VK_KHR_ray_tracing_maintenance1",
-       "VK_KHR_maintenance4",
+       "VK_NV_glsl_shader",
+       "VK_EXT_depth_range_unrestricted",
+       "VK_KHR_sampler_mirror_clamp_to_edge",
+       "VK_IMG_filter_cubic",
+       "VK_AMD_rasterization_order",
+       "VK_AMD_shader_trinary_minmax",
+       "VK_AMD_shader_explicit_vertex_parameter",
        "VK_EXT_debug_marker",
+       "VK_KHR_video_queue",
+       "VK_KHR_video_decode_queue",
+       "VK_AMD_gcn_shader",
+       "VK_NV_dedicated_allocation",
        "VK_EXT_transform_feedback",
        "VK_NVX_binary_import",
        "VK_NVX_image_view_handle",
        "VK_AMD_draw_indirect_count",
+       "VK_AMD_negative_viewport_height",
+       "VK_AMD_gpu_shader_half_float",
+       "VK_AMD_shader_ballot",
+       "VK_EXT_video_encode_h264",
+       "VK_EXT_video_encode_h265",
+       "VK_EXT_video_decode_h264",
+       "VK_AMD_texture_gather_bias_lod",
        "VK_AMD_shader_info",
+       "VK_KHR_dynamic_rendering",
+       "VK_AMD_shader_image_load_store_lod",
+       "VK_NV_corner_sampled_image",
+       "VK_KHR_multiview",
+       "VK_IMG_format_pvrtc",
+       "VK_NV_external_memory",
+       "VK_NV_external_memory_win32",
+       "VK_NV_win32_keyed_mutex",
+       "VK_KHR_device_group",
+       "VK_KHR_shader_draw_parameters",
+       "VK_EXT_shader_subgroup_ballot",
+       "VK_EXT_shader_subgroup_vote",
+       "VK_EXT_texture_compression_astc_hdr",
+       "VK_EXT_astc_decode_mode",
+       "VK_EXT_pipeline_robustness",
+       "VK_KHR_maintenance1",
+       "VK_KHR_external_memory",
+       "VK_KHR_external_memory_win32",
+       "VK_KHR_external_memory_fd",
+       "VK_KHR_win32_keyed_mutex",
+       "VK_KHR_external_semaphore",
+       "VK_KHR_external_semaphore_win32",
+       "VK_KHR_external_semaphore_fd",
+       "VK_KHR_push_descriptor",
        "VK_EXT_conditional_rendering",
+       "VK_KHR_shader_float16_int8",
+       "VK_KHR_16bit_storage",
+       "VK_KHR_incremental_present",
+       "VK_KHR_descriptor_update_template",
        "VK_NV_clip_space_w_scaling",
        "VK_EXT_display_control",
        "VK_GOOGLE_display_timing",
+       "VK_NV_sample_mask_override_coverage",
+       "VK_NV_geometry_shader_passthrough",
+       "VK_NV_viewport_array2",
+       "VK_NVX_multiview_per_view_attributes",
+       "VK_NV_viewport_swizzle",
        "VK_EXT_discard_rectangles",
+       "VK_EXT_conservative_rasterization",
+       "VK_EXT_depth_clip_enable",
        "VK_EXT_hdr_metadata",
-       "VK_EXT_debug_utils",
+       "VK_KHR_imageless_framebuffer",
+       "VK_KHR_create_renderpass2",
+       "VK_KHR_shared_presentable_image",
+       "VK_KHR_external_fence",
+       "VK_KHR_external_fence_win32",
+       "VK_KHR_external_fence_fd",
+       "VK_KHR_performance_query",
+       "VK_KHR_maintenance2",
+       "VK_KHR_variable_pointers",
+       "VK_EXT_external_memory_dma_buf",
+       "VK_EXT_queue_family_foreign",
+       "VK_KHR_dedicated_allocation",
+       "VK_ANDROID_external_memory_android_hardware_buffer",
+       "VK_EXT_sampler_filter_minmax",
+       "VK_KHR_storage_buffer_storage_class",
+       "VK_AMD_gpu_shader_int16",
+       "VK_AMD_mixed_attachment_samples",
+       "VK_AMD_shader_fragment_mask",
+       "VK_EXT_inline_uniform_block",
+       "VK_EXT_shader_stencil_export",
        "VK_EXT_sample_locations",
+       "VK_KHR_relaxed_block_layout",
+       "VK_KHR_get_memory_requirements2",
+       "VK_KHR_image_format_list",
+       "VK_EXT_blend_operation_advanced",
+       "VK_NV_fragment_coverage_to_color",
+       "VK_KHR_acceleration_structure",
+       "VK_KHR_ray_tracing_pipeline",
+       "VK_KHR_ray_query",
+       "VK_NV_framebuffer_mixed_samples",
+       "VK_NV_fill_rectangle",
+       "VK_NV_shader_sm_builtins",
+       "VK_EXT_post_depth_coverage",
+       "VK_KHR_sampler_ycbcr_conversion",
+       "VK_KHR_bind_memory2",
        "VK_EXT_image_drm_format_modifier",
        "VK_EXT_validation_cache",
+       "VK_EXT_descriptor_indexing",
+       "VK_EXT_shader_viewport_index_layer",
+       "VK_KHR_portability_subset",
        "VK_NV_shading_rate_image",
        "VK_NV_ray_tracing",
+       "VK_NV_representative_fragment_test",
+       "VK_KHR_maintenance3",
+       "VK_KHR_draw_indirect_count",
+       "VK_EXT_filter_cubic",
+       "VK_QCOM_render_pass_shader_resolve",
+       "VK_EXT_global_priority",
+       "VK_KHR_shader_subgroup_extended_types",
+       "VK_KHR_8bit_storage",
        "VK_EXT_external_memory_host",
        "VK_AMD_buffer_marker",
+       "VK_KHR_shader_atomic_int64",
+       "VK_KHR_shader_clock",
+       "VK_AMD_pipeline_compiler_control",
+       "VK_EXT_calibrated_timestamps",
+       "VK_AMD_shader_core_properties",
+       "VK_EXT_video_decode_h265",
+       "VK_KHR_global_priority",
+       "VK_AMD_memory_overallocation_behavior",
+       "VK_EXT_vertex_attribute_divisor",
+       "VK_GGP_frame_token",
+       "VK_EXT_pipeline_creation_feedback",
+       "VK_KHR_driver_properties",
+       "VK_KHR_shader_float_controls",
+       "VK_NV_shader_subgroup_partitioned",
+       "VK_KHR_depth_stencil_resolve",
+       "VK_KHR_swapchain_mutable_format",
+       "VK_NV_compute_shader_derivatives",
        "VK_NV_mesh_shader",
+       "VK_NV_fragment_shader_barycentric",
+       "VK_NV_shader_image_footprint",
        "VK_NV_scissor_exclusive",
        "VK_NV_device_diagnostic_checkpoints",
+       "VK_KHR_timeline_semaphore",
+       "VK_INTEL_shader_integer_functions2",
        "VK_INTEL_performance_query",
+       "VK_KHR_vulkan_memory_model",
+       "VK_EXT_pci_bus_info",
        "VK_AMD_display_native_hdr",
+       "VK_KHR_shader_terminate_invocation",
+       "VK_EXT_fragment_density_map",
+       "VK_EXT_scalar_block_layout",
+       "VK_GOOGLE_hlsl_functionality1",
+       "VK_GOOGLE_decorate_string",
+       "VK_EXT_subgroup_size_control",
+       "VK_KHR_fragment_shading_rate",
+       "VK_AMD_shader_core_properties2",
+       "VK_AMD_device_coherent_memory",
+       "VK_EXT_shader_image_atomic_int64",
+       "VK_KHR_spirv_1_4",
+       "VK_EXT_memory_budget",
+       "VK_EXT_memory_priority",
+       "VK_NV_dedicated_allocation_image_aliasing",
+       "VK_KHR_separate_depth_stencil_layouts",
        "VK_EXT_buffer_device_address",
+       "VK_EXT_tooling_info",
+       "VK_EXT_separate_stencil_usage",
+       "VK_KHR_present_wait",
+       "VK_NV_cooperative_matrix",
+       "VK_NV_coverage_reduction_mode",
+       "VK_EXT_fragment_shader_interlock",
+       "VK_EXT_ycbcr_image_arrays",
+       "VK_KHR_uniform_buffer_standard_layout",
+       "VK_EXT_provoking_vertex",
+       "VK_EXT_full_screen_exclusive",
+       "VK_KHR_buffer_device_address",
        "VK_EXT_line_rasterization",
+       "VK_EXT_shader_atomic_float",
        "VK_EXT_host_query_reset",
+       "VK_EXT_index_type_uint8",
        "VK_EXT_extended_dynamic_state",
+       "VK_KHR_deferred_host_operations",
+       "VK_KHR_pipeline_executable_properties",
+       "VK_EXT_shader_atomic_float2",
+       "VK_EXT_shader_demote_to_helper_invocation",
        "VK_NV_device_generated_commands",
+       "VK_NV_inherited_viewport_scissor",
+       "VK_KHR_shader_integer_dot_product",
+       "VK_EXT_texel_buffer_alignment",
+       "VK_QCOM_render_pass_transform",
+       "VK_EXT_device_memory_report",
+       "VK_EXT_robustness2",
+       "VK_EXT_custom_border_color",
+       "VK_GOOGLE_user_type",
+       "VK_KHR_pipeline_library",
+       "VK_KHR_shader_non_semantic_info",
+       "VK_KHR_present_id",
        "VK_EXT_private_data",
+       "VK_EXT_pipeline_creation_cache_control",
+       "VK_KHR_video_encode_queue",
+       "VK_NV_device_diagnostics_config",
+       "VK_QCOM_render_pass_store_ops",
+       "VK_EXT_metal_objects",
+       "VK_KHR_synchronization2",
+       "VK_EXT_graphics_pipeline_library",
+       "VK_AMD_shader_early_and_late_fragment_tests",
+       "VK_KHR_fragment_shader_barycentric",
+       "VK_KHR_shader_subgroup_uniform_control_flow",
+       "VK_KHR_zero_initialize_workgroup_memory",
        "VK_NV_fragment_shading_rate_enums",
+       "VK_NV_ray_tracing_motion_blur",
+       "VK_EXT_ycbcr_2plane_444_formats",
+       "VK_EXT_fragment_density_map2",
+       "VK_QCOM_rotated_copy_commands",
+       "VK_EXT_image_robustness",
+       "VK_KHR_workgroup_memory_explicit_layout",
+       "VK_KHR_copy_commands2",
        "VK_EXT_image_compression_control",
+       "VK_EXT_4444_formats",
+       "VK_ARM_rasterization_order_attachment_access",
+       "VK_EXT_rgba10x6_formats",
+       "VK_NV_acquire_winrt_display",
+       "VK_VALVE_mutable_descriptor_type",
        "VK_EXT_vertex_input_dynamic_state",
+       "VK_EXT_physical_device_drm",
+       "VK_EXT_depth_clip_control",
+       "VK_EXT_primitive_topology_list_restart",
+       "VK_KHR_format_feature_flags2",
+       "VK_FUCHSIA_external_memory",
+       "VK_FUCHSIA_external_semaphore",
+       "VK_FUCHSIA_buffer_collection",
        "VK_HUAWEI_subpass_shading",
        "VK_HUAWEI_invocation_mask",
        "VK_NV_external_memory_rdma",
        "VK_EXT_pipeline_properties",
+       "VK_EXT_multisampled_render_to_single_sampled",
        "VK_EXT_extended_dynamic_state2",
        "VK_EXT_color_write_enable",
+       "VK_EXT_primitives_generated_query",
+       "VK_KHR_ray_tracing_maintenance1",
+       "VK_EXT_global_priority_query",
+       "VK_EXT_image_view_min_lod",
        "VK_EXT_multi_draw",
+       "VK_EXT_image_2d_view_of_3d",
+       "VK_EXT_load_store_op_none",
+       "VK_EXT_border_color_swizzle",
        "VK_EXT_pageable_device_local_memory",
+       "VK_KHR_maintenance4",
        "VK_VALVE_descriptor_set_host_mapping",
+       "VK_EXT_non_seamless_cube_map",
+       "VK_QCOM_fragment_density_map_offset",
+       "VK_NV_linear_color_attachment",
+       "VK_EXT_image_compression_control_swapchain",
+       "VK_QCOM_image_processing",
+       "VK_EXT_subpass_merge_feedback",
        "VK_EXT_shader_module_identifier",
        "VK_QCOM_tile_properties",
-       "VK_KHR_acceleration_structure",
-       "VK_KHR_ray_tracing_pipeline",
-       "VK_ANDROID_external_memory_android_hardware_buffer",
-       "VK_KHR_video_decode_queue",
-       "VK_KHR_video_encode_queue",
-       "VK_FUCHSIA_external_memory",
-       "VK_FUCHSIA_external_semaphore",
-       "VK_FUCHSIA_buffer_collection",
-       "VK_EXT_metal_objects",
-       "VK_KHR_external_memory_win32",
-       "VK_KHR_external_semaphore_win32",
-       "VK_KHR_external_fence_win32",
-       "VK_NV_external_memory_win32"
 };
index 455aa89..8a7ef9a 100644 (file)
@@ -6,20 +6,21 @@
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateInstanceFunc)                                                                                                        (const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyInstanceFunc)                                                                                                       (VkInstance instance, const VkAllocationCallbacks* pAllocator);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumeratePhysicalDevicesFunc)                                                                                      (VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFeaturesFunc)                                                                                     (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFormatPropertiesFunc)                                                                     (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceImageFormatPropertiesFunc)                                                        (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
+typedef VKAPI_ATTR PFN_vkVoidFunction  (VKAPI_CALL* GetDeviceProcAddrFunc)                                                                                                     (VkDevice device, const char* pName);
+typedef VKAPI_ATTR PFN_vkVoidFunction  (VKAPI_CALL* GetInstanceProcAddrFunc)                                                                                           (VkInstance instance, const char* pName);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDevicePropertiesFunc)                                                                           (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceQueueFamilyPropertiesFunc)                                                        (VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceMemoryPropertiesFunc)                                                                     (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
-typedef VKAPI_ATTR PFN_vkVoidFunction  (VKAPI_CALL* GetInstanceProcAddrFunc)                                                                                           (VkInstance instance, const char* pName);
-typedef VKAPI_ATTR PFN_vkVoidFunction  (VKAPI_CALL* GetDeviceProcAddrFunc)                                                                                                     (VkDevice device, const char* pName);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFeaturesFunc)                                                                                     (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFormatPropertiesFunc)                                                                     (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceImageFormatPropertiesFunc)                                                        (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDeviceFunc)                                                                                                          (VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDeviceFunc)                                                                                                         (VkDevice device, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumerateInstanceExtensionPropertiesFunc)                                                          (const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumerateDeviceExtensionPropertiesFunc)                                                            (VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumerateInstanceVersionFunc)                                                                                      (uint32_t* pApiVersion);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumerateInstanceLayerPropertiesFunc)                                                                      (uint32_t* pPropertyCount, VkLayerProperties* pProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumerateInstanceExtensionPropertiesFunc)                                                          (const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumerateDeviceLayerPropertiesFunc)                                                                        (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumerateDeviceExtensionPropertiesFunc)                                                            (VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceQueueFunc)                                                                                                        (VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* QueueSubmitFunc)                                                                                                           (VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* QueueWaitIdleFunc)                                                                                                         (VkQueue queue);
@@ -31,10 +32,10 @@ typedef VKAPI_ATTR void                                     (VKAPI_CALL* UnmapMemoryFunc)                                                                                                           (VkDevice
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* FlushMappedMemoryRangesFunc)                                                                                       (VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* InvalidateMappedMemoryRangesFunc)                                                                          (VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceMemoryCommitmentFunc)                                                                                     (VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindBufferMemoryFunc)                                                                                                      (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindImageMemoryFunc)                                                                                                       (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetBufferMemoryRequirementsFunc)                                                                           (VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindBufferMemoryFunc)                                                                                                      (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageMemoryRequirementsFunc)                                                                            (VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindImageMemoryFunc)                                                                                                       (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageSparseMemoryRequirementsFunc)                                                                      (VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceSparseImageFormatPropertiesFunc)                                          (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* QueueBindSparseFunc)                                                                                                       (VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
@@ -53,6 +54,8 @@ typedef VKAPI_ATTR VkResult                           (VKAPI_CALL* ResetEventFunc)                                                                                                            (VkDevi
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateQueryPoolFunc)                                                                                                       (VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyQueryPoolFunc)                                                                                                      (VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetQueryPoolResultsFunc)                                                                                           (VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* ResetQueryPoolFunc)                                                                                                        (VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* ResetQueryPoolEXTFunc)                                                                                                     (VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateBufferFunc)                                                                                                          (VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyBufferFunc)                                                                                                         (VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateBufferViewFunc)                                                                                                      (VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
@@ -70,6 +73,7 @@ typedef VKAPI_ATTR VkResult                           (VKAPI_CALL* GetPipelineCacheDataFunc)
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* MergePipelineCachesFunc)                                                                                           (VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateGraphicsPipelinesFunc)                                                                                       (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateComputePipelinesFunc)                                                                                        (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIFunc)                                         (VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyPipelineFunc)                                                                                                       (VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreatePipelineLayoutFunc)                                                                                          (VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyPipelineLayoutFunc)                                                                                         (VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
@@ -111,10 +115,13 @@ typedef VKAPI_ATTR void                                   (VKAPI_CALL* CmdBindIndexBufferFunc)                                                                                            (VkC
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBindVertexBuffersFunc)                                                                                          (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawFunc)                                                                                                                       (VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndexedFunc)                                                                                                        (VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawMultiEXTFunc)                                                                                                       (VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawMultiIndexedEXTFunc)                                                                                        (VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawIndexedInfoEXT* pIndexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride, const int32_t* pVertexOffset);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndirectFunc)                                                                                                       (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndexedIndirectFunc)                                                                                        (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDispatchFunc)                                                                                                           (VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDispatchIndirectFunc)                                                                                           (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSubpassShadingHUAWEIFunc)                                                                                       (VkCommandBuffer commandBuffer);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyBufferFunc)                                                                                                         (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyImageFunc)                                                                                                          (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBlitImageFunc)                                                                                                          (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
@@ -132,6 +139,8 @@ typedef VKAPI_ATTR void                                     (VKAPI_CALL* CmdWaitEventsFunc)                                                                                                         (VkComm
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdPipelineBarrierFunc)                                                                                            (VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginQueryFunc)                                                                                                         (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndQueryFunc)                                                                                                           (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginConditionalRenderingEXTFunc)                                                                       (VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndConditionalRenderingEXTFunc)                                                                         (VkCommandBuffer commandBuffer);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdResetQueryPoolFunc)                                                                                                     (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdWriteTimestampFunc)                                                                                                     (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyQueryPoolResultsFunc)                                                                                       (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
@@ -140,84 +149,15 @@ typedef VKAPI_ATTR void                                   (VKAPI_CALL* CmdBeginRenderPassFunc)                                                                                            (VkC
 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, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumerateInstanceVersionFunc)                                                                                      (uint32_t* pApiVersion);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindBufferMemory2Func)                                                                                                     (VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindImageMemory2Func)                                                                                                      (VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceGroupPeerMemoryFeaturesFunc)                                                                      (VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDeviceMaskFunc)                                                                                                      (VkCommandBuffer commandBuffer, uint32_t deviceMask);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDispatchBaseFunc)                                                                                                       (VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumeratePhysicalDeviceGroupsFunc)                                                                         (VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageMemoryRequirements2Func)                                                                           (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetBufferMemoryRequirements2Func)                                                                          (VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageSparseMemoryRequirements2Func)                                                                     (VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFeatures2Func)                                                                            (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceProperties2Func)                                                                          (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFormatProperties2Func)                                                            (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceImageFormatProperties2Func)                                                       (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceQueueFamilyProperties2Func)                                                       (VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceMemoryProperties2Func)                                                            (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceSparseImageFormatProperties2Func)                                         (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* TrimCommandPoolFunc)                                                                                                       (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceQueue2Func)                                                                                                       (VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateSamplerYcbcrConversionFunc)                                                                          (VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroySamplerYcbcrConversionFunc)                                                                         (VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDescriptorUpdateTemplateFunc)                                                                        (VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDescriptorUpdateTemplateFunc)                                                                       (VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* UpdateDescriptorSetWithTemplateFunc)                                                                       (VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalBufferPropertiesFunc)                                                     (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalFencePropertiesFunc)                                                      (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalSemaphorePropertiesFunc)                                          (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDescriptorSetLayoutSupportFunc)                                                                         (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndirectCountFunc)                                                                                          (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndexedIndirectCountFunc)                                                                           (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateRenderPass2Func)                                                                                                     (VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginRenderPass2Func)                                                                                           (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdNextSubpass2Func)                                                                                                       (VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndRenderPass2Func)                                                                                                     (VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* ResetQueryPoolFunc)                                                                                                        (VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSemaphoreCounterValueFunc)                                                                                      (VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* WaitSemaphoresFunc)                                                                                                        (VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* SignalSemaphoreFunc)                                                                                                       (VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
-typedef VKAPI_ATTR VkDeviceAddress             (VKAPI_CALL* GetBufferDeviceAddressFunc)                                                                                        (VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
-typedef VKAPI_ATTR uint64_t                            (VKAPI_CALL* GetBufferOpaqueCaptureAddressFunc)                                                                         (VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
-typedef VKAPI_ATTR uint64_t                            (VKAPI_CALL* GetDeviceMemoryOpaqueCaptureAddressFunc)                                                           (VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceToolPropertiesFunc)                                                                       (VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreatePrivateDataSlotFunc)                                                                                         (VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyPrivateDataSlotFunc)                                                                                        (VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* SetPrivateDataFunc)                                                                                                        (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPrivateDataFunc)                                                                                                        (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetEvent2Func)                                                                                                          (VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdResetEvent2Func)                                                                                                        (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdWaitEvents2Func)                                                                                                        (VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdPipelineBarrier2Func)                                                                                           (VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdWriteTimestamp2Func)                                                                                            (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* QueueSubmit2Func)                                                                                                          (VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyBuffer2Func)                                                                                                        (VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyImage2Func)                                                                                                         (VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyBufferToImage2Func)                                                                                         (VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyImageToBuffer2Func)                                                                                         (VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBlitImage2Func)                                                                                                         (VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdResolveImage2Func)                                                                                                      (VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginRenderingFunc)                                                                                                     (VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndRenderingFunc)                                                                                                       (VkCommandBuffer commandBuffer);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetCullModeFunc)                                                                                                        (VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetFrontFaceFunc)                                                                                                       (VkCommandBuffer commandBuffer, VkFrontFace frontFace);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetPrimitiveTopologyFunc)                                                                                       (VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetViewportWithCountFunc)                                                                                       (VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetScissorWithCountFunc)                                                                                        (VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBindVertexBuffers2Func)                                                                                         (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDepthTestEnableFunc)                                                                                         (VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDepthWriteEnableFunc)                                                                                        (VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDepthCompareOpFunc)                                                                                          (VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDepthBoundsTestEnableFunc)                                                                           (VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetStencilTestEnableFunc)                                                                                       (VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetStencilOpFunc)                                                                                                       (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetRasterizerDiscardEnableFunc)                                                                         (VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDepthBiasEnableFunc)                                                                                         (VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetPrimitiveRestartEnableFunc)                                                                          (VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceBufferMemoryRequirementsFunc)                                                                     (VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceImageMemoryRequirementsFunc)                                                                      (VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceImageSparseMemoryRequirementsFunc)                                                        (VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateAndroidSurfaceKHRFunc)                                                                                       (VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceDisplayPropertiesKHRFunc)                                                         (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceDisplayPlanePropertiesKHRFunc)                                            (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDisplayPlaneSupportedDisplaysKHRFunc)                                                           (VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDisplayModePropertiesKHRFunc)                                                                           (VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDisplayModeKHRFunc)                                                                                          (VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDisplayPlaneCapabilitiesKHRFunc)                                                                        (VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDisplayPlaneSurfaceKHRFunc)                                                                          (VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateSharedSwapchainsKHRFunc)                                                                                     (VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroySurfaceKHRFunc)                                                                                                     (VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceSupportKHRFunc)                                                            (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceCapabilitiesKHRFunc)                                                       (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
@@ -228,144 +168,152 @@ typedef VKAPI_ATTR void                                 (VKAPI_CALL* DestroySwapchainKHRFunc)                                                                                           (Vk
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSwapchainImagesKHRFunc)                                                                                         (VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AcquireNextImageKHRFunc)                                                                                           (VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* QueuePresentKHRFunc)                                                                                                       (VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
-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, uint32_t* pRectCount, VkRect2D* pRects);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AcquireNextImage2KHRFunc)                                                                                          (VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceDisplayPropertiesKHRFunc)                                                         (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceDisplayPlanePropertiesKHRFunc)                                            (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDisplayPlaneSupportedDisplaysKHRFunc)                                                           (VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDisplayModePropertiesKHRFunc)                                                                           (VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDisplayModeKHRFunc)                                                                                          (VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDisplayPlaneCapabilitiesKHRFunc)                                                                        (VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDisplayPlaneSurfaceKHRFunc)                                                                          (VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateSharedSwapchainsKHRFunc)                                                                                     (VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginRenderingKHRFunc)                                                                                          (VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndRenderingKHRFunc)                                                                                            (VkCommandBuffer commandBuffer);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateViSurfaceNNFunc)                                                                                                     (VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateWaylandSurfaceKHRFunc)                                                                                       (VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR VkBool32                            (VKAPI_CALL* GetPhysicalDeviceWaylandPresentationSupportKHRFunc)                                        (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::WaylandDisplayPtr display);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateWin32SurfaceKHRFunc)                                                                                         (VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR VkBool32                            (VKAPI_CALL* GetPhysicalDeviceWin32PresentationSupportKHRFunc)                                          (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateXlibSurfaceKHRFunc)                                                                                          (VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR VkBool32                            (VKAPI_CALL* GetPhysicalDeviceXlibPresentationSupportKHRFunc)                                           (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::XlibDisplayPtr dpy, pt::XlibVisualID visualID);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateXcbSurfaceKHRFunc)                                                                                           (VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR VkBool32                            (VKAPI_CALL* GetPhysicalDeviceXcbPresentationSupportKHRFunc)                                            (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::XcbConnectionPtr connection, pt::XcbVisualid visual_id);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateImagePipeSurfaceFUCHSIAFunc)                                                                         (VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateStreamDescriptorSurfaceGGPFunc)                                                                      (VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateScreenSurfaceQNXFunc)                                                                                        (VkInstance instance, const VkScreenSurfaceCreateInfoQNX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR VkBool32                            (VKAPI_CALL* GetPhysicalDeviceScreenPresentationSupportQNXFunc)                                         (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::QNXScreenWindowPtr window);
+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, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* DebugMarkerSetObjectNameEXTFunc)                                                                           (VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* DebugMarkerSetObjectTagEXTFunc)                                                                            (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
+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 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 void                                        (VKAPI_CALL* CmdExecuteGeneratedCommandsNVFunc)                                                                         (VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdPreprocessGeneratedCommandsNVFunc)                                                                      (VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBindPipelineShaderGroupNVFunc)                                                                          (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetGeneratedCommandsMemoryRequirementsNVFunc)                                                      (VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateIndirectCommandsLayoutNVFunc)                                                                        (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyIndirectCommandsLayoutNVFunc)                                                                       (VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFeatures2Func)                                                                            (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFeatures2KHRFunc)                                                                         (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceProperties2Func)                                                                          (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceProperties2KHRFunc)                                                                       (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFormatProperties2Func)                                                            (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFormatProperties2KHRFunc)                                                         (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceImageFormatProperties2Func)                                                       (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceImageFormatProperties2KHRFunc)                                            (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceQueueFamilyProperties2Func)                                                       (VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceQueueFamilyProperties2KHRFunc)                                            (VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceMemoryProperties2Func)                                                            (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceMemoryProperties2KHRFunc)                                                         (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceSparseImageFormatProperties2Func)                                         (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceSparseImageFormatProperties2KHRFunc)                                      (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceGroupPeerMemoryFeaturesKHRFunc)                                                           (VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDeviceMaskKHRFunc)                                                                                           (VkCommandBuffer commandBuffer, uint32_t deviceMask);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDispatchBaseKHRFunc)                                                                                            (VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdPushDescriptorSetKHRFunc)                                                                                       (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* TrimCommandPoolFunc)                                                                                                       (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* TrimCommandPoolKHRFunc)                                                                                            (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumeratePhysicalDeviceGroupsKHRFunc)                                                                      (VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalBufferPropertiesFunc)                                                     (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalBufferPropertiesKHRFunc)                                          (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* 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, VkExternalMemoryHandleTypeFlagBits 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, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryZirconHandleFUCHSIAFunc)                                                                          (VkDevice device, const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, pt::zx_handle_t* pZirconHandle);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryZirconHandlePropertiesFUCHSIAFunc)                                                        (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryRemoteAddressNVFunc)                                                                                      (VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalSemaphorePropertiesFunc)                                          (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalSemaphorePropertiesKHRFunc)                                       (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ImportSemaphoreFdKHRFunc)                                                                                          (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSemaphoreWin32HandleKHRFunc)                                                                            (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ImportSemaphoreWin32HandleKHRFunc)                                                                         (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);
 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, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdPushDescriptorSetWithTemplateKHRFunc)                                                           (VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ImportSemaphoreFdKHRFunc)                                                                                          (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSemaphoreZirconHandleFUCHSIAFunc)                                                                       (VkDevice device, const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, pt::zx_handle_t* pZirconHandle);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ImportSemaphoreZirconHandleFUCHSIAFunc)                                                            (VkDevice device, const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalFencePropertiesFunc)                                                      (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalFencePropertiesKHRFunc)                                           (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetFenceWin32HandleKHRFunc)                                                                                        (VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ImportFenceWin32HandleKHRFunc)                                                                                     (VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetFenceFdKHRFunc)                                                                                                         (VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ImportFenceFdKHRFunc)                                                                                                      (VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
+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::RROutput rrOutput, VkDisplayKHR* pDisplay);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AcquireWinrtDisplayNVFunc)                                                                                         (VkPhysicalDevice physicalDevice, VkDisplayKHR display);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetWinrtDisplayNVFunc)                                                                                                     (VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay);
+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, uint64_t* pCounterValue);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceCapabilities2EXTFunc)                                                      (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumeratePhysicalDeviceGroupsFunc)                                                                         (VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumeratePhysicalDeviceGroupsKHRFunc)                                                                      (VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceGroupPeerMemoryFeaturesFunc)                                                                      (VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceGroupPeerMemoryFeaturesKHRFunc)                                                           (VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindBufferMemory2Func)                                                                                                     (VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindBufferMemory2KHRFunc)                                                                                          (VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindImageMemory2Func)                                                                                                      (VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindImageMemory2KHRFunc)                                                                                           (VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDeviceMaskFunc)                                                                                                      (VkCommandBuffer commandBuffer, uint32_t deviceMask);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDeviceMaskKHRFunc)                                                                                           (VkCommandBuffer commandBuffer, uint32_t deviceMask);
+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* AcquireNextImage2KHRFunc)                                                                                          (VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDispatchBaseFunc)                                                                                                       (VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDispatchBaseKHRFunc)                                                                                            (VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDevicePresentRectanglesKHRFunc)                                                         (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDescriptorUpdateTemplateFunc)                                                                        (VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDescriptorUpdateTemplateKHRFunc)                                                                     (VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDescriptorUpdateTemplateFunc)                                                                       (VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDescriptorUpdateTemplateKHRFunc)                                                            (VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* UpdateDescriptorSetWithTemplateFunc)                                                                       (VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* UpdateDescriptorSetWithTemplateKHRFunc)                                                            (VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateRenderPass2KHRFunc)                                                                                          (VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginRenderPass2KHRFunc)                                                                                        (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdNextSubpass2KHRFunc)                                                                                            (VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndRenderPass2KHRFunc)                                                                                          (VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdPushDescriptorSetWithTemplateKHRFunc)                                                           (VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* SetHdrMetadataEXTFunc)                                                                                                     (VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSwapchainStatusKHRFunc)                                                                                         (VkDevice device, VkSwapchainKHR swapchain);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalFencePropertiesKHRFunc)                                           (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
-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* EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRFunc)         (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRFunc)                         (VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AcquireProfilingLockKHRFunc)                                                                                       (VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* ReleaseProfilingLockKHRFunc)                                                                                       (VkDevice device);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetRefreshCycleDurationGOOGLEFunc)                                                                         (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPastPresentationTimingGOOGLEFunc)                                                                       (VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateIOSSurfaceMVKFunc)                                                                                           (VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateMacOSSurfaceMVKFunc)                                                                                         (VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateMetalSurfaceEXTFunc)                                                                                         (VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetViewportWScalingNVFunc)                                                                                      (VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDiscardRectangleEXTFunc)                                                                                     (VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
+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 VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceCapabilities2KHRFunc)                                                      (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceFormats2KHRFunc)                                                           (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceDisplayProperties2KHRFunc)                                                        (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceDisplayPlaneProperties2KHRFunc)                                           (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDisplayModeProperties2KHRFunc)                                                                          (VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDisplayPlaneCapabilities2KHRFunc)                                                                       (VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageMemoryRequirements2KHRFunc)                                                                        (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetBufferMemoryRequirements2Func)                                                                          (VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetBufferMemoryRequirements2KHRFunc)                                                                       (VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageMemoryRequirements2Func)                                                                           (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageMemoryRequirements2KHRFunc)                                                                        (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageSparseMemoryRequirements2Func)                                                                     (VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageSparseMemoryRequirements2KHRFunc)                                                          (VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceBufferMemoryRequirementsFunc)                                                                     (VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceBufferMemoryRequirementsKHRFunc)                                                          (VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceImageMemoryRequirementsFunc)                                                                      (VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceImageMemoryRequirementsKHRFunc)                                                           (VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceImageSparseMemoryRequirementsFunc)                                                        (VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceImageSparseMemoryRequirementsKHRFunc)                                                     (VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateSamplerYcbcrConversionFunc)                                                                          (VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateSamplerYcbcrConversionKHRFunc)                                                                       (VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroySamplerYcbcrConversionFunc)                                                                         (VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroySamplerYcbcrConversionKHRFunc)                                                                      (VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindBufferMemory2KHRFunc)                                                                                          (VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindImageMemory2KHRFunc)                                                                                           (VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDescriptorSetLayoutSupportKHRFunc)                                                                      (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndirectCountKHRFunc)                                                                                       (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndexedIndirectCountKHRFunc)                                                                        (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSemaphoreCounterValueKHRFunc)                                                                           (VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* WaitSemaphoresKHRFunc)                                                                                                     (VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* SignalSemaphoreKHRFunc)                                                                                            (VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceFragmentShadingRatesKHRFunc)                                                      (VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetFragmentShadingRateKHRFunc)                                                                          (VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* WaitForPresentKHRFunc)                                                                                                     (VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout);
-typedef VKAPI_ATTR VkDeviceAddress             (VKAPI_CALL* GetBufferDeviceAddressKHRFunc)                                                                                     (VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
-typedef VKAPI_ATTR uint64_t                            (VKAPI_CALL* GetBufferOpaqueCaptureAddressKHRFunc)                                                                      (VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
-typedef VKAPI_ATTR uint64_t                            (VKAPI_CALL* GetDeviceMemoryOpaqueCaptureAddressKHRFunc)                                                        (VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDeferredOperationKHRFunc)                                                                            (VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDeferredOperationKHRFunc)                                                                           (VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR uint32_t                            (VKAPI_CALL* GetDeferredOperationMaxConcurrencyKHRFunc)                                                         (VkDevice device, VkDeferredOperationKHR operation);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDeferredOperationResultKHRFunc)                                                                         (VkDevice device, VkDeferredOperationKHR operation);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* DeferredOperationJoinKHRFunc)                                                                                      (VkDevice device, VkDeferredOperationKHR operation);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPipelineExecutablePropertiesKHRFunc)                                                            (VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPipelineExecutableStatisticsKHRFunc)                                                            (VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPipelineExecutableInternalRepresentationsKHRFunc)                                       (VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetEvent2KHRFunc)                                                                                                       (VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdResetEvent2KHRFunc)                                                                                                     (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdWaitEvents2KHRFunc)                                                                                                     (VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdPipelineBarrier2KHRFunc)                                                                                        (VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdWriteTimestamp2KHRFunc)                                                                                         (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* QueueSubmit2KHRFunc)                                                                                                       (VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdWriteBufferMarker2AMDFunc)                                                                                      (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetQueueCheckpointData2NVFunc)                                                                                     (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyBuffer2KHRFunc)                                                                                                     (VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyImage2KHRFunc)                                                                                                      (VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyBufferToImage2KHRFunc)                                                                                      (VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyImageToBuffer2KHRFunc)                                                                                      (VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBlitImage2KHRFunc)                                                                                                      (VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdResolveImage2KHRFunc)                                                                                           (VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdTraceRaysIndirect2KHRFunc)                                                                                      (VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceBufferMemoryRequirementsKHRFunc)                                                          (VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceImageMemoryRequirementsKHRFunc)                                                           (VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceImageSparseMemoryRequirementsKHRFunc)                                                     (VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
-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, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage);
-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* CmdBindTransformFeedbackBuffersEXTFunc)                                                            (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginTransformFeedbackEXTFunc)                                                                          (VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndTransformFeedbackEXTFunc)                                                                            (VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginQueryIndexedEXTFunc)                                                                                       (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndQueryIndexedEXTFunc)                                                                                         (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndirectByteCountEXTFunc)                                                                           (VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateCuModuleNVXFunc)                                                                                                     (VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateCuFunctionNVXFunc)                                                                                           (VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyCuModuleNVXFunc)                                                                                            (VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyCuFunctionNVXFunc)                                                                                          (VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCuLaunchKernelNVXFunc)                                                                                          (VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo);
-typedef VKAPI_ATTR uint32_t                            (VKAPI_CALL* GetImageViewHandleNVXFunc)                                                                                         (VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetImageViewAddressNVXFunc)                                                                                        (VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndirectCountAMDFunc)                                                                                       (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndexedIndirectCountAMDFunc)                                                                        (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceQueue2Func)                                                                                                       (VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateValidationCacheEXTFunc)                                                                                      (VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyValidationCacheEXTFunc)                                                                                     (VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetValidationCacheDataEXTFunc)                                                                                     (VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* MergeValidationCachesEXTFunc)                                                                                      (VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDescriptorSetLayoutSupportFunc)                                                                         (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDescriptorSetLayoutSupportKHRFunc)                                                                      (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetShaderInfoAMDFunc)                                                                                                      (VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo);
-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 void                                        (VKAPI_CALL* CmdBeginConditionalRenderingEXTFunc)                                                                       (VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndConditionalRenderingEXTFunc)                                                                         (VkCommandBuffer commandBuffer);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetViewportWScalingNVFunc)                                                                                      (VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ReleaseDisplayEXTFunc)                                                                                                     (VkPhysicalDevice physicalDevice, VkDisplayKHR display);
-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, uint64_t* 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, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDiscardRectangleEXTFunc)                                                                                     (VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* SetHdrMetadataEXTFunc)                                                                                                     (VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* SetLocalDimmingAMDFunc)                                                                                            (VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceCalibrateableTimeDomainsEXTFunc)                                          (VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetCalibratedTimestampsEXTFunc)                                                                            (VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* SetDebugUtilsObjectNameEXTFunc)                                                                            (VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* SetDebugUtilsObjectTagEXTFunc)                                                                                     (VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* QueueBeginDebugUtilsLabelEXTFunc)                                                                          (VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
@@ -377,39 +325,95 @@ typedef VKAPI_ATTR void                                   (VKAPI_CALL* CmdInsertDebugUtilsLabelEXTFunc)
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDebugUtilsMessengerEXTFunc)                                                                          (VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDebugUtilsMessengerEXTFunc)                                                                         (VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* SubmitDebugUtilsMessageEXTFunc)                                                                            (VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
-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 VkResult                            (VKAPI_CALL* GetImageDrmFormatModifierPropertiesEXTFunc)                                                        (VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateValidationCacheEXTFunc)                                                                                      (VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyValidationCacheEXTFunc)                                                                                     (VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* MergeValidationCachesEXTFunc)                                                                                      (VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetValidationCacheDataEXTFunc)                                                                                     (VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryHostPointerPropertiesEXTFunc)                                                                     (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdWriteBufferMarkerAMDFunc)                                                                                       (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateRenderPass2Func)                                                                                                     (VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateRenderPass2KHRFunc)                                                                                          (VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginRenderPass2Func)                                                                                           (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginRenderPass2KHRFunc)                                                                                        (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdNextSubpass2Func)                                                                                                       (VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdNextSubpass2KHRFunc)                                                                                            (VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndRenderPass2Func)                                                                                                     (VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndRenderPass2KHRFunc)                                                                                          (VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSemaphoreCounterValueFunc)                                                                                      (VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSemaphoreCounterValueKHRFunc)                                                                           (VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* WaitSemaphoresFunc)                                                                                                        (VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* WaitSemaphoresKHRFunc)                                                                                                     (VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* SignalSemaphoreFunc)                                                                                                       (VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* SignalSemaphoreKHRFunc)                                                                                            (VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetAndroidHardwareBufferPropertiesANDROIDFunc)                                                     (VkDevice device, const struct pt::AndroidHardwareBufferPtr buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryAndroidHardwareBufferANDROIDFunc)                                                         (VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct pt::AndroidHardwareBufferPtr* pBuffer);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndirectCountFunc)                                                                                          (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndirectCountKHRFunc)                                                                                       (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndirectCountAMDFunc)                                                                                       (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndexedIndirectCountFunc)                                                                           (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndexedIndirectCountKHRFunc)                                                                        (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndexedIndirectCountAMDFunc)                                                                        (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetCheckpointNVFunc)                                                                                            (VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetQueueCheckpointDataNVFunc)                                                                                      (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBindTransformFeedbackBuffersEXTFunc)                                                            (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginTransformFeedbackEXTFunc)                                                                          (VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndTransformFeedbackEXTFunc)                                                                            (VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginQueryIndexedEXTFunc)                                                                                       (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndQueryIndexedEXTFunc)                                                                                         (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndirectByteCountEXTFunc)                                                                           (VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetExclusiveScissorNVFunc)                                                                                      (VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBindShadingRateImageNVFunc)                                                                                     (VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetViewportShadingRatePaletteNVFunc)                                                            (VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetCoarseSampleOrderNVFunc)                                                                                     (VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawMeshTasksNVFunc)                                                                                            (VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawMeshTasksIndirectNVFunc)                                                                            (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawMeshTasksIndirectCountNVFunc)                                                                       (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CompileDeferredNVFunc)                                                                                                     (VkDevice device, VkPipeline pipeline, uint32_t shader);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateAccelerationStructureNVFunc)                                                                         (VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBindInvocationMaskHUAWEIFunc)                                                                           (VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyAccelerationStructureKHRFunc)                                                                       (VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyAccelerationStructureNVFunc)                                                                        (VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetAccelerationStructureMemoryRequirementsNVFunc)                                          (VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindAccelerationStructureMemoryNVFunc)                                                                     (VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBuildAccelerationStructureNVFunc)                                                                       (VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyAccelerationStructureNVFunc)                                                                        (VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyAccelerationStructureKHRFunc)                                                                       (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CopyAccelerationStructureKHRFunc)                                                                          (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyAccelerationStructureToMemoryKHRFunc)                                                       (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CopyAccelerationStructureToMemoryKHRFunc)                                                          (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyMemoryToAccelerationStructureKHRFunc)                                                       (VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CopyMemoryToAccelerationStructureKHRFunc)                                                          (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdWriteAccelerationStructuresPropertiesKHRFunc)                                           (VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdWriteAccelerationStructuresPropertiesNVFunc)                                            (VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBuildAccelerationStructureNVFunc)                                                                       (VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* WriteAccelerationStructuresPropertiesKHRFunc)                                                      (VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdTraceRaysKHRFunc)                                                                                                       (VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdTraceRaysNVFunc)                                                                                                        (VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateRayTracingPipelinesNVFunc)                                                                           (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetRayTracingShaderGroupHandlesKHRFunc)                                                            (VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetRayTracingShaderGroupHandlesNVFunc)                                                                     (VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetRayTracingCaptureReplayShaderGroupHandlesKHRFunc)                                       (VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetAccelerationStructureHandleNVFunc)                                                                      (VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdWriteAccelerationStructuresPropertiesNVFunc)                                            (VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CompileDeferredNVFunc)                                                                                                     (VkDevice device, VkPipeline pipeline, uint32_t shader);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryHostPointerPropertiesEXTFunc)                                                                     (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdWriteBufferMarkerAMDFunc)                                                                                       (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceCalibrateableTimeDomainsEXTFunc)                                          (VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetCalibratedTimestampsEXTFunc)                                                                            (VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawMeshTasksNVFunc)                                                                                            (VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawMeshTasksIndirectNVFunc)                                                                            (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawMeshTasksIndirectCountNVFunc)                                                                       (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetExclusiveScissorNVFunc)                                                                                      (VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetCheckpointNVFunc)                                                                                            (VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetQueueCheckpointDataNVFunc)                                                                                      (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateRayTracingPipelinesNVFunc)                                                                           (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateRayTracingPipelinesKHRFunc)                                                                          (VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceCooperativeMatrixPropertiesNVFunc)                                        (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdTraceRaysIndirectKHRFunc)                                                                                       (VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdTraceRaysIndirect2KHRFunc)                                                                                      (VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceAccelerationStructureCompatibilityKHRFunc)                                        (VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
+typedef VKAPI_ATTR VkDeviceSize                        (VKAPI_CALL* GetRayTracingShaderGroupStackSizeKHRFunc)                                                          (VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetRayTracingPipelineStackSizeKHRFunc)                                                          (VkCommandBuffer commandBuffer, uint32_t pipelineStackSize);
+typedef VKAPI_ATTR uint32_t                            (VKAPI_CALL* GetImageViewHandleNVXFunc)                                                                                         (VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetImageViewAddressNVXFunc)                                                                                        (VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfacePresentModes2EXTFunc)                                                      (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDeviceGroupSurfacePresentModes2EXTFunc)                                                         (VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AcquireFullScreenExclusiveModeEXTFunc)                                                                     (VkDevice device, VkSwapchainKHR swapchain);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ReleaseFullScreenExclusiveModeEXTFunc)                                                                     (VkDevice device, VkSwapchainKHR swapchain);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRFunc)         (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRFunc)                         (VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AcquireProfilingLockKHRFunc)                                                                                       (VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* ReleaseProfilingLockKHRFunc)                                                                                       (VkDevice device);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetImageDrmFormatModifierPropertiesEXTFunc)                                                        (VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
+typedef VKAPI_ATTR uint64_t                            (VKAPI_CALL* GetBufferOpaqueCaptureAddressFunc)                                                                         (VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
+typedef VKAPI_ATTR uint64_t                            (VKAPI_CALL* GetBufferOpaqueCaptureAddressKHRFunc)                                                                      (VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
+typedef VKAPI_ATTR VkDeviceAddress             (VKAPI_CALL* GetBufferDeviceAddressFunc)                                                                                        (VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
+typedef VKAPI_ATTR VkDeviceAddress             (VKAPI_CALL* GetBufferDeviceAddressKHRFunc)                                                                                     (VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
+typedef VKAPI_ATTR VkDeviceAddress             (VKAPI_CALL* GetBufferDeviceAddressEXTFunc)                                                                                     (VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateHeadlessSurfaceEXTFunc)                                                                                      (VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVFunc)       (VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* InitializePerformanceApiINTELFunc)                                                                         (VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* UninitializePerformanceApiINTELFunc)                                                                       (VkDevice device);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CmdSetPerformanceMarkerINTELFunc)                                                                          (VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
@@ -419,136 +423,134 @@ typedef VKAPI_ATTR VkResult                             (VKAPI_CALL* AcquirePerformanceConfigurationINTEL
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ReleasePerformanceConfigurationINTELFunc)                                                          (VkDevice device, VkPerformanceConfigurationINTEL configuration);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* QueueSetPerformanceConfigurationINTELFunc)                                                         (VkQueue queue, VkPerformanceConfigurationINTEL configuration);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPerformanceParameterINTELFunc)                                                                          (VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* SetLocalDimmingAMDFunc)                                                                                            (VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
-typedef VKAPI_ATTR VkDeviceAddress             (VKAPI_CALL* GetBufferDeviceAddressEXTFunc)                                                                                     (VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceToolPropertiesEXTFunc)                                                            (VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceCooperativeMatrixPropertiesNVFunc)                                        (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVFunc)       (VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateHeadlessSurfaceEXTFunc)                                                                                      (VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR uint64_t                            (VKAPI_CALL* GetDeviceMemoryOpaqueCaptureAddressFunc)                                                           (VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
+typedef VKAPI_ATTR uint64_t                            (VKAPI_CALL* GetDeviceMemoryOpaqueCaptureAddressKHRFunc)                                                        (VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPipelineExecutablePropertiesKHRFunc)                                                            (VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPipelineExecutableStatisticsKHRFunc)                                                            (VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPipelineExecutableInternalRepresentationsKHRFunc)                                       (VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetLineStippleEXTFunc)                                                                                          (VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* ResetQueryPoolEXTFunc)                                                                                                     (VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceToolPropertiesFunc)                                                                       (VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceToolPropertiesEXTFunc)                                                            (VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateAccelerationStructureKHRFunc)                                                                        (VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBuildAccelerationStructuresKHRFunc)                                                                     (VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBuildAccelerationStructuresIndirectKHRFunc)                                                     (VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const* ppMaxPrimitiveCounts);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BuildAccelerationStructuresKHRFunc)                                                                        (VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
+typedef VKAPI_ATTR VkDeviceAddress             (VKAPI_CALL* GetAccelerationStructureDeviceAddressKHRFunc)                                                      (VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDeferredOperationKHRFunc)                                                                            (VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDeferredOperationKHRFunc)                                                                           (VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR uint32_t                            (VKAPI_CALL* GetDeferredOperationMaxConcurrencyKHRFunc)                                                         (VkDevice device, VkDeferredOperationKHR operation);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDeferredOperationResultKHRFunc)                                                                         (VkDevice device, VkDeferredOperationKHR operation);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* DeferredOperationJoinKHRFunc)                                                                                      (VkDevice device, VkDeferredOperationKHR operation);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetCullModeFunc)                                                                                                        (VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetCullModeEXTFunc)                                                                                                     (VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetFrontFaceFunc)                                                                                                       (VkCommandBuffer commandBuffer, VkFrontFace frontFace);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetFrontFaceEXTFunc)                                                                                            (VkCommandBuffer commandBuffer, VkFrontFace frontFace);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetPrimitiveTopologyFunc)                                                                                       (VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetPrimitiveTopologyEXTFunc)                                                                            (VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetViewportWithCountFunc)                                                                                       (VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetViewportWithCountEXTFunc)                                                                            (VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetScissorWithCountFunc)                                                                                        (VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetScissorWithCountEXTFunc)                                                                                     (VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBindVertexBuffers2Func)                                                                                         (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBindVertexBuffers2EXTFunc)                                                                                      (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDepthTestEnableFunc)                                                                                         (VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDepthTestEnableEXTFunc)                                                                                      (VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDepthWriteEnableFunc)                                                                                        (VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDepthWriteEnableEXTFunc)                                                                                     (VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDepthCompareOpFunc)                                                                                          (VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDepthCompareOpEXTFunc)                                                                                       (VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDepthBoundsTestEnableFunc)                                                                           (VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDepthBoundsTestEnableEXTFunc)                                                                        (VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetStencilTestEnableFunc)                                                                                       (VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetStencilTestEnableEXTFunc)                                                                            (VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetStencilOpFunc)                                                                                                       (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetStencilOpEXTFunc)                                                                                            (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetGeneratedCommandsMemoryRequirementsNVFunc)                                                      (VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdPreprocessGeneratedCommandsNVFunc)                                                                      (VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdExecuteGeneratedCommandsNVFunc)                                                                         (VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBindPipelineShaderGroupNVFunc)                                                                          (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateIndirectCommandsLayoutNVFunc)                                                                        (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyIndirectCommandsLayoutNVFunc)                                                                       (VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AcquireDrmDisplayEXTFunc)                                                                                          (VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDrmDisplayEXTFunc)                                                                                                      (VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetPatchControlPointsEXTFunc)                                                                           (VkCommandBuffer commandBuffer, uint32_t patchControlPoints);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetRasterizerDiscardEnableFunc)                                                                         (VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetRasterizerDiscardEnableEXTFunc)                                                                      (VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDepthBiasEnableFunc)                                                                                         (VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDepthBiasEnableEXTFunc)                                                                                      (VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetLogicOpEXTFunc)                                                                                                      (VkCommandBuffer commandBuffer, VkLogicOp logicOp);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetPrimitiveRestartEnableFunc)                                                                          (VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetPrimitiveRestartEnableEXTFunc)                                                                       (VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreatePrivateDataSlotFunc)                                                                                         (VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreatePrivateDataSlotEXTFunc)                                                                                      (VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyPrivateDataSlotFunc)                                                                                        (VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyPrivateDataSlotEXTFunc)                                                                                     (VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* SetPrivateDataFunc)                                                                                                        (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* SetPrivateDataEXTFunc)                                                                                                     (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPrivateDataFunc)                                                                                                        (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPrivateDataEXTFunc)                                                                                                     (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyBuffer2Func)                                                                                                        (VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyBuffer2KHRFunc)                                                                                                     (VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyImage2Func)                                                                                                         (VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyImage2KHRFunc)                                                                                                      (VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBlitImage2Func)                                                                                                         (VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBlitImage2KHRFunc)                                                                                                      (VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyBufferToImage2Func)                                                                                         (VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyBufferToImage2KHRFunc)                                                                                      (VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyImageToBuffer2Func)                                                                                         (VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyImageToBuffer2KHRFunc)                                                                                      (VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdResolveImage2Func)                                                                                                      (VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdResolveImage2KHRFunc)                                                                                           (VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetFragmentShadingRateKHRFunc)                                                                          (VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceFragmentShadingRatesKHRFunc)                                                      (VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetFragmentShadingRateEnumNVFunc)                                                                       (VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageSubresourceLayout2EXTFunc)                                                                         (VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AcquireWinrtDisplayNVFunc)                                                                                         (VkPhysicalDevice physicalDevice, VkDisplayKHR display);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetWinrtDisplayNVFunc)                                                                                                     (VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetAccelerationStructureBuildSizesKHRFunc)                                                         (VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetVertexInputEXTFunc)                                                                                          (VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIFunc)                                         (VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSubpassShadingHUAWEIFunc)                                                                                       (VkCommandBuffer commandBuffer);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBindInvocationMaskHUAWEIFunc)                                                                           (VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryRemoteAddressNVFunc)                                                                                      (VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPipelinePropertiesEXTFunc)                                                                                      (VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetPatchControlPointsEXTFunc)                                                                           (VkCommandBuffer commandBuffer, uint32_t patchControlPoints);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetRasterizerDiscardEnableEXTFunc)                                                                      (VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDepthBiasEnableEXTFunc)                                                                                      (VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetLogicOpEXTFunc)                                                                                                      (VkCommandBuffer commandBuffer, VkLogicOp logicOp);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetPrimitiveRestartEnableEXTFunc)                                                                       (VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetColorWriteEnableEXTFunc)                                                                                     (VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawMultiEXTFunc)                                                                                                       (VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawMultiIndexedEXTFunc)                                                                                        (VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawIndexedInfoEXT* pIndexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride, const int32_t* pVertexOffset);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* SetDeviceMemoryPriorityEXTFunc)                                                                            (VkDevice device, VkDeviceMemory memory, float priority);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDescriptorSetLayoutHostMappingInfoVALVEFunc)                                            (VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDescriptorSetHostMappingVALVEFunc)                                                                      (VkDevice device, VkDescriptorSet descriptorSet, void** ppData);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetShaderModuleIdentifierEXTFunc)                                                                          (VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetShaderModuleCreateInfoIdentifierEXTFunc)                                                        (VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetFramebufferTilePropertiesQCOMFunc)                                                                      (VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDynamicRenderingTilePropertiesQCOMFunc)                                                         (VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateAccelerationStructureKHRFunc)                                                                        (VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyAccelerationStructureKHRFunc)                                                                       (VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBuildAccelerationStructuresKHRFunc)                                                                     (VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBuildAccelerationStructuresIndirectKHRFunc)                                                     (VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const* ppMaxPrimitiveCounts);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BuildAccelerationStructuresKHRFunc)                                                                        (VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CopyAccelerationStructureKHRFunc)                                                                          (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CopyAccelerationStructureToMemoryKHRFunc)                                                          (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CopyMemoryToAccelerationStructureKHRFunc)                                                          (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* WriteAccelerationStructuresPropertiesKHRFunc)                                                      (VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyAccelerationStructureKHRFunc)                                                                       (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyAccelerationStructureToMemoryKHRFunc)                                                       (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyMemoryToAccelerationStructureKHRFunc)                                                       (VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
-typedef VKAPI_ATTR VkDeviceAddress             (VKAPI_CALL* GetAccelerationStructureDeviceAddressKHRFunc)                                                      (VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdWriteAccelerationStructuresPropertiesKHRFunc)                                           (VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceAccelerationStructureCompatibilityKHRFunc)                                        (VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetAccelerationStructureBuildSizesKHRFunc)                                                         (VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdTraceRaysKHRFunc)                                                                                                       (VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateRayTracingPipelinesKHRFunc)                                                                          (VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetRayTracingCaptureReplayShaderGroupHandlesKHRFunc)                                       (VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdTraceRaysIndirectKHRFunc)                                                                                       (VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress);
-typedef VKAPI_ATTR VkDeviceSize                        (VKAPI_CALL* GetRayTracingShaderGroupStackSizeKHRFunc)                                                          (VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetRayTracingPipelineStackSizeKHRFunc)                                                          (VkCommandBuffer commandBuffer, uint32_t pipelineStackSize);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateAndroidSurfaceKHRFunc)                                                                                       (VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetAndroidHardwareBufferPropertiesANDROIDFunc)                                                     (VkDevice device, const struct pt::AndroidHardwareBufferPtr buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryAndroidHardwareBufferANDROIDFunc)                                                         (VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct pt::AndroidHardwareBufferPtr* pBuffer);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetEvent2Func)                                                                                                          (VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetEvent2KHRFunc)                                                                                                       (VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdResetEvent2Func)                                                                                                        (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdResetEvent2KHRFunc)                                                                                                     (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdWaitEvents2Func)                                                                                                        (VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdWaitEvents2KHRFunc)                                                                                                     (VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdPipelineBarrier2Func)                                                                                           (VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdPipelineBarrier2KHRFunc)                                                                                        (VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* QueueSubmit2Func)                                                                                                          (VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* QueueSubmit2KHRFunc)                                                                                                       (VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdWriteTimestamp2Func)                                                                                            (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdWriteTimestamp2KHRFunc)                                                                                         (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdWriteBufferMarker2AMDFunc)                                                                                      (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetQueueCheckpointData2NVFunc)                                                                                     (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceVideoCapabilitiesKHRFunc)                                                         (VkPhysicalDevice physicalDevice, const VkVideoProfileKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceVideoFormatPropertiesKHRFunc)                                                     (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateVideoSessionKHRFunc)                                                                                         (VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyVideoSessionKHRFunc)                                                                                        (VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetVideoSessionMemoryRequirementsKHRFunc)                                                          (VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pVideoSessionMemoryRequirementsCount, VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindVideoSessionMemoryKHRFunc)                                                                                     (VkDevice device, VkVideoSessionKHR videoSession, uint32_t videoSessionBindMemoryCount, const VkVideoBindMemoryKHR* pVideoSessionBindMemories);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateVideoSessionParametersKHRFunc)                                                                       (VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* UpdateVideoSessionParametersKHRFunc)                                                                       (VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyVideoSessionParametersKHRFunc)                                                                      (VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetVideoSessionMemoryRequirementsKHRFunc)                                                          (VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pVideoSessionMemoryRequirementsCount, VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindVideoSessionMemoryKHRFunc)                                                                                     (VkDevice device, VkVideoSessionKHR videoSession, uint32_t videoSessionBindMemoryCount, const VkVideoBindMemoryKHR* pVideoSessionBindMemories);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDecodeVideoKHRFunc)                                                                                                     (VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pFrameInfo);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginVideoCodingKHRFunc)                                                                                        (VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndVideoCodingKHRFunc)                                                                                          (VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdControlVideoCodingKHRFunc)                                                                                      (VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDecodeVideoKHRFunc)                                                                                                     (VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pFrameInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndVideoCodingKHRFunc)                                                                                          (VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEncodeVideoKHRFunc)                                                                                                     (VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateImagePipeSurfaceFUCHSIAFunc)                                                                         (VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryZirconHandleFUCHSIAFunc)                                                                          (VkDevice device, const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, pt::zx_handle_t* pZirconHandle);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryZirconHandlePropertiesFUCHSIAFunc)                                                        (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ImportSemaphoreZirconHandleFUCHSIAFunc)                                                            (VkDevice device, const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSemaphoreZirconHandleFUCHSIAFunc)                                                                       (VkDevice device, const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, pt::zx_handle_t* pZirconHandle);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateCuModuleNVXFunc)                                                                                                     (VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateCuFunctionNVXFunc)                                                                                           (VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyCuModuleNVXFunc)                                                                                            (VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyCuFunctionNVXFunc)                                                                                          (VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCuLaunchKernelNVXFunc)                                                                                          (VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* SetDeviceMemoryPriorityEXTFunc)                                                                            (VkDevice device, VkDeviceMemory memory, float priority);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AcquireDrmDisplayEXTFunc)                                                                                          (VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDrmDisplayEXTFunc)                                                                                                      (VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* WaitForPresentKHRFunc)                                                                                                     (VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateBufferCollectionFUCHSIAFunc)                                                                         (VkDevice device, const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferCollectionFUCHSIA* pCollection);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* SetBufferCollectionImageConstraintsFUCHSIAFunc)                                            (VkDevice device, VkBufferCollectionFUCHSIA collection, const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* SetBufferCollectionBufferConstraintsFUCHSIAFunc)                                           (VkDevice device, VkBufferCollectionFUCHSIA collection, const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* SetBufferCollectionImageConstraintsFUCHSIAFunc)                                            (VkDevice device, VkBufferCollectionFUCHSIA collection, const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyBufferCollectionFUCHSIAFunc)                                                                        (VkDevice device, VkBufferCollectionFUCHSIA collection, const VkAllocationCallbacks* pAllocator);
 typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetBufferCollectionPropertiesFUCHSIAFunc)                                                          (VkDevice device, VkBufferCollectionFUCHSIA collection, VkBufferCollectionPropertiesFUCHSIA* pProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateStreamDescriptorSurfaceGGPFunc)                                                                      (VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateIOSSurfaceMVKFunc)                                                                                           (VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateMacOSSurfaceMVKFunc)                                                                                         (VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateMetalSurfaceEXTFunc)                                                                                         (VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginRenderingFunc)                                                                                                     (VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginRenderingKHRFunc)                                                                                          (VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndRenderingFunc)                                                                                                       (VkCommandBuffer commandBuffer);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndRenderingKHRFunc)                                                                                            (VkCommandBuffer commandBuffer);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDescriptorSetLayoutHostMappingInfoVALVEFunc)                                            (VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDescriptorSetHostMappingVALVEFunc)                                                                      (VkDevice device, VkDescriptorSet descriptorSet, void** ppData);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetShaderModuleIdentifierEXTFunc)                                                                          (VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetShaderModuleCreateInfoIdentifierEXTFunc)                                                        (VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageSubresourceLayout2EXTFunc)                                                                         (VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPipelinePropertiesEXTFunc)                                                                                      (VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties);
 typedef VKAPI_ATTR void                                        (VKAPI_CALL* ExportMetalObjectsEXTFunc)                                                                                         (VkDevice device, VkExportMetalObjectsInfoEXT* pMetalObjectsInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateViSurfaceNNFunc)                                                                                                     (VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateWaylandSurfaceKHRFunc)                                                                                       (VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
-typedef VKAPI_ATTR VkBool32                            (VKAPI_CALL* GetPhysicalDeviceWaylandPresentationSupportKHRFunc)                                        (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::WaylandDisplayPtr display);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateWin32SurfaceKHRFunc)                                                                                         (VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
-typedef VKAPI_ATTR VkBool32                            (VKAPI_CALL* GetPhysicalDeviceWin32PresentationSupportKHRFunc)                                          (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryWin32HandleKHRFunc)                                                                                       (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryWin32HandlePropertiesKHRFunc)                                                                     (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties);
-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* 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* GetMemoryWin32HandleNVFunc)                                                                                        (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfacePresentModes2EXTFunc)                                                      (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AcquireFullScreenExclusiveModeEXTFunc)                                                                     (VkDevice device, VkSwapchainKHR swapchain);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ReleaseFullScreenExclusiveModeEXTFunc)                                                                     (VkDevice device, VkSwapchainKHR swapchain);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDeviceGroupSurfacePresentModes2EXTFunc)                                                         (VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateXcbSurfaceKHRFunc)                                                                                           (VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
-typedef VKAPI_ATTR VkBool32                            (VKAPI_CALL* GetPhysicalDeviceXcbPresentationSupportKHRFunc)                                            (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::XcbConnectionPtr connection, pt::XcbVisualid visual_id);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateXlibSurfaceKHRFunc)                                                                                          (VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
-typedef VKAPI_ATTR VkBool32                            (VKAPI_CALL* GetPhysicalDeviceXlibPresentationSupportKHRFunc)                                           (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::XlibDisplayPtr dpy, pt::XlibVisualID visualID);
-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::RROutput rrOutput, VkDisplayKHR* pDisplay);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetFramebufferTilePropertiesQCOMFunc)                                                                      (VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDynamicRenderingTilePropertiesQCOMFunc)                                                         (VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties);
index d2509a8..0fe50e1 100644 (file)
@@ -3,31 +3,11 @@
  * This file was generated by /scripts/gen_framework.py
  */
 
-template<> VkStructureType getStructureType<VkBufferMemoryBarrier> (void)
-{
-       return VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER;
-}
-
-template<> VkStructureType getStructureType<VkImageMemoryBarrier> (void)
-{
-       return VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
-}
-
-template<> VkStructureType getStructureType<VkMemoryBarrier> (void)
-{
-       return VK_STRUCTURE_TYPE_MEMORY_BARRIER;
-}
-
 template<> VkStructureType getStructureType<VkApplicationInfo> (void)
 {
        return VK_STRUCTURE_TYPE_APPLICATION_INFO;
 }
 
-template<> VkStructureType getStructureType<VkInstanceCreateInfo> (void)
-{
-       return VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
-}
-
 template<> VkStructureType getStructureType<VkDeviceQueueCreateInfo> (void)
 {
        return VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
@@ -38,54 +18,54 @@ template<> VkStructureType getStructureType<VkDeviceCreateInfo> (void)
        return VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkSubmitInfo> (void)
+template<> VkStructureType getStructureType<VkInstanceCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_SUBMIT_INFO;
+       return VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkMappedMemoryRange> (void)
+template<> VkStructureType getStructureType<VkMemoryAllocateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE;
+       return VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkMemoryAllocateInfo> (void)
+template<> VkStructureType getStructureType<VkMappedMemoryRange> (void)
 {
-       return VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
+       return VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE;
 }
 
-template<> VkStructureType getStructureType<VkBindSparseInfo> (void)
+template<> VkStructureType getStructureType<VkWriteDescriptorSet> (void)
 {
-       return VK_STRUCTURE_TYPE_BIND_SPARSE_INFO;
+       return VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
 }
 
-template<> VkStructureType getStructureType<VkFenceCreateInfo> (void)
+template<> VkStructureType getStructureType<VkCopyDescriptorSet> (void)
 {
-       return VK_STRUCTURE_TYPE_FENCE_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET;
 }
 
-template<> VkStructureType getStructureType<VkSemaphoreCreateInfo> (void)
+template<> VkStructureType getStructureType<VkBufferCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkEventCreateInfo> (void)
+template<> VkStructureType getStructureType<VkBufferViewCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_EVENT_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkQueryPoolCreateInfo> (void)
+template<> VkStructureType getStructureType<VkMemoryBarrier> (void)
 {
-       return VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_MEMORY_BARRIER;
 }
 
-template<> VkStructureType getStructureType<VkBufferCreateInfo> (void)
+template<> VkStructureType getStructureType<VkBufferMemoryBarrier> (void)
 {
-       return VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER;
 }
 
-template<> VkStructureType getStructureType<VkBufferViewCreateInfo> (void)
+template<> VkStructureType getStructureType<VkImageMemoryBarrier> (void)
 {
-       return VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
 }
 
 template<> VkStructureType getStructureType<VkImageCreateInfo> (void)
@@ -98,14 +78,29 @@ template<> VkStructureType getStructureType<VkImageViewCreateInfo> (void)
        return VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
 }
 
+template<> VkStructureType getStructureType<VkBindSparseInfo> (void)
+{
+       return VK_STRUCTURE_TYPE_BIND_SPARSE_INFO;
+}
+
 template<> VkStructureType getStructureType<VkShaderModuleCreateInfo> (void)
 {
        return VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPipelineCacheCreateInfo> (void)
+template<> VkStructureType getStructureType<VkDescriptorSetLayoutCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
+}
+
+template<> VkStructureType getStructureType<VkDescriptorPoolCreateInfo> (void)
+{
+       return VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
+}
+
+template<> VkStructureType getStructureType<VkDescriptorSetAllocateInfo> (void)
+{
+       return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
 }
 
 template<> VkStructureType getStructureType<VkPipelineShaderStageCreateInfo> (void)
@@ -148,11 +143,6 @@ template<> VkStructureType getStructureType<VkPipelineMultisampleStateCreateInfo
        return VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPipelineDepthStencilStateCreateInfo> (void)
-{
-       return VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO;
-}
-
 template<> VkStructureType getStructureType<VkPipelineColorBlendStateCreateInfo> (void)
 {
        return VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO;
@@ -163,11 +153,21 @@ template<> VkStructureType getStructureType<VkPipelineDynamicStateCreateInfo> (v
        return VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO;
 }
 
+template<> VkStructureType getStructureType<VkPipelineDepthStencilStateCreateInfo> (void)
+{
+       return VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO;
+}
+
 template<> VkStructureType getStructureType<VkGraphicsPipelineCreateInfo> (void)
 {
        return VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;
 }
 
+template<> VkStructureType getStructureType<VkPipelineCacheCreateInfo> (void)
+{
+       return VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO;
+}
+
 template<> VkStructureType getStructureType<VkPipelineLayoutCreateInfo> (void)
 {
        return VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
@@ -178,34 +178,29 @@ template<> VkStructureType getStructureType<VkSamplerCreateInfo> (void)
        return VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkCopyDescriptorSet> (void)
-{
-       return VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET;
-}
-
-template<> VkStructureType getStructureType<VkDescriptorPoolCreateInfo> (void)
+template<> VkStructureType getStructureType<VkCommandPoolCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkDescriptorSetAllocateInfo> (void)
+template<> VkStructureType getStructureType<VkCommandBufferAllocateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
+       return VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkDescriptorSetLayoutCreateInfo> (void)
+template<> VkStructureType getStructureType<VkCommandBufferInheritanceInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkWriteDescriptorSet> (void)
+template<> VkStructureType getStructureType<VkCommandBufferBeginInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
+       return VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
 }
 
-template<> VkStructureType getStructureType<VkFramebufferCreateInfo> (void)
+template<> VkStructureType getStructureType<VkRenderPassBeginInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
 }
 
 template<> VkStructureType getStructureType<VkRenderPassCreateInfo> (void)
@@ -213,269 +208,304 @@ template<> VkStructureType getStructureType<VkRenderPassCreateInfo> (void)
        return VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkCommandPoolCreateInfo> (void)
+template<> VkStructureType getStructureType<VkEventCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_EVENT_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkCommandBufferAllocateInfo> (void)
+template<> VkStructureType getStructureType<VkFenceCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
+       return VK_STRUCTURE_TYPE_FENCE_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkCommandBufferInheritanceInfo> (void)
+template<> VkStructureType getStructureType<VkSemaphoreCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO;
+       return VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkCommandBufferBeginInfo> (void)
+template<> VkStructureType getStructureType<VkQueryPoolCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
+       return VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkRenderPassBeginInfo> (void)
+template<> VkStructureType getStructureType<VkFramebufferCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
+       return VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceSubgroupProperties> (void)
+template<> VkStructureType getStructureType<VkSubmitInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
+       return VK_STRUCTURE_TYPE_SUBMIT_INFO;
 }
 
-template<> VkStructureType getStructureType<VkBindBufferMemoryInfo> (void)
+template<> VkStructureType getStructureType<VkDisplayModeCreateInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO;
+       return VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkBindImageMemoryInfo> (void)
+template<> VkStructureType getStructureType<VkDisplaySurfaceCreateInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO;
+       return VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDevice16BitStorageFeatures> (void)
+template<> VkStructureType getStructureType<VkDisplayPresentInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES;
+       return VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkMemoryDedicatedRequirements> (void)
+template<> VkStructureType getStructureType<VkAndroidSurfaceCreateInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS;
+       return VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkMemoryDedicatedAllocateInfo> (void)
+template<> VkStructureType getStructureType<VkViSurfaceCreateInfoNN> (void)
 {
-       return VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO;
+       return VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN;
 }
 
-template<> VkStructureType getStructureType<VkMemoryAllocateFlagsInfo> (void)
+template<> VkStructureType getStructureType<VkWaylandSurfaceCreateInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO;
+       return VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkDeviceGroupRenderPassBeginInfo> (void)
+template<> VkStructureType getStructureType<VkWin32SurfaceCreateInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO;
+       return VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkDeviceGroupCommandBufferBeginInfo> (void)
+template<> VkStructureType getStructureType<VkXlibSurfaceCreateInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO;
+       return VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkDeviceGroupSubmitInfo> (void)
+template<> VkStructureType getStructureType<VkXcbSurfaceCreateInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO;
+       return VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkDeviceGroupBindSparseInfo> (void)
+template<> VkStructureType getStructureType<VkImagePipeSurfaceCreateInfoFUCHSIA> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO;
+       return VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA;
 }
 
-template<> VkStructureType getStructureType<VkBindBufferMemoryDeviceGroupInfo> (void)
+template<> VkStructureType getStructureType<VkStreamDescriptorSurfaceCreateInfoGGP> (void)
 {
-       return VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO;
+       return VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP;
 }
 
-template<> VkStructureType getStructureType<VkBindImageMemoryDeviceGroupInfo> (void)
+template<> VkStructureType getStructureType<VkScreenSurfaceCreateInfoQNX> (void)
 {
-       return VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO;
+       return VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceGroupProperties> (void)
+template<> VkStructureType getStructureType<VkSwapchainCreateInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES;
+       return VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkDeviceGroupDeviceCreateInfo> (void)
+template<> VkStructureType getStructureType<VkPresentInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkBufferMemoryRequirementsInfo2> (void)
+template<> VkStructureType getStructureType<VkDebugReportCallbackCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2;
+       return VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkImageMemoryRequirementsInfo2> (void)
+template<> VkStructureType getStructureType<VkValidationFlagsEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2;
+       return VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT;
 }
 
-template<> VkStructureType getStructureType<VkImageSparseMemoryRequirementsInfo2> (void)
+template<> VkStructureType getStructureType<VkValidationFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2;
+       return VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkMemoryRequirements2> (void)
+template<> VkStructureType getStructureType<VkPipelineRasterizationStateRasterizationOrderAMD> (void)
 {
-       return VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2;
+       return VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD;
 }
 
-template<> VkStructureType getStructureType<VkSparseImageMemoryRequirements2> (void)
+template<> VkStructureType getStructureType<VkDebugMarkerObjectNameInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2;
+       return VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceFeatures2> (void)
+template<> VkStructureType getStructureType<VkDebugMarkerObjectTagInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+       return VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceProperties2> (void)
+template<> VkStructureType getStructureType<VkDebugMarkerMarkerInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+       return VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkFormatProperties2> (void)
+template<> VkStructureType getStructureType<VkDedicatedAllocationImageCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2;
+       return VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkImageFormatProperties2> (void)
+template<> VkStructureType getStructureType<VkDedicatedAllocationBufferCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2;
+       return VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceImageFormatInfo2> (void)
+template<> VkStructureType getStructureType<VkDedicatedAllocationMemoryAllocateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2;
+       return VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkQueueFamilyProperties2> (void)
+template<> VkStructureType getStructureType<VkExternalMemoryImageCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2;
+       return VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceMemoryProperties2> (void)
+template<> VkStructureType getStructureType<VkExportMemoryAllocateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2;
+       return VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkSparseImageFormatProperties2> (void)
+template<> VkStructureType getStructureType<VkImportMemoryWin32HandleInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2;
+       return VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceSparseImageFormatInfo2> (void)
+template<> VkStructureType getStructureType<VkExportMemoryWin32HandleInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2;
+       return VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDevicePointClippingProperties> (void)
+template<> VkStructureType getStructureType<VkWin32KeyedMutexAcquireReleaseInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES;
+       return VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkRenderPassInputAttachmentAspectCreateInfo> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV;
 }
 
-template<> VkStructureType getStructureType<VkImageViewUsageCreateInfo> (void)
+template<> VkStructureType getStructureType<VkDevicePrivateDataCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPipelineTessellationDomainOriginStateCreateInfo> (void)
+template<> VkStructureType getStructureType<VkPrivateDataSlotCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkRenderPassMultiviewCreateInfo> (void)
+template<> VkStructureType getStructureType<VkPhysicalDevicePrivateDataFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceMultiviewFeatures> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceMultiviewProperties> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceMultiDrawPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceVariablePointersFeatures> (void)
+template<> VkStructureType getStructureType<VkGraphicsShaderGroupCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
+       return VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceProtectedMemoryFeatures> (void)
+template<> VkStructureType getStructureType<VkGraphicsPipelineShaderGroupsCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES;
+       return VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceProtectedMemoryProperties> (void)
+template<> VkStructureType getStructureType<VkIndirectCommandsLayoutTokenNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES;
+       return VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV;
 }
 
-template<> VkStructureType getStructureType<VkDeviceQueueInfo2> (void)
+template<> VkStructureType getStructureType<VkIndirectCommandsLayoutCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2;
+       return VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkProtectedSubmitInfo> (void)
+template<> VkStructureType getStructureType<VkGeneratedCommandsInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO;
+       return VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkSamplerYcbcrConversionCreateInfo> (void)
+template<> VkStructureType getStructureType<VkGeneratedCommandsMemoryRequirementsInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkSamplerYcbcrConversionInfo> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceFeatures2> (void)
 {
-       return VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
 }
 
-template<> VkStructureType getStructureType<VkBindImagePlaneMemoryInfo> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceProperties2> (void)
 {
-       return VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
 }
 
-template<> VkStructureType getStructureType<VkImagePlaneMemoryRequirementsInfo> (void)
+template<> VkStructureType getStructureType<VkFormatProperties2> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO;
+       return VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceSamplerYcbcrConversionFeatures> (void)
+template<> VkStructureType getStructureType<VkImageFormatProperties2> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES;
+       return VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2;
 }
 
-template<> VkStructureType getStructureType<VkSamplerYcbcrConversionImageFormatProperties> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceImageFormatInfo2> (void)
 {
-       return VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2;
 }
 
-template<> VkStructureType getStructureType<VkDescriptorUpdateTemplateCreateInfo> (void)
+template<> VkStructureType getStructureType<VkQueueFamilyProperties2> (void)
 {
-       return VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceMemoryProperties2> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2;
+}
+
+template<> VkStructureType getStructureType<VkSparseImageFormatProperties2> (void)
+{
+       return VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceSparseImageFormatInfo2> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDevicePushDescriptorPropertiesKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceDriverProperties> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES;
+}
+
+template<> VkStructureType getStructureType<VkPresentRegionsKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceVariablePointersFeatures> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
 }
 
 template<> VkStructureType getStructureType<VkPhysicalDeviceExternalImageFormatInfo> (void)
@@ -518,934 +548,984 @@ template<> VkStructureType getStructureType<VkExportMemoryAllocateInfo> (void)
        return VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceExternalFenceInfo> (void)
+template<> VkStructureType getStructureType<VkImportMemoryWin32HandleInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO;
+       return VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkExternalFenceProperties> (void)
+template<> VkStructureType getStructureType<VkExportMemoryWin32HandleInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES;
+       return VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkExportFenceCreateInfo> (void)
+template<> VkStructureType getStructureType<VkImportMemoryZirconHandleInfoFUCHSIA> (void)
 {
-       return VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA;
 }
 
-template<> VkStructureType getStructureType<VkExportSemaphoreCreateInfo> (void)
+template<> VkStructureType getStructureType<VkMemoryZirconHandlePropertiesFUCHSIA> (void)
 {
-       return VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceExternalSemaphoreInfo> (void)
+template<> VkStructureType getStructureType<VkMemoryGetZirconHandleInfoFUCHSIA> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO;
+       return VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA;
 }
 
-template<> VkStructureType getStructureType<VkExternalSemaphoreProperties> (void)
+template<> VkStructureType getStructureType<VkMemoryWin32HandlePropertiesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES;
+       return VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceMaintenance3Properties> (void)
+template<> VkStructureType getStructureType<VkMemoryGetWin32HandleInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES;
+       return VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkDescriptorSetLayoutSupport> (void)
+template<> VkStructureType getStructureType<VkImportMemoryFdInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT;
+       return VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShaderDrawParametersFeatures> (void)
+template<> VkStructureType getStructureType<VkMemoryFdPropertiesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES;
+       return VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceVulkan11Features> (void)
+template<> VkStructureType getStructureType<VkMemoryGetFdInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES;
+       return VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceVulkan11Properties> (void)
+template<> VkStructureType getStructureType<VkWin32KeyedMutexAcquireReleaseInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES;
+       return VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceVulkan12Features> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceExternalSemaphoreInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceVulkan12Properties> (void)
+template<> VkStructureType getStructureType<VkExternalSemaphoreProperties> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES;
+       return VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkImageFormatListCreateInfo> (void)
+template<> VkStructureType getStructureType<VkExportSemaphoreCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkAttachmentDescription2> (void)
+template<> VkStructureType getStructureType<VkImportSemaphoreWin32HandleInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2;
+       return VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkAttachmentReference2> (void)
+template<> VkStructureType getStructureType<VkExportSemaphoreWin32HandleInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2;
+       return VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkSubpassDescription2> (void)
+template<> VkStructureType getStructureType<VkD3D12FenceSubmitInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2;
+       return VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkSubpassDependency2> (void)
+template<> VkStructureType getStructureType<VkSemaphoreGetWin32HandleInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2;
+       return VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkRenderPassCreateInfo2> (void)
+template<> VkStructureType getStructureType<VkImportSemaphoreFdInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2;
+       return VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkSubpassBeginInfo> (void)
+template<> VkStructureType getStructureType<VkSemaphoreGetFdInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO;
+       return VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkSubpassEndInfo> (void)
+template<> VkStructureType getStructureType<VkImportSemaphoreZirconHandleInfoFUCHSIA> (void)
 {
-       return VK_STRUCTURE_TYPE_SUBPASS_END_INFO;
+       return VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDevice8BitStorageFeatures> (void)
+template<> VkStructureType getStructureType<VkSemaphoreGetZirconHandleInfoFUCHSIA> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES;
+       return VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceDriverProperties> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceExternalFenceInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShaderAtomicInt64Features> (void)
+template<> VkStructureType getStructureType<VkExternalFenceProperties> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES;
+       return VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShaderFloat16Int8Features> (void)
+template<> VkStructureType getStructureType<VkExportFenceCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
+       return VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceFloatControlsProperties> (void)
+template<> VkStructureType getStructureType<VkImportFenceWin32HandleInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES;
+       return VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkDescriptorSetLayoutBindingFlagsCreateInfo> (void)
+template<> VkStructureType getStructureType<VkExportFenceWin32HandleInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceDescriptorIndexingFeatures> (void)
+template<> VkStructureType getStructureType<VkFenceGetWin32HandleInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES;
+       return VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceDescriptorIndexingProperties> (void)
+template<> VkStructureType getStructureType<VkImportFenceFdInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES;
+       return VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkDescriptorSetVariableDescriptorCountAllocateInfo> (void)
+template<> VkStructureType getStructureType<VkFenceGetFdInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO;
+       return VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkDescriptorSetVariableDescriptorCountLayoutSupport> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceMultiviewFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkSubpassDescriptionDepthStencilResolve> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceMultiviewProperties> (void)
 {
-       return VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceDepthStencilResolveProperties> (void)
+template<> VkStructureType getStructureType<VkRenderPassMultiviewCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES;
+       return VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceScalarBlockLayoutFeatures> (void)
+template<> VkStructureType getStructureType<VkSurfaceCapabilities2EXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES;
+       return VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT;
 }
 
-template<> VkStructureType getStructureType<VkImageStencilUsageCreateInfo> (void)
+template<> VkStructureType getStructureType<VkDisplayPowerInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkSamplerReductionModeCreateInfo> (void)
+template<> VkStructureType getStructureType<VkDeviceEventInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceSamplerFilterMinmaxProperties> (void)
+template<> VkStructureType getStructureType<VkDisplayEventInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES;
+       return VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceVulkanMemoryModelFeatures> (void)
+template<> VkStructureType getStructureType<VkSwapchainCounterCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES;
+       return VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceImagelessFramebufferFeatures> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceGroupProperties> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkFramebufferAttachmentImageInfo> (void)
+template<> VkStructureType getStructureType<VkMemoryAllocateFlagsInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO;
+       return VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO;
 }
 
-template<> VkStructureType getStructureType<VkFramebufferAttachmentsCreateInfo> (void)
+template<> VkStructureType getStructureType<VkBindBufferMemoryInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO;
 }
 
-template<> VkStructureType getStructureType<VkRenderPassAttachmentBeginInfo> (void)
+template<> VkStructureType getStructureType<VkBindBufferMemoryDeviceGroupInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO;
+       return VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceUniformBufferStandardLayoutFeatures> (void)
+template<> VkStructureType getStructureType<VkBindImageMemoryInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES;
+       return VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures> (void)
+template<> VkStructureType getStructureType<VkBindImageMemoryDeviceGroupInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES;
+       return VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures> (void)
+template<> VkStructureType getStructureType<VkDeviceGroupRenderPassBeginInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES;
+       return VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO;
 }
 
-template<> VkStructureType getStructureType<VkAttachmentReferenceStencilLayout> (void)
+template<> VkStructureType getStructureType<VkDeviceGroupCommandBufferBeginInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT;
+       return VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO;
 }
 
-template<> VkStructureType getStructureType<VkAttachmentDescriptionStencilLayout> (void)
+template<> VkStructureType getStructureType<VkDeviceGroupSubmitInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT;
+       return VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceHostQueryResetFeatures> (void)
+template<> VkStructureType getStructureType<VkDeviceGroupBindSparseInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES;
+       return VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceTimelineSemaphoreFeatures> (void)
+template<> VkStructureType getStructureType<VkDeviceGroupPresentCapabilitiesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES;
+       return VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceTimelineSemaphoreProperties> (void)
+template<> VkStructureType getStructureType<VkImageSwapchainCreateInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES;
+       return VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkSemaphoreTypeCreateInfo> (void)
+template<> VkStructureType getStructureType<VkBindImageMemorySwapchainInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkTimelineSemaphoreSubmitInfo> (void)
+template<> VkStructureType getStructureType<VkAcquireNextImageInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO;
+       return VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkSemaphoreWaitInfo> (void)
+template<> VkStructureType getStructureType<VkDeviceGroupPresentInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO;
+       return VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkSemaphoreSignalInfo> (void)
+template<> VkStructureType getStructureType<VkDeviceGroupDeviceCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO;
+       return VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceBufferDeviceAddressFeatures> (void)
+template<> VkStructureType getStructureType<VkDeviceGroupSwapchainCreateInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES;
+       return VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkBufferDeviceAddressInfo> (void)
+template<> VkStructureType getStructureType<VkDescriptorUpdateTemplateCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO;
+       return VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkBufferOpaqueCaptureAddressCreateInfo> (void)
+template<> VkStructureType getStructureType<VkPhysicalDevicePresentIdFeaturesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkMemoryOpaqueCaptureAddressAllocateInfo> (void)
+template<> VkStructureType getStructureType<VkPresentIdKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO;
+       return VK_STRUCTURE_TYPE_PRESENT_ID_KHR;
 }
 
-template<> VkStructureType getStructureType<VkDeviceMemoryOpaqueCaptureAddressInfo> (void)
+template<> VkStructureType getStructureType<VkPhysicalDevicePresentWaitFeaturesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceVulkan13Features> (void)
+template<> VkStructureType getStructureType<VkHdrMetadataEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES;
+       return VK_STRUCTURE_TYPE_HDR_METADATA_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceVulkan13Properties> (void)
+template<> VkStructureType getStructureType<VkDisplayNativeHdrSurfaceCapabilitiesAMD> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES;
+       return VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD;
 }
 
-template<> VkStructureType getStructureType<VkPipelineCreationFeedbackCreateInfo> (void)
+template<> VkStructureType getStructureType<VkSwapchainDisplayNativeHdrCreateInfoAMD> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShaderTerminateInvocationFeatures> (void)
+template<> VkStructureType getStructureType<VkPresentTimesInfoGOOGLE> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES;
+       return VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceToolProperties> (void)
+template<> VkStructureType getStructureType<VkIOSSurfaceCreateInfoMVK> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES;
+       return VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures> (void)
+template<> VkStructureType getStructureType<VkMacOSSurfaceCreateInfoMVK> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES;
+       return VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDevicePrivateDataFeatures> (void)
+template<> VkStructureType getStructureType<VkMetalSurfaceCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES;
+       return VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkDevicePrivateDataCreateInfo> (void)
+template<> VkStructureType getStructureType<VkPipelineViewportWScalingStateCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkPrivateDataSlotCreateInfo> (void)
+template<> VkStructureType getStructureType<VkPipelineViewportSwizzleStateCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDevicePipelineCreationCacheControlFeatures> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceDiscardRectanglePropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkMemoryBarrier2> (void)
+template<> VkStructureType getStructureType<VkPipelineDiscardRectangleStateCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_MEMORY_BARRIER_2;
+       return VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkBufferMemoryBarrier2> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX> (void)
 {
-       return VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX;
 }
 
-template<> VkStructureType getStructureType<VkImageMemoryBarrier2> (void)
+template<> VkStructureType getStructureType<VkRenderPassInputAttachmentAspectCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2;
+       return VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkDependencyInfo> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceSurfaceInfo2KHR> (void)
 {
-       return VK_STRUCTURE_TYPE_DEPENDENCY_INFO;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR;
 }
 
-template<> VkStructureType getStructureType<VkSemaphoreSubmitInfo> (void)
+template<> VkStructureType getStructureType<VkSurfaceCapabilities2KHR> (void)
 {
-       return VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO;
+       return VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR;
 }
 
-template<> VkStructureType getStructureType<VkCommandBufferSubmitInfo> (void)
+template<> VkStructureType getStructureType<VkSurfaceFormat2KHR> (void)
 {
-       return VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO;
+       return VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR;
 }
 
-template<> VkStructureType getStructureType<VkSubmitInfo2> (void)
+template<> VkStructureType getStructureType<VkDisplayProperties2KHR> (void)
 {
-       return VK_STRUCTURE_TYPE_SUBMIT_INFO_2;
+       return VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceSynchronization2Features> (void)
+template<> VkStructureType getStructureType<VkDisplayPlaneProperties2KHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES;
+       return VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures> (void)
+template<> VkStructureType getStructureType<VkDisplayModeProperties2KHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES;
+       return VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceImageRobustnessFeatures> (void)
+template<> VkStructureType getStructureType<VkDisplayPlaneInfo2KHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES;
+       return VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR;
 }
 
-template<> VkStructureType getStructureType<VkBufferCopy2> (void)
+template<> VkStructureType getStructureType<VkDisplayPlaneCapabilities2KHR> (void)
 {
-       return VK_STRUCTURE_TYPE_BUFFER_COPY_2;
+       return VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR;
 }
 
-template<> VkStructureType getStructureType<VkCopyBufferInfo2> (void)
+template<> VkStructureType getStructureType<VkSharedPresentSurfaceCapabilitiesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2;
+       return VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkImageCopy2> (void)
+template<> VkStructureType getStructureType<VkPhysicalDevice16BitStorageFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_COPY_2;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkCopyImageInfo2> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceSubgroupProperties> (void)
 {
-       return VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkBufferImageCopy2> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkCopyBufferToImageInfo2> (void)
+template<> VkStructureType getStructureType<VkBufferMemoryRequirementsInfo2> (void)
 {
-       return VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2;
+       return VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2;
 }
 
-template<> VkStructureType getStructureType<VkCopyImageToBufferInfo2> (void)
+template<> VkStructureType getStructureType<VkDeviceBufferMemoryRequirements> (void)
 {
-       return VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2;
+       return VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS;
 }
 
-template<> VkStructureType getStructureType<VkImageBlit2> (void)
+template<> VkStructureType getStructureType<VkImageMemoryRequirementsInfo2> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_BLIT_2;
+       return VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2;
 }
 
-template<> VkStructureType getStructureType<VkBlitImageInfo2> (void)
+template<> VkStructureType getStructureType<VkImageSparseMemoryRequirementsInfo2> (void)
 {
-       return VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2;
+       return VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2;
 }
 
-template<> VkStructureType getStructureType<VkImageResolve2> (void)
+template<> VkStructureType getStructureType<VkDeviceImageMemoryRequirements> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2;
+       return VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS;
 }
 
-template<> VkStructureType getStructureType<VkResolveImageInfo2> (void)
+template<> VkStructureType getStructureType<VkMemoryRequirements2> (void)
 {
-       return VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2;
+       return VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceSubgroupSizeControlFeatures> (void)
+template<> VkStructureType getStructureType<VkSparseImageMemoryRequirements2> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES;
+       return VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceSubgroupSizeControlProperties> (void)
+template<> VkStructureType getStructureType<VkPhysicalDevicePointClippingProperties> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkPipelineShaderStageRequiredSubgroupSizeCreateInfo> (void)
+template<> VkStructureType getStructureType<VkMemoryDedicatedRequirements> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceInlineUniformBlockFeatures> (void)
+template<> VkStructureType getStructureType<VkMemoryDedicatedAllocateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES;
+       return VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceInlineUniformBlockProperties> (void)
+template<> VkStructureType getStructureType<VkImageViewUsageCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES;
+       return VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkWriteDescriptorSetInlineUniformBlock> (void)
+template<> VkStructureType getStructureType<VkPipelineTessellationDomainOriginStateCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK;
+       return VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkDescriptorPoolInlineUniformBlockCreateInfo> (void)
+template<> VkStructureType getStructureType<VkSamplerYcbcrConversionInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceTextureCompressionASTCHDRFeatures> (void)
+template<> VkStructureType getStructureType<VkSamplerYcbcrConversionCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES;
+       return VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkRenderingAttachmentInfo> (void)
+template<> VkStructureType getStructureType<VkBindImagePlaneMemoryInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO;
+       return VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO;
 }
 
-template<> VkStructureType getStructureType<VkRenderingInfo> (void)
+template<> VkStructureType getStructureType<VkImagePlaneMemoryRequirementsInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_RENDERING_INFO;
+       return VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPipelineRenderingCreateInfo> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceSamplerYcbcrConversionFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceDynamicRenderingFeatures> (void)
+template<> VkStructureType getStructureType<VkSamplerYcbcrConversionImageFormatProperties> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES;
+       return VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkCommandBufferInheritanceRenderingInfo> (void)
+template<> VkStructureType getStructureType<VkTextureLODGatherFormatPropertiesAMD> (void)
 {
-       return VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO;
+       return VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShaderIntegerDotProductFeatures> (void)
+template<> VkStructureType getStructureType<VkConditionalRenderingBeginInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES;
+       return VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShaderIntegerDotProductProperties> (void)
+template<> VkStructureType getStructureType<VkProtectedSubmitInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES;
+       return VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceTexelBufferAlignmentProperties> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceProtectedMemoryFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkFormatProperties3> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceProtectedMemoryProperties> (void)
 {
-       return VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceMaintenance4Features> (void)
+template<> VkStructureType getStructureType<VkDeviceQueueInfo2> (void)
+{
+       return VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2;
+}
+
+template<> VkStructureType getStructureType<VkPipelineCoverageToColorStateCreateInfoNV> (void)
+{
+       return VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceSamplerFilterMinmaxProperties> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES;
+}
+
+template<> VkStructureType getStructureType<VkSampleLocationsInfoEXT> (void)
+{
+       return VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT;
+}
+
+template<> VkStructureType getStructureType<VkRenderPassSampleLocationsBeginInfoEXT> (void)
+{
+       return VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT;
+}
+
+template<> VkStructureType getStructureType<VkPipelineSampleLocationsStateCreateInfoEXT> (void)
+{
+       return VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceSampleLocationsPropertiesEXT> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT;
+}
+
+template<> VkStructureType getStructureType<VkMultisamplePropertiesEXT> (void)
+{
+       return VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT;
+}
+
+template<> VkStructureType getStructureType<VkSamplerReductionModeCreateInfo> (void)
+{
+       return VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceMultiDrawFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceMaintenance4Properties> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkDeviceBufferMemoryRequirements> (void)
+template<> VkStructureType getStructureType<VkPipelineColorBlendAdvancedStateCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS;
+       return VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkDeviceImageMemoryRequirements> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceInlineUniformBlockFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkSwapchainCreateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceInlineUniformBlockProperties> (void)
 {
-       return VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkPresentInfoKHR> (void)
+template<> VkStructureType getStructureType<VkWriteDescriptorSetInlineUniformBlock> (void)
 {
-       return VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
+       return VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK;
 }
 
-template<> VkStructureType getStructureType<VkImageSwapchainCreateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkDescriptorPoolInlineUniformBlockCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkBindImageMemorySwapchainInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPipelineCoverageModulationStateCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkAcquireNextImageInfoKHR> (void)
+template<> VkStructureType getStructureType<VkImageFormatListCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkDeviceGroupPresentCapabilitiesKHR> (void)
+template<> VkStructureType getStructureType<VkValidationCacheCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR;
+       return VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkDeviceGroupPresentInfoKHR> (void)
+template<> VkStructureType getStructureType<VkShaderModuleValidationCacheCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR;
+       return VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkDeviceGroupSwapchainCreateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceMaintenance3Properties> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkDisplayModeCreateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceMaintenance4Features> (void)
 {
-       return VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkDisplaySurfaceCreateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceMaintenance4Properties> (void)
 {
-       return VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkDisplayPresentInfoKHR> (void)
+template<> VkStructureType getStructureType<VkDescriptorSetLayoutSupport> (void)
 {
-       return VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR;
+       return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT;
 }
 
-template<> VkStructureType getStructureType<VkRenderingFragmentShadingRateAttachmentInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShaderDrawParametersFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkRenderingFragmentDensityMapAttachmentInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShaderFloat16Int8Features> (void)
 {
-       return VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkAttachmentSampleCountInfoAMD> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceFloatControlsProperties> (void)
 {
-       return VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkMultiviewPerViewAttributesInfoNVX> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceHostQueryResetFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkImportMemoryFdInfoKHR> (void)
+template<> VkStructureType getStructureType<VkDeviceQueueGlobalPriorityCreateInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR;
+       return VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkMemoryFdPropertiesKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkMemoryGetFdInfoKHR> (void)
+template<> VkStructureType getStructureType<VkQueueFamilyGlobalPriorityPropertiesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR;
+       return VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkImportSemaphoreFdInfoKHR> (void)
+template<> VkStructureType getStructureType<VkDebugUtilsObjectNameInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR;
+       return VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkSemaphoreGetFdInfoKHR> (void)
+template<> VkStructureType getStructureType<VkDebugUtilsObjectTagInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR;
+       return VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDevicePushDescriptorPropertiesKHR> (void)
+template<> VkStructureType getStructureType<VkDebugUtilsLabelEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR;
+       return VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPresentRegionsKHR> (void)
+template<> VkStructureType getStructureType<VkDebugUtilsMessengerCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR;
+       return VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkSharedPresentSurfaceCapabilitiesKHR> (void)
+template<> VkStructureType getStructureType<VkDebugUtilsMessengerCallbackDataEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR;
+       return VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT;
 }
 
-template<> VkStructureType getStructureType<VkImportFenceFdInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkFenceGetFdInfoKHR> (void)
+template<> VkStructureType getStructureType<VkDeviceDeviceMemoryReportCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR;
+       return VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDevicePerformanceQueryFeaturesKHR> (void)
+template<> VkStructureType getStructureType<VkDeviceMemoryReportCallbackDataEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR;
+       return VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDevicePerformanceQueryPropertiesKHR> (void)
+template<> VkStructureType getStructureType<VkImportMemoryHostPointerInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR;
+       return VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPerformanceCounterKHR> (void)
+template<> VkStructureType getStructureType<VkMemoryHostPointerPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR;
+       return VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPerformanceCounterDescriptionKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceExternalMemoryHostPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkQueryPoolPerformanceCreateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceConservativeRasterizationPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkAcquireProfilingLockInfoKHR> (void)
+template<> VkStructureType getStructureType<VkCalibratedTimestampInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR;
+       return VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPerformanceQuerySubmitInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShaderCorePropertiesAMD> (void)
 {
-       return VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceSurfaceInfo2KHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShaderCoreProperties2AMD> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD;
 }
 
-template<> VkStructureType getStructureType<VkSurfaceCapabilities2KHR> (void)
+template<> VkStructureType getStructureType<VkPipelineRasterizationConservativeStateCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR;
+       return VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkSurfaceFormat2KHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceDescriptorIndexingFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkDisplayProperties2KHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceDescriptorIndexingProperties> (void)
 {
-       return VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkDisplayPlaneProperties2KHR> (void)
+template<> VkStructureType getStructureType<VkDescriptorSetLayoutBindingFlagsCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR;
+       return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkDisplayModeProperties2KHR> (void)
+template<> VkStructureType getStructureType<VkDescriptorSetVariableDescriptorCountAllocateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR;
+       return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkDisplayPlaneInfo2KHR> (void)
+template<> VkStructureType getStructureType<VkDescriptorSetVariableDescriptorCountLayoutSupport> (void)
 {
-       return VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR;
+       return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT;
 }
 
-template<> VkStructureType getStructureType<VkDisplayPlaneCapabilities2KHR> (void)
+template<> VkStructureType getStructureType<VkAttachmentDescription2> (void)
 {
-       return VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR;
+       return VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShaderClockFeaturesKHR> (void)
+template<> VkStructureType getStructureType<VkAttachmentReference2> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR;
+       return VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2;
 }
 
-template<> VkStructureType getStructureType<VkDeviceQueueGlobalPriorityCreateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkSubpassDescription2> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR> (void)
+template<> VkStructureType getStructureType<VkSubpassDependency2> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR;
+       return VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2;
 }
 
-template<> VkStructureType getStructureType<VkQueueFamilyGlobalPriorityPropertiesKHR> (void)
+template<> VkStructureType getStructureType<VkRenderPassCreateInfo2> (void)
 {
-       return VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR;
+       return VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2;
 }
 
-template<> VkStructureType getStructureType<VkFragmentShadingRateAttachmentInfoKHR> (void)
+template<> VkStructureType getStructureType<VkSubpassBeginInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR;
+       return VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPipelineFragmentShadingRateStateCreateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkSubpassEndInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_SUBPASS_END_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShadingRateFeaturesKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceTimelineSemaphoreFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShadingRatePropertiesKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceTimelineSemaphoreProperties> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShadingRateKHR> (void)
+template<> VkStructureType getStructureType<VkSemaphoreTypeCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR;
+       return VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkSurfaceProtectedCapabilitiesKHR> (void)
+template<> VkStructureType getStructureType<VkTimelineSemaphoreSubmitInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR;
+       return VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDevicePresentWaitFeaturesKHR> (void)
+template<> VkStructureType getStructureType<VkSemaphoreWaitInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR;
+       return VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR> (void)
+template<> VkStructureType getStructureType<VkSemaphoreSignalInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR;
+       return VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPipelineInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPipelineVertexInputDivisorStateCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPipelineExecutablePropertiesKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPipelineExecutableInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDevicePCIBusInfoPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPipelineExecutableStatisticKHR> (void)
+template<> VkStructureType getStructureType<VkImportAndroidHardwareBufferInfoANDROID> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR;
+       return VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
 }
 
-template<> VkStructureType getStructureType<VkPipelineExecutableInternalRepresentationKHR> (void)
+template<> VkStructureType getStructureType<VkAndroidHardwareBufferUsageANDROID> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR;
+       return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID;
 }
 
-template<> VkStructureType getStructureType<VkPipelineLibraryCreateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkAndroidHardwareBufferPropertiesANDROID> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID;
 }
 
-template<> VkStructureType getStructureType<VkPresentIdKHR> (void)
+template<> VkStructureType getStructureType<VkMemoryGetAndroidHardwareBufferInfoANDROID> (void)
 {
-       return VK_STRUCTURE_TYPE_PRESENT_ID_KHR;
+       return VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDevicePresentIdFeaturesKHR> (void)
+template<> VkStructureType getStructureType<VkAndroidHardwareBufferFormatPropertiesANDROID> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR;
+       return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID;
 }
 
-template<> VkStructureType getStructureType<VkQueueFamilyCheckpointProperties2NV> (void)
+template<> VkStructureType getStructureType<VkCommandBufferInheritanceConditionalRenderingInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV;
+       return VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkCheckpointData2NV> (void)
+template<> VkStructureType getStructureType<VkExternalFormatANDROID> (void)
 {
-       return VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV;
+       return VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDevice8BitStorageFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceConditionalRenderingFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceVulkanMemoryModelFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShaderAtomicInt64Features> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkDebugReportCallbackCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPipelineRasterizationStateRasterizationOrderAMD> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkDebugMarkerObjectNameInfoEXT> (void)
+template<> VkStructureType getStructureType<VkQueueFamilyCheckpointPropertiesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT;
+       return VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV;
 }
 
-template<> VkStructureType getStructureType<VkDebugMarkerObjectTagInfoEXT> (void)
+template<> VkStructureType getStructureType<VkCheckpointDataNV> (void)
 {
-       return VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT;
+       return VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV;
 }
 
-template<> VkStructureType getStructureType<VkDebugMarkerMarkerInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceDepthStencilResolveProperties> (void)
 {
-       return VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkDedicatedAllocationImageCreateInfoNV> (void)
+template<> VkStructureType getStructureType<VkSubpassDescriptionDepthStencilResolve> (void)
 {
-       return VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV;
+       return VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE;
 }
 
-template<> VkStructureType getStructureType<VkDedicatedAllocationBufferCreateInfoNV> (void)
+template<> VkStructureType getStructureType<VkImageViewASTCDecodeModeEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV;
+       return VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT;
 }
 
-template<> VkStructureType getStructureType<VkDedicatedAllocationMemoryAllocateInfoNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceASTCDecodeFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT;
 }
 
 template<> VkStructureType getStructureType<VkPhysicalDeviceTransformFeedbackFeaturesEXT> (void)
@@ -1463,34 +1543,24 @@ template<> VkStructureType getStructureType<VkPipelineRasterizationStateStreamCr
        return VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkCuModuleCreateInfoNVX> (void)
-{
-       return VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX;
-}
-
-template<> VkStructureType getStructureType<VkCuFunctionCreateInfoNVX> (void)
-{
-       return VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX;
-}
-
-template<> VkStructureType getStructureType<VkCuLaunchInfoNVX> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV;
 }
 
-template<> VkStructureType getStructureType<VkImageViewHandleInfoNVX> (void)
+template<> VkStructureType getStructureType<VkPipelineRepresentativeFragmentTestStateCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX;
+       return VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkImageViewAddressPropertiesNVX> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceExclusiveScissorFeaturesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV;
 }
 
-template<> VkStructureType getStructureType<VkTextureLODGatherFormatPropertiesAMD> (void)
+template<> VkStructureType getStructureType<VkPipelineViewportExclusiveScissorStateCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD;
+       return VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV;
 }
 
 template<> VkStructureType getStructureType<VkPhysicalDeviceCornerSampledImageFeaturesNV> (void)
@@ -1498,449 +1568,444 @@ template<> VkStructureType getStructureType<VkPhysicalDeviceCornerSampledImageFe
        return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV;
 }
 
-template<> VkStructureType getStructureType<VkExternalMemoryImageCreateInfoNV> (void)
-{
-       return VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV;
-}
-
-template<> VkStructureType getStructureType<VkExportMemoryAllocateInfoNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV;
 }
 
-template<> VkStructureType getStructureType<VkValidationFlagsEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShaderImageFootprintFeaturesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV;
 }
 
-template<> VkStructureType getStructureType<VkImageViewASTCDecodeModeEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceASTCDecodeFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPipelineViewportShadingRateImageStateCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDevicePipelineRobustnessFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShadingRateImageFeaturesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDevicePipelineRobustnessPropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShadingRateImagePropertiesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV;
 }
 
-template<> VkStructureType getStructureType<VkPipelineRobustnessCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI;
 }
 
-template<> VkStructureType getStructureType<VkConditionalRenderingBeginInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceConditionalRenderingFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceMeshShaderFeaturesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV;
 }
 
-template<> VkStructureType getStructureType<VkCommandBufferInheritanceConditionalRenderingInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceMeshShaderPropertiesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV;
 }
 
-template<> VkStructureType getStructureType<VkPipelineViewportWScalingStateCreateInfoNV> (void)
+template<> VkStructureType getStructureType<VkRayTracingShaderGroupCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV;
+       return VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkSurfaceCapabilities2EXT> (void)
+template<> VkStructureType getStructureType<VkRayTracingShaderGroupCreateInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT;
+       return VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkDisplayPowerInfoEXT> (void)
+template<> VkStructureType getStructureType<VkRayTracingPipelineCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT;
+       return VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkDeviceEventInfoEXT> (void)
+template<> VkStructureType getStructureType<VkRayTracingPipelineCreateInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT;
+       return VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkDisplayEventInfoEXT> (void)
+template<> VkStructureType getStructureType<VkGeometryTrianglesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT;
+       return VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV;
 }
 
-template<> VkStructureType getStructureType<VkSwapchainCounterCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkGeometryAABBNV> (void)
 {
-       return VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV;
 }
 
-template<> VkStructureType getStructureType<VkPresentTimesInfoGOOGLE> (void)
+template<> VkStructureType getStructureType<VkGeometryNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE;
+       return VK_STRUCTURE_TYPE_GEOMETRY_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX> (void)
+template<> VkStructureType getStructureType<VkAccelerationStructureInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX;
+       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkPipelineViewportSwizzleStateCreateInfoNV> (void)
+template<> VkStructureType getStructureType<VkAccelerationStructureCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV;
+       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceDiscardRectanglePropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkBindAccelerationStructureMemoryInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkPipelineDiscardRectangleStateCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkWriteDescriptorSetAccelerationStructureKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceConservativeRasterizationPropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkWriteDescriptorSetAccelerationStructureNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV;
 }
 
-template<> VkStructureType getStructureType<VkPipelineRasterizationConservativeStateCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkAccelerationStructureMemoryRequirementsInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceDepthClipEnableFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceAccelerationStructureFeaturesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPipelineRasterizationDepthClipStateCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceRayTracingPipelineFeaturesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkHdrMetadataEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceRayQueryFeaturesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_HDR_METADATA_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkDebugUtilsLabelEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceAccelerationStructurePropertiesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkDebugUtilsObjectNameInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceRayTracingPipelinePropertiesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkDebugUtilsMessengerCallbackDataEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceRayTracingPropertiesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV;
 }
 
-template<> VkStructureType getStructureType<VkDebugUtilsMessengerCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkDebugUtilsObjectTagInfoEXT> (void)
+template<> VkStructureType getStructureType<VkDrmFormatModifierPropertiesListEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT;
+       return VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT;
 }
 
-template<> VkStructureType getStructureType<VkSampleLocationsInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceImageDrmFormatModifierInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkRenderPassSampleLocationsBeginInfoEXT> (void)
+template<> VkStructureType getStructureType<VkImageDrmFormatModifierListCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT;
+       return VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPipelineSampleLocationsStateCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkImageDrmFormatModifierExplicitCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceSampleLocationsPropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkImageDrmFormatModifierPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkMultisamplePropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkImageStencilUsageCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkDeviceMemoryOverallocationCreateInfoAMD> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMapFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPipelineColorBlendAdvancedStateCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPipelineCoverageToColorStateCreateInfoNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM;
 }
 
-template<> VkStructureType getStructureType<VkPipelineCoverageModulationStateCreateInfoNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMapPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM;
 }
 
-template<> VkStructureType getStructureType<VkDrmFormatModifierPropertiesListEXT> (void)
+template<> VkStructureType getStructureType<VkRenderPassFragmentDensityMapCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT;
+       return VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceImageDrmFormatModifierInfoEXT> (void)
+template<> VkStructureType getStructureType<VkSubpassFragmentDensityMapOffsetEndInfoQCOM> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT;
+       return VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM;
 }
 
-template<> VkStructureType getStructureType<VkImageDrmFormatModifierListCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceScalarBlockLayoutFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkImageDrmFormatModifierExplicitCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkSurfaceProtectedCapabilitiesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkImageDrmFormatModifierPropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceUniformBufferStandardLayoutFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkDrmFormatModifierPropertiesList2EXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceDepthClipEnableFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkValidationCacheCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPipelineRasterizationDepthClipStateCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkShaderModuleValidationCacheCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceMemoryBudgetPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPipelineViewportShadingRateImageStateCreateInfoNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceMemoryPriorityFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShadingRateImageFeaturesNV> (void)
+template<> VkStructureType getStructureType<VkMemoryPriorityAllocateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV;
+       return VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShadingRateImagePropertiesNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceBufferDeviceAddressFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkRayTracingShaderGroupCreateInfoNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkRayTracingPipelineCreateInfoNV> (void)
+template<> VkStructureType getStructureType<VkBufferDeviceAddressInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV;
+       return VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO;
 }
 
-template<> VkStructureType getStructureType<VkGeometryTrianglesNV> (void)
+template<> VkStructureType getStructureType<VkBufferOpaqueCaptureAddressCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV;
+       return VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkGeometryAABBNV> (void)
+template<> VkStructureType getStructureType<VkBufferDeviceAddressCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV;
+       return VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkGeometryNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceImageViewImageFormatInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_GEOMETRY_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkAccelerationStructureInfoNV> (void)
+template<> VkStructureType getStructureType<VkFilterCubicImageViewImageFormatPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV;
+       return VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkAccelerationStructureCreateInfoNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceImagelessFramebufferFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkBindAccelerationStructureMemoryInfoNV> (void)
+template<> VkStructureType getStructureType<VkFramebufferAttachmentsCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV;
+       return VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkWriteDescriptorSetAccelerationStructureNV> (void)
+template<> VkStructureType getStructureType<VkFramebufferAttachmentImageInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV;
+       return VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkAccelerationStructureMemoryRequirementsInfoNV> (void)
+template<> VkStructureType getStructureType<VkRenderPassAttachmentBeginInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV;
+       return VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceRayTracingPropertiesNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceTextureCompressionASTCHDRFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceCooperativeMatrixFeaturesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV;
 }
 
-template<> VkStructureType getStructureType<VkPipelineRepresentativeFragmentTestStateCreateInfoNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceCooperativeMatrixPropertiesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceImageViewImageFormatInfoEXT> (void)
+template<> VkStructureType getStructureType<VkCooperativeMatrixPropertiesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT;
+       return VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV;
 }
 
-template<> VkStructureType getStructureType<VkFilterCubicImageViewImageFormatPropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkImportMemoryHostPointerInfoEXT> (void)
+template<> VkStructureType getStructureType<VkImageViewHandleInfoNVX> (void)
 {
-       return VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT;
+       return VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX;
 }
 
-template<> VkStructureType getStructureType<VkMemoryHostPointerPropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkImageViewAddressPropertiesNVX> (void)
 {
-       return VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceExternalMemoryHostPropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkPresentFrameTokenGGP> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP;
 }
 
-template<> VkStructureType getStructureType<VkPipelineCompilerControlCreateInfoAMD> (void)
+template<> VkStructureType getStructureType<VkPipelineCreationFeedbackCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD;
+       return VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkCalibratedTimestampInfoEXT> (void)
+template<> VkStructureType getStructureType<VkSurfaceFullScreenExclusiveInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT;
+       return VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShaderCorePropertiesAMD> (void)
+template<> VkStructureType getStructureType<VkSurfaceFullScreenExclusiveWin32InfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD;
+       return VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkDeviceMemoryOverallocationCreateInfoAMD> (void)
+template<> VkStructureType getStructureType<VkSurfaceCapabilitiesFullScreenExclusiveEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD;
+       return VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDevicePerformanceQueryFeaturesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPipelineVertexInputDivisorStateCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDevicePerformanceQueryPropertiesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPerformanceCounterKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV> (void)
+template<> VkStructureType getStructureType<VkPerformanceCounterDescriptionKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV;
+       return VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceMeshShaderFeaturesNV> (void)
+template<> VkStructureType getStructureType<VkQueryPoolPerformanceCreateInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV;
+       return VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceMeshShaderPropertiesNV> (void)
+template<> VkStructureType getStructureType<VkAcquireProfilingLockInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV;
+       return VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShaderImageFootprintFeaturesNV> (void)
+template<> VkStructureType getStructureType<VkPerformanceQuerySubmitInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV;
+       return VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPipelineViewportExclusiveScissorStateCreateInfoNV> (void)
+template<> VkStructureType getStructureType<VkHeadlessSurfaceCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV;
+       return VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceExclusiveScissorFeaturesNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceCoverageReductionModeFeaturesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV;
 }
 
-template<> VkStructureType getStructureType<VkQueueFamilyCheckpointPropertiesNV> (void)
+template<> VkStructureType getStructureType<VkPipelineCoverageReductionStateCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV;
+       return VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkCheckpointDataNV> (void)
+template<> VkStructureType getStructureType<VkFramebufferMixedSamplesCombinationNV> (void)
 {
-       return VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV;
+       return VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV;
 }
 
 template<> VkStructureType getStructureType<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL> (void)
@@ -1978,284 +2043,309 @@ template<> VkStructureType getStructureType<VkPerformanceConfigurationAcquireInf
        return VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDevicePCIBusInfoPropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShaderClockFeaturesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkDisplayNativeHdrSurfaceCapabilitiesAMD> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceIndexTypeUint8FeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkSwapchainDisplayNativeHdrCreateInfoAMD> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMapFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMapPropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkRenderPassFragmentDensityMapCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShaderCoreProperties2AMD> (void)
+template<> VkStructureType getStructureType<VkAttachmentReferenceStencilLayout> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD;
+       return VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceCoherentMemoryFeaturesAMD> (void)
+template<> VkStructureType getStructureType<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkAttachmentDescriptionStencilLayout> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceMemoryBudgetPropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceMemoryPriorityFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPipelineInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkMemoryPriorityAllocateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPipelineExecutablePropertiesKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR;
+}
+
+template<> VkStructureType getStructureType<VkPipelineExecutableInfoKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkPipelineExecutableStatisticKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR;
+}
+
+template<> VkStructureType getStructureType<VkPipelineExecutableInternalRepresentationKHR> (void)
+{
+       return VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures> (void)
+{
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceTexelBufferAlignmentProperties> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceSubgroupSizeControlFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkBufferDeviceAddressCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceSubgroupSizeControlProperties> (void)
 {
-       return VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkValidationFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPipelineShaderStageRequiredSubgroupSizeCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkCooperativeMatrixPropertiesNV> (void)
+template<> VkStructureType getStructureType<VkSubpassShadingPipelineCreateInfoHUAWEI> (void)
 {
-       return VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV;
+       return VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceCooperativeMatrixFeaturesNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceCooperativeMatrixPropertiesNV> (void)
+template<> VkStructureType getStructureType<VkMemoryOpaqueCaptureAddressAllocateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV;
+       return VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceCoverageReductionModeFeaturesNV> (void)
+template<> VkStructureType getStructureType<VkDeviceMemoryOpaqueCaptureAddressInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV;
+       return VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPipelineCoverageReductionStateCreateInfoNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceLineRasterizationFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkFramebufferMixedSamplesCombinationNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceLineRasterizationPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPipelineRasterizationLineStateCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDevicePipelineCreationCacheControlFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceProvokingVertexFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceVulkan11Features> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceProvokingVertexPropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceVulkan11Properties> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkPipelineRasterizationProvokingVertexStateCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceVulkan12Features> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkHeadlessSurfaceCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceVulkan12Properties> (void)
 {
-       return VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceLineRasterizationFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceVulkan13Features> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceLineRasterizationPropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceVulkan13Properties> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkPipelineRasterizationLineStateCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPipelineCompilerControlCreateInfoAMD> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceCoherentMemoryFeaturesAMD> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceIndexTypeUint8FeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceToolProperties> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkSamplerCustomBorderColorCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceCustomBorderColorPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceCustomBorderColorFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV> (void)
+template<> VkStructureType getStructureType<VkSamplerBorderColorComponentMappingCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV;
+       return VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkGraphicsShaderGroupCreateInfoNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkGraphicsPipelineShaderGroupsCreateInfoNV> (void)
+template<> VkStructureType getStructureType<VkAccelerationStructureGeometryTrianglesDataKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV;
+       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR;
 }
 
-template<> VkStructureType getStructureType<VkIndirectCommandsLayoutTokenNV> (void)
+template<> VkStructureType getStructureType<VkAccelerationStructureGeometryAabbsDataKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV;
+       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR;
 }
 
-template<> VkStructureType getStructureType<VkIndirectCommandsLayoutCreateInfoNV> (void)
+template<> VkStructureType getStructureType<VkAccelerationStructureGeometryInstancesDataKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV;
+       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR;
 }
 
-template<> VkStructureType getStructureType<VkGeneratedCommandsInfoNV> (void)
+template<> VkStructureType getStructureType<VkAccelerationStructureGeometryKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV;
+       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR;
 }
 
-template<> VkStructureType getStructureType<VkGeneratedCommandsMemoryRequirementsInfoNV> (void)
+template<> VkStructureType getStructureType<VkAccelerationStructureBuildGeometryInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV;
+       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceInheritedViewportScissorFeaturesNV> (void)
+template<> VkStructureType getStructureType<VkAccelerationStructureCreateInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV;
+       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkCommandBufferInheritanceViewportScissorInfoNV> (void)
+template<> VkStructureType getStructureType<VkAccelerationStructureDeviceAddressInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV;
+       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkAccelerationStructureVersionInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkRenderPassTransformBeginInfoQCOM> (void)
+template<> VkStructureType getStructureType<VkCopyAccelerationStructureInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM;
+       return VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkCommandBufferInheritanceRenderPassTransformInfoQCOM> (void)
+template<> VkStructureType getStructureType<VkCopyAccelerationStructureToMemoryInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM;
+       return VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkCopyMemoryToAccelerationStructureInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkDeviceMemoryReportCallbackDataEXT> (void)
+template<> VkStructureType getStructureType<VkRayTracingPipelineInterfaceCreateInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT;
+       return VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkDeviceDeviceMemoryReportCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPipelineLibraryCreateInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceRobustness2FeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceRobustness2PropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkSamplerCustomBorderColorCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkRenderPassTransformBeginInfoQCOM> (void)
 {
-       return VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceCustomBorderColorPropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkCopyCommandTransformInfoQCOM> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceCustomBorderColorFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkCommandBufferInheritanceRenderPassTransformInfoQCOM> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM;
 }
 
 template<> VkStructureType getStructureType<VkPhysicalDeviceDiagnosticsConfigFeaturesNV> (void)
@@ -2268,219 +2358,209 @@ template<> VkStructureType getStructureType<VkDeviceDiagnosticsConfigCreateInfoN
        return VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT> (void)
-{
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT;
-}
-
-template<> VkStructureType getStructureType<VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT> (void)
-{
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT;
-}
-
-template<> VkStructureType getStructureType<VkGraphicsPipelineLibraryCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceRobustness2FeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceRobustness2PropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPipelineFragmentShadingRateEnumStateCreateInfoNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceImageRobustnessFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkAccelerationStructureGeometryMotionTrianglesDataNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkAccelerationStructureMotionInfoNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDevicePortabilitySubsetFeaturesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDevicePortabilitySubsetPropertiesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDevice4444FormatsFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkBufferCopy2> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_BUFFER_COPY_2;
 }
 
-template<> VkStructureType getStructureType<VkCopyCommandTransformInfoQCOM> (void)
+template<> VkStructureType getStructureType<VkImageCopy2> (void)
 {
-       return VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM;
+       return VK_STRUCTURE_TYPE_IMAGE_COPY_2;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceImageCompressionControlFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkImageBlit2> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_IMAGE_BLIT_2;
 }
 
-template<> VkStructureType getStructureType<VkImageCompressionControlEXT> (void)
+template<> VkStructureType getStructureType<VkBufferImageCopy2> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT;
+       return VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2;
 }
 
-template<> VkStructureType getStructureType<VkSubresourceLayout2EXT> (void)
+template<> VkStructureType getStructureType<VkImageResolve2> (void)
 {
-       return VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT;
+       return VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2;
 }
 
-template<> VkStructureType getStructureType<VkImageSubresource2EXT> (void)
+template<> VkStructureType getStructureType<VkCopyBufferInfo2> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT;
+       return VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2;
 }
 
-template<> VkStructureType getStructureType<VkImageCompressionPropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkCopyImageInfo2> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDevice4444FormatsFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkBlitImageInfo2> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM> (void)
+template<> VkStructureType getStructureType<VkCopyBufferToImageInfo2> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM;
+       return VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkCopyImageToBufferInfo2> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE> (void)
+template<> VkStructureType getStructureType<VkResolveImageInfo2> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE;
+       return VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2;
 }
 
-template<> VkStructureType getStructureType<VkMutableDescriptorTypeCreateInfoVALVE> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkFragmentShadingRateAttachmentInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkVertexInputBindingDescription2EXT> (void)
+template<> VkStructureType getStructureType<VkPipelineFragmentShadingRateStateCreateInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT;
+       return VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkVertexInputAttributeDescription2EXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShadingRateFeaturesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceDrmPropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShadingRatePropertiesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceDepthClipControlFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShadingRateKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPipelineViewportDepthClipControlCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShaderTerminateInvocationFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV;
 }
 
-template<> VkStructureType getStructureType<VkSubpassShadingPipelineCreateInfoHUAWEI> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceSubpassShadingFeaturesHUAWEI> (void)
+template<> VkStructureType getStructureType<VkPipelineFragmentShadingRateEnumStateCreateInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI;
+       return VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceSubpassShadingPropertiesHUAWEI> (void)
+template<> VkStructureType getStructureType<VkAccelerationStructureBuildSizesInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI;
+       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceInvocationMaskFeaturesHUAWEI> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkMemoryGetRemoteAddressInfoNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE> (void)
 {
-       return VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV> (void)
+template<> VkStructureType getStructureType<VkMutableDescriptorTypeCreateInfoVALVE> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV;
+       return VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE;
 }
 
-template<> VkStructureType getStructureType<VkPipelinePropertiesIdentifierEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceDepthClipControlFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDevicePipelinePropertiesFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPipelineViewportDepthClipControlCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkSubpassResolvePerformanceQueryEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceExternalMemoryRDMAFeaturesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV;
 }
 
-template<> VkStructureType getStructureType<VkMultisampledRenderToSingleSampledInfoEXT> (void)
+template<> VkStructureType getStructureType<VkVertexInputBindingDescription2EXT> (void)
 {
-       return VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT;
+       return VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceExtendedDynamicState2FeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkVertexInputAttributeDescription2EXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT;
 }
 
 template<> VkStructureType getStructureType<VkPhysicalDeviceColorWriteEnableFeaturesEXT> (void)
@@ -2493,709 +2573,704 @@ template<> VkStructureType getStructureType<VkPipelineColorWriteCreateInfoEXT> (
        return VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT> (void)
-{
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT;
-}
-
-template<> VkStructureType getStructureType<VkPhysicalDeviceImageViewMinLodFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkMemoryBarrier2> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_MEMORY_BARRIER_2;
 }
 
-template<> VkStructureType getStructureType<VkImageViewMinLodCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkImageMemoryBarrier2> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceMultiDrawFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkBufferMemoryBarrier2> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceMultiDrawPropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkDependencyInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_DEPENDENCY_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceImage2DViewOf3DFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkSemaphoreSubmitInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceBorderColorSwizzleFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkCommandBufferSubmitInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO;
 }
 
-template<> VkStructureType getStructureType<VkSamplerBorderColorComponentMappingCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkSubmitInfo2> (void)
 {
-       return VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_SUBMIT_INFO_2;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkQueueFamilyCheckpointProperties2NV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE> (void)
+template<> VkStructureType getStructureType<VkCheckpointData2NV> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE;
+       return VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV;
 }
 
-template<> VkStructureType getStructureType<VkDescriptorSetBindingReferenceVALVE> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceSynchronization2Features> (void)
 {
-       return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkDescriptorSetLayoutHostMappingInfoVALVE> (void)
+template<> VkStructureType getStructureType<VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM> (void)
+template<> VkStructureType getStructureType<VkSubpassResolvePerformanceQueryEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM;
+       return VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM> (void)
+template<> VkStructureType getStructureType<VkMultisampledRenderToSingleSampledInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM;
+       return VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkSubpassFragmentDensityMapOffsetEndInfoQCOM> (void)
+template<> VkStructureType getStructureType<VkVideoQueueFamilyProperties2KHR> (void)
 {
-       return VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM;
+       return VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceLinearColorAttachmentFeaturesNV> (void)
+template<> VkStructureType getStructureType<VkQueueFamilyQueryResultStatusProperties2KHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV;
+       return VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkVideoProfilesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkImageViewSampleWeightCreateInfoQCOM> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceVideoFormatInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceImageProcessingFeaturesQCOM> (void)
+template<> VkStructureType getStructureType<VkVideoFormatPropertiesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM;
+       return VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceImageProcessingPropertiesQCOM> (void)
+template<> VkStructureType getStructureType<VkVideoProfileKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM;
+       return VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkVideoCapabilitiesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkRenderPassCreationControlEXT> (void)
+template<> VkStructureType getStructureType<VkVideoGetMemoryPropertiesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT;
+       return VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkRenderPassCreationFeedbackCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkVideoBindMemoryKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR;
 }
 
-template<> VkStructureType getStructureType<VkRenderPassSubpassFeedbackCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkVideoPictureResourceKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT> (void)
+template<> VkStructureType getStructureType<VkVideoReferenceSlotKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT;
+       return VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT> (void)
+template<> VkStructureType getStructureType<VkVideoDecodeCapabilitiesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT;
+       return VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPipelineShaderStageModuleIdentifierCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkVideoDecodeInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkShaderModuleIdentifierEXT> (void)
+template<> VkStructureType getStructureType<VkVideoDecodeH264ProfileEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT;
+       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceTilePropertiesFeaturesQCOM> (void)
+template<> VkStructureType getStructureType<VkVideoDecodeH264CapabilitiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM;
+       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkTilePropertiesQCOM> (void)
+template<> VkStructureType getStructureType<VkVideoDecodeH264SessionParametersAddInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM;
+       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkAccelerationStructureGeometryTrianglesDataKHR> (void)
+template<> VkStructureType getStructureType<VkVideoDecodeH264SessionParametersCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkAccelerationStructureGeometryAabbsDataKHR> (void)
+template<> VkStructureType getStructureType<VkVideoDecodeH264PictureInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkAccelerationStructureGeometryInstancesDataKHR> (void)
+template<> VkStructureType getStructureType<VkVideoDecodeH264DpbSlotInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkAccelerationStructureGeometryKHR> (void)
+template<> VkStructureType getStructureType<VkVideoDecodeH264MvcEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT;
 }
 
-template<> VkStructureType getStructureType<VkAccelerationStructureBuildGeometryInfoKHR> (void)
+template<> VkStructureType getStructureType<VkVideoDecodeH265ProfileEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT;
 }
 
-template<> VkStructureType getStructureType<VkAccelerationStructureCreateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkVideoDecodeH265CapabilitiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkWriteDescriptorSetAccelerationStructureKHR> (void)
+template<> VkStructureType getStructureType<VkVideoDecodeH265SessionParametersAddInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceAccelerationStructureFeaturesKHR> (void)
+template<> VkStructureType getStructureType<VkVideoDecodeH265SessionParametersCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceAccelerationStructurePropertiesKHR> (void)
+template<> VkStructureType getStructureType<VkVideoDecodeH265PictureInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkAccelerationStructureDeviceAddressInfoKHR> (void)
+template<> VkStructureType getStructureType<VkVideoDecodeH265DpbSlotInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkAccelerationStructureVersionInfoKHR> (void)
+template<> VkStructureType getStructureType<VkVideoSessionCreateInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkCopyAccelerationStructureToMemoryInfoKHR> (void)
+template<> VkStructureType getStructureType<VkVideoSessionParametersCreateInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkCopyMemoryToAccelerationStructureInfoKHR> (void)
+template<> VkStructureType getStructureType<VkVideoSessionParametersUpdateInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkCopyAccelerationStructureInfoKHR> (void)
+template<> VkStructureType getStructureType<VkVideoBeginCodingInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkAccelerationStructureBuildSizesInfoKHR> (void)
+template<> VkStructureType getStructureType<VkVideoEndCodingInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkRayTracingShaderGroupCreateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkVideoCodingControlInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkRayTracingPipelineInterfaceCreateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkRayTracingPipelineCreateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeRateControlInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceRayTracingPipelineFeaturesKHR> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeRateControlLayerInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceRayTracingPipelinePropertiesKHR> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeCapabilitiesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceRayQueryFeaturesKHR> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH264CapabilitiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkAndroidSurfaceCreateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH264SessionParametersAddInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkAndroidHardwareBufferUsageANDROID> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH264SessionParametersCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkAndroidHardwareBufferPropertiesANDROID> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH264DpbSlotInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkAndroidHardwareBufferFormatPropertiesANDROID> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH264VclFrameInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkImportAndroidHardwareBufferInfoANDROID> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH264ReferenceListsEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_EXT;
 }
 
-template<> VkStructureType getStructureType<VkMemoryGetAndroidHardwareBufferInfoANDROID> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH264EmitPictureParametersEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT;
 }
 
-template<> VkStructureType getStructureType<VkExternalFormatANDROID> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH264ProfileEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT;
 }
 
-template<> VkStructureType getStructureType<VkAndroidHardwareBufferFormatProperties2ANDROID> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH264NaluSliceEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT;
 }
 
-template<> VkStructureType getStructureType<VkQueueFamilyQueryResultStatusProperties2KHR> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH264RateControlInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoQueueFamilyProperties2KHR> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH264RateControlLayerInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoProfileKHR> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH265CapabilitiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoProfilesKHR> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH265SessionParametersAddInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoCapabilitiesKHR> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH265SessionParametersCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceVideoFormatInfoKHR> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH265VclFrameInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoFormatPropertiesKHR> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH265EmitPictureParametersEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoPictureResourceKHR> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH265NaluSliceSegmentEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoReferenceSlotKHR> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH265RateControlInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoGetMemoryPropertiesKHR> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH265RateControlLayerInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoBindMemoryKHR> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH265ProfileEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoSessionCreateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH265DpbSlotInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoSessionParametersCreateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkVideoEncodeH265ReferenceListsEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoSessionParametersUpdateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceInheritedViewportScissorFeaturesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV;
 }
 
-template<> VkStructureType getStructureType<VkVideoBeginCodingInfoKHR> (void)
+template<> VkStructureType getStructureType<VkCommandBufferInheritanceViewportScissorInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR;
+       return VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkVideoEndCodingInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoCodingControlInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceProvokingVertexFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoDecodeCapabilitiesKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceProvokingVertexPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoDecodeInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPipelineRasterizationProvokingVertexStateCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDevicePortabilitySubsetFeaturesKHR> (void)
+template<> VkStructureType getStructureType<VkCuModuleCreateInfoNVX> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR;
+       return VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDevicePortabilitySubsetPropertiesKHR> (void)
+template<> VkStructureType getStructureType<VkCuFunctionCreateInfoNVX> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR;
+       return VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeInfoKHR> (void)
+template<> VkStructureType getStructureType<VkCuLaunchInfoNVX> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeCapabilitiesKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShaderIntegerDotProductFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeRateControlLayerInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShaderIntegerDotProductProperties> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeRateControlInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceDrmPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH264CapabilitiesEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH264SessionParametersAddInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH264SessionParametersCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceRayTracingMotionBlurFeaturesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH264DpbSlotInfoEXT> (void)
+template<> VkStructureType getStructureType<VkAccelerationStructureGeometryMotionTrianglesDataNV> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT;
+       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH264ReferenceListsEXT> (void)
+template<> VkStructureType getStructureType<VkAccelerationStructureMotionInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_EXT;
+       return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH264NaluSliceEXT> (void)
+template<> VkStructureType getStructureType<VkMemoryGetRemoteAddressInfoNV> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT;
+       return VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH264VclFrameInfoEXT> (void)
+template<> VkStructureType getStructureType<VkImportMemoryBufferCollectionFUCHSIA> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT;
+       return VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH264EmitPictureParametersEXT> (void)
+template<> VkStructureType getStructureType<VkBufferCollectionImageCreateInfoFUCHSIA> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT;
+       return VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH264ProfileEXT> (void)
+template<> VkStructureType getStructureType<VkBufferCollectionBufferCreateInfoFUCHSIA> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT;
+       return VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH264RateControlInfoEXT> (void)
+template<> VkStructureType getStructureType<VkBufferCollectionCreateInfoFUCHSIA> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT;
+       return VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH264RateControlLayerInfoEXT> (void)
+template<> VkStructureType getStructureType<VkBufferCollectionPropertiesFUCHSIA> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT;
+       return VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH265CapabilitiesEXT> (void)
+template<> VkStructureType getStructureType<VkBufferConstraintsInfoFUCHSIA> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT;
+       return VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH265SessionParametersAddInfoEXT> (void)
+template<> VkStructureType getStructureType<VkSysmemColorSpaceFUCHSIA> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT;
+       return VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH265SessionParametersCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkImageFormatConstraintsInfoFUCHSIA> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH265DpbSlotInfoEXT> (void)
+template<> VkStructureType getStructureType<VkImageConstraintsInfoFUCHSIA> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT;
+       return VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH265ReferenceListsEXT> (void)
+template<> VkStructureType getStructureType<VkBufferCollectionConstraintsInfoFUCHSIA> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT;
+       return VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH265NaluSliceSegmentEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH265VclFrameInfoEXT> (void)
+template<> VkStructureType getStructureType<VkFormatProperties3> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT;
+       return VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH265EmitPictureParametersEXT> (void)
+template<> VkStructureType getStructureType<VkDrmFormatModifierPropertiesList2EXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT;
+       return VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH265ProfileEXT> (void)
+template<> VkStructureType getStructureType<VkAndroidHardwareBufferFormatProperties2ANDROID> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT;
+       return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH265RateControlInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPipelineRenderingCreateInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkVideoEncodeH265RateControlLayerInfoEXT> (void)
+template<> VkStructureType getStructureType<VkRenderingInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT;
+       return VK_STRUCTURE_TYPE_RENDERING_INFO;
 }
 
-template<> VkStructureType getStructureType<VkVideoDecodeH264ProfileEXT> (void)
+template<> VkStructureType getStructureType<VkRenderingAttachmentInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT;
+       return VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO;
 }
 
-template<> VkStructureType getStructureType<VkVideoDecodeH264CapabilitiesEXT> (void)
+template<> VkStructureType getStructureType<VkRenderingFragmentShadingRateAttachmentInfoKHR> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT;
+       return VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkVideoDecodeH264SessionParametersAddInfoEXT> (void)
+template<> VkStructureType getStructureType<VkRenderingFragmentDensityMapAttachmentInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT;
+       return VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoDecodeH264SessionParametersCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceDynamicRenderingFeatures> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES;
 }
 
-template<> VkStructureType getStructureType<VkVideoDecodeH264PictureInfoEXT> (void)
+template<> VkStructureType getStructureType<VkCommandBufferInheritanceRenderingInfo> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO;
 }
 
-template<> VkStructureType getStructureType<VkVideoDecodeH264MvcEXT> (void)
+template<> VkStructureType getStructureType<VkAttachmentSampleCountInfoAMD> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT;
+       return VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD;
 }
 
-template<> VkStructureType getStructureType<VkVideoDecodeH264DpbSlotInfoEXT> (void)
+template<> VkStructureType getStructureType<VkMultiviewPerViewAttributesInfoNVX> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT;
+       return VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX;
 }
 
-template<> VkStructureType getStructureType<VkVideoDecodeH265ProfileEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceImageViewMinLodFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoDecodeH265CapabilitiesEXT> (void)
+template<> VkStructureType getStructureType<VkImageViewMinLodCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT;
+       return VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoDecodeH265SessionParametersAddInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM;
 }
 
-template<> VkStructureType getStructureType<VkVideoDecodeH265SessionParametersCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceLinearColorAttachmentFeaturesNV> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV;
 }
 
-template<> VkStructureType getStructureType<VkVideoDecodeH265PictureInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkVideoDecodeH265DpbSlotInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkImagePipeSurfaceCreateInfoFUCHSIA> (void)
+template<> VkStructureType getStructureType<VkGraphicsPipelineLibraryCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA;
+       return VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkImportMemoryZirconHandleInfoFUCHSIA> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE> (void)
 {
-       return VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE;
 }
 
-template<> VkStructureType getStructureType<VkMemoryZirconHandlePropertiesFUCHSIA> (void)
+template<> VkStructureType getStructureType<VkDescriptorSetBindingReferenceVALVE> (void)
 {
-       return VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA;
+       return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE;
 }
 
-template<> VkStructureType getStructureType<VkMemoryGetZirconHandleInfoFUCHSIA> (void)
+template<> VkStructureType getStructureType<VkDescriptorSetLayoutHostMappingInfoVALVE> (void)
 {
-       return VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA;
+       return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE;
 }
 
-template<> VkStructureType getStructureType<VkImportSemaphoreZirconHandleInfoFUCHSIA> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkSemaphoreGetZirconHandleInfoFUCHSIA> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkBufferCollectionCreateInfoFUCHSIA> (void)
+template<> VkStructureType getStructureType<VkPipelineShaderStageModuleIdentifierCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA;
+       return VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkImportMemoryBufferCollectionFUCHSIA> (void)
+template<> VkStructureType getStructureType<VkShaderModuleIdentifierEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA;
+       return VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT;
 }
 
-template<> VkStructureType getStructureType<VkBufferCollectionImageCreateInfoFUCHSIA> (void)
+template<> VkStructureType getStructureType<VkImageCompressionControlEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA;
+       return VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT;
 }
 
-template<> VkStructureType getStructureType<VkBufferCollectionConstraintsInfoFUCHSIA> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceImageCompressionControlFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkBufferConstraintsInfoFUCHSIA> (void)
+template<> VkStructureType getStructureType<VkImageCompressionPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA;
+       return VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkBufferCollectionBufferCreateInfoFUCHSIA> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkSysmemColorSpaceFUCHSIA> (void)
+template<> VkStructureType getStructureType<VkImageSubresource2EXT> (void)
 {
-       return VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA;
+       return VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT;
 }
 
-template<> VkStructureType getStructureType<VkBufferCollectionPropertiesFUCHSIA> (void)
+template<> VkStructureType getStructureType<VkSubresourceLayout2EXT> (void)
 {
-       return VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA;
+       return VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT;
 }
 
-template<> VkStructureType getStructureType<VkImageFormatConstraintsInfoFUCHSIA> (void)
+template<> VkStructureType getStructureType<VkRenderPassCreationControlEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA;
+       return VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT;
 }
 
-template<> VkStructureType getStructureType<VkImageConstraintsInfoFUCHSIA> (void)
+template<> VkStructureType getStructureType<VkRenderPassCreationFeedbackCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA;
+       return VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkStreamDescriptorSurfaceCreateInfoGGP> (void)
+template<> VkStructureType getStructureType<VkRenderPassSubpassFeedbackCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP;
+       return VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPresentFrameTokenGGP> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkIOSSurfaceCreateInfoMVK> (void)
+template<> VkStructureType getStructureType<VkPipelinePropertiesIdentifierEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK;
+       return VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT;
 }
 
-template<> VkStructureType getStructureType<VkMacOSSurfaceCreateInfoMVK> (void)
+template<> VkStructureType getStructureType<VkPhysicalDevicePipelinePropertiesFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkMetalSurfaceCreateInfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD> (void)
 {
-       return VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD;
 }
 
 template<> VkStructureType getStructureType<VkExportMetalObjectCreateInfoEXT> (void)
@@ -3258,118 +3333,48 @@ template<> VkStructureType getStructureType<VkImportMetalSharedEventInfoEXT> (vo
        return VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkViSurfaceCreateInfoNN> (void)
-{
-       return VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN;
-}
-
-template<> VkStructureType getStructureType<VkWaylandSurfaceCreateInfoKHR> (void)
-{
-       return VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR;
-}
-
-template<> VkStructureType getStructureType<VkWin32SurfaceCreateInfoKHR> (void)
-{
-       return VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_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<VkWin32KeyedMutexAcquireReleaseInfoKHR> (void)
-{
-       return VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_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<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)
+template<> VkStructureType getStructureType<VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkImportMemoryWin32HandleInfoNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDevicePipelineRobustnessFeaturesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkExportMemoryWin32HandleInfoNV> (void)
+template<> VkStructureType getStructureType<VkPipelineRobustnessCreateInfoEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV;
+       return VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkWin32KeyedMutexAcquireReleaseInfoNV> (void)
+template<> VkStructureType getStructureType<VkPhysicalDevicePipelineRobustnessPropertiesEXT> (void)
 {
-       return VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT;
 }
 
-template<> VkStructureType getStructureType<VkSurfaceFullScreenExclusiveInfoEXT> (void)
+template<> VkStructureType getStructureType<VkImageViewSampleWeightCreateInfoQCOM> (void)
 {
-       return VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT;
+       return VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM;
 }
 
-template<> VkStructureType getStructureType<VkSurfaceCapabilitiesFullScreenExclusiveEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceImageProcessingFeaturesQCOM> (void)
 {
-       return VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM;
 }
 
-template<> VkStructureType getStructureType<VkSurfaceFullScreenExclusiveWin32InfoEXT> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceImageProcessingPropertiesQCOM> (void)
 {
-       return VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM;
 }
 
-template<> VkStructureType getStructureType<VkXcbSurfaceCreateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkPhysicalDeviceTilePropertiesFeaturesQCOM> (void)
 {
-       return VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM;
 }
 
-template<> VkStructureType getStructureType<VkXlibSurfaceCreateInfoKHR> (void)
+template<> VkStructureType getStructureType<VkTilePropertiesQCOM> (void)
 {
-       return VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR;
+       return VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM;
 }
 
index e179075..41c027c 100644 (file)
@@ -5,54 +5,54 @@
 
 enum HandleType
 {
-       HANDLE_TYPE_BUFFER                                                              = 0,
-       HANDLE_TYPE_IMAGE,
-       HANDLE_TYPE_INSTANCE,
+       HANDLE_TYPE_INSTANCE                                                    = 0,
        HANDLE_TYPE_PHYSICAL_DEVICE,
        HANDLE_TYPE_DEVICE,
        HANDLE_TYPE_QUEUE,
-       HANDLE_TYPE_SEMAPHORE,
        HANDLE_TYPE_COMMAND_BUFFER,
-       HANDLE_TYPE_FENCE,
        HANDLE_TYPE_DEVICE_MEMORY,
-       HANDLE_TYPE_EVENT,
-       HANDLE_TYPE_QUERY_POOL,
+       HANDLE_TYPE_COMMAND_POOL,
+       HANDLE_TYPE_BUFFER,
        HANDLE_TYPE_BUFFER_VIEW,
+       HANDLE_TYPE_IMAGE,
        HANDLE_TYPE_IMAGE_VIEW,
        HANDLE_TYPE_SHADER_MODULE,
-       HANDLE_TYPE_PIPELINE_CACHE,
-       HANDLE_TYPE_PIPELINE_LAYOUT,
        HANDLE_TYPE_PIPELINE,
-       HANDLE_TYPE_RENDER_PASS,
-       HANDLE_TYPE_DESCRIPTOR_SET_LAYOUT,
+       HANDLE_TYPE_PIPELINE_LAYOUT,
        HANDLE_TYPE_SAMPLER,
        HANDLE_TYPE_DESCRIPTOR_SET,
+       HANDLE_TYPE_DESCRIPTOR_SET_LAYOUT,
        HANDLE_TYPE_DESCRIPTOR_POOL,
+       HANDLE_TYPE_FENCE,
+       HANDLE_TYPE_SEMAPHORE,
+       HANDLE_TYPE_EVENT,
+       HANDLE_TYPE_QUERY_POOL,
        HANDLE_TYPE_FRAMEBUFFER,
-       HANDLE_TYPE_COMMAND_POOL,
-       HANDLE_TYPE_SAMPLER_YCBCR_CONVERSION,
+       HANDLE_TYPE_RENDER_PASS,
+       HANDLE_TYPE_PIPELINE_CACHE,
+       HANDLE_TYPE_INDIRECT_COMMANDS_LAYOUT_NV,
        HANDLE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
+       HANDLE_TYPE_SAMPLER_YCBCR_CONVERSION,
+       HANDLE_TYPE_VALIDATION_CACHE_EXT,
+       HANDLE_TYPE_ACCELERATION_STRUCTURE_KHR,
+       HANDLE_TYPE_ACCELERATION_STRUCTURE_NV,
+       HANDLE_TYPE_PERFORMANCE_CONFIGURATION_INTEL,
+       HANDLE_TYPE_BUFFER_COLLECTION_FUCHSIA,
+       HANDLE_TYPE_DEFERRED_OPERATION_KHR,
        HANDLE_TYPE_PRIVATE_DATA_SLOT,
-       HANDLE_TYPE_SURFACE_KHR,
-       HANDLE_TYPE_SWAPCHAIN_KHR,
+       HANDLE_TYPE_CU_MODULE_NVX,
+       HANDLE_TYPE_CU_FUNCTION_NVX,
        HANDLE_TYPE_DISPLAY_KHR,
        HANDLE_TYPE_DISPLAY_MODE_KHR,
-       HANDLE_TYPE_DEFERRED_OPERATION_KHR,
+       HANDLE_TYPE_SURFACE_KHR,
+       HANDLE_TYPE_SWAPCHAIN_KHR,
        HANDLE_TYPE_DEBUG_REPORT_CALLBACK_EXT,
-       HANDLE_TYPE_CU_MODULE_NVX,
-       HANDLE_TYPE_CU_FUNCTION_NVX,
        HANDLE_TYPE_DEBUG_UTILS_MESSENGER_EXT,
-       HANDLE_TYPE_VALIDATION_CACHE_EXT,
-       HANDLE_TYPE_ACCELERATION_STRUCTURE_NV,
-       HANDLE_TYPE_PERFORMANCE_CONFIGURATION_INTEL,
-       HANDLE_TYPE_INDIRECT_COMMANDS_LAYOUT_NV,
-       HANDLE_TYPE_ACCELERATION_STRUCTURE_KHR,
        HANDLE_TYPE_VIDEO_SESSION_KHR,
        HANDLE_TYPE_VIDEO_SESSION_PARAMETERS_KHR,
-       HANDLE_TYPE_BUFFER_COLLECTION_FUCHSIA,
-       HANDLE_TYPE_SAMPLER_YCBCR_CONVERSION_KHR                = HANDLE_TYPE_SAMPLER_YCBCR_CONVERSION,
        HANDLE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR              = HANDLE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
+       HANDLE_TYPE_SAMPLER_YCBCR_CONVERSION_KHR                = HANDLE_TYPE_SAMPLER_YCBCR_CONVERSION,
        HANDLE_TYPE_PRIVATE_DATA_SLOT_EXT                               = HANDLE_TYPE_PRIVATE_DATA_SLOT,
-       HANDLE_TYPE_LAST                                                                = HANDLE_TYPE_BUFFER_COLLECTION_FUCHSIA + 1
+       HANDLE_TYPE_LAST                                                                = HANDLE_TYPE_VIDEO_SESSION_PARAMETERS_KHR + 1
 };
 
index 9962634..88777de 100644 (file)
@@ -16,10 +16,10 @@ m_vk.unmapMemory                                                                            = (UnmapMemoryFunc)                                                                             GET_PROC_ADDR("vkUnmapMem
 m_vk.flushMappedMemoryRanges                                                   = (FlushMappedMemoryRangesFunc)                                                 GET_PROC_ADDR("vkFlushMappedMemoryRanges");
 m_vk.invalidateMappedMemoryRanges                                              = (InvalidateMappedMemoryRangesFunc)                                    GET_PROC_ADDR("vkInvalidateMappedMemoryRanges");
 m_vk.getDeviceMemoryCommitment                                                 = (GetDeviceMemoryCommitmentFunc)                                               GET_PROC_ADDR("vkGetDeviceMemoryCommitment");
-m_vk.bindBufferMemory                                                                  = (BindBufferMemoryFunc)                                                                GET_PROC_ADDR("vkBindBufferMemory");
-m_vk.bindImageMemory                                                                   = (BindImageMemoryFunc)                                                                 GET_PROC_ADDR("vkBindImageMemory");
 m_vk.getBufferMemoryRequirements                                               = (GetBufferMemoryRequirementsFunc)                                             GET_PROC_ADDR("vkGetBufferMemoryRequirements");
+m_vk.bindBufferMemory                                                                  = (BindBufferMemoryFunc)                                                                GET_PROC_ADDR("vkBindBufferMemory");
 m_vk.getImageMemoryRequirements                                                        = (GetImageMemoryRequirementsFunc)                                              GET_PROC_ADDR("vkGetImageMemoryRequirements");
+m_vk.bindImageMemory                                                                   = (BindImageMemoryFunc)                                                                 GET_PROC_ADDR("vkBindImageMemory");
 m_vk.getImageSparseMemoryRequirements                                  = (GetImageSparseMemoryRequirementsFunc)                                GET_PROC_ADDR("vkGetImageSparseMemoryRequirements");
 m_vk.queueBindSparse                                                                   = (QueueBindSparseFunc)                                                                 GET_PROC_ADDR("vkQueueBindSparse");
 m_vk.createFence                                                                               = (CreateFenceFunc)                                                                             GET_PROC_ADDR("vkCreateFence");
@@ -37,6 +37,9 @@ m_vk.resetEvent                                                                                       = (ResetEventFunc)                                                                              GET_PROC_ADDR("vkResetEven
 m_vk.createQueryPool                                                                   = (CreateQueryPoolFunc)                                                                 GET_PROC_ADDR("vkCreateQueryPool");
 m_vk.destroyQueryPool                                                                  = (DestroyQueryPoolFunc)                                                                GET_PROC_ADDR("vkDestroyQueryPool");
 m_vk.getQueryPoolResults                                                               = (GetQueryPoolResultsFunc)                                                             GET_PROC_ADDR("vkGetQueryPoolResults");
+m_vk.resetQueryPool                                                                            = (ResetQueryPoolFunc)                                                                  GET_PROC_ADDR("vkResetQueryPool");
+if (!m_vk.resetQueryPool)
+       m_vk.resetQueryPool                                                                     = (ResetQueryPoolFunc)                                                                  GET_PROC_ADDR("vkResetQueryPoolEXT");
 m_vk.createBuffer                                                                              = (CreateBufferFunc)                                                                    GET_PROC_ADDR("vkCreateBuffer");
 m_vk.destroyBuffer                                                                             = (DestroyBufferFunc)                                                                   GET_PROC_ADDR("vkDestroyBuffer");
 m_vk.createBufferView                                                                  = (CreateBufferViewFunc)                                                                GET_PROC_ADDR("vkCreateBufferView");
@@ -54,6 +57,7 @@ m_vk.getPipelineCacheData                                                             = (GetPipelineCacheDataFunc)                                                    GET_PROC_ADD
 m_vk.mergePipelineCaches                                                               = (MergePipelineCachesFunc)                                                             GET_PROC_ADDR("vkMergePipelineCaches");
 m_vk.createGraphicsPipelines                                                   = (CreateGraphicsPipelinesFunc)                                                 GET_PROC_ADDR("vkCreateGraphicsPipelines");
 m_vk.createComputePipelines                                                            = (CreateComputePipelinesFunc)                                                  GET_PROC_ADDR("vkCreateComputePipelines");
+m_vk.getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI             = (GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIFunc)   GET_PROC_ADDR("vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI");
 m_vk.destroyPipeline                                                                   = (DestroyPipelineFunc)                                                                 GET_PROC_ADDR("vkDestroyPipeline");
 m_vk.createPipelineLayout                                                              = (CreatePipelineLayoutFunc)                                                    GET_PROC_ADDR("vkCreatePipelineLayout");
 m_vk.destroyPipelineLayout                                                             = (DestroyPipelineLayoutFunc)                                                   GET_PROC_ADDR("vkDestroyPipelineLayout");
@@ -95,10 +99,13 @@ m_vk.cmdBindIndexBuffer                                                                     = (CmdBindIndexBufferFunc)                                                              GET_PROC_ADDR(
 m_vk.cmdBindVertexBuffers                                                              = (CmdBindVertexBuffersFunc)                                                    GET_PROC_ADDR("vkCmdBindVertexBuffers");
 m_vk.cmdDraw                                                                                   = (CmdDrawFunc)                                                                                 GET_PROC_ADDR("vkCmdDraw");
 m_vk.cmdDrawIndexed                                                                            = (CmdDrawIndexedFunc)                                                                  GET_PROC_ADDR("vkCmdDrawIndexed");
+m_vk.cmdDrawMultiEXT                                                                   = (CmdDrawMultiEXTFunc)                                                                 GET_PROC_ADDR("vkCmdDrawMultiEXT");
+m_vk.cmdDrawMultiIndexedEXT                                                            = (CmdDrawMultiIndexedEXTFunc)                                                  GET_PROC_ADDR("vkCmdDrawMultiIndexedEXT");
 m_vk.cmdDrawIndirect                                                                   = (CmdDrawIndirectFunc)                                                                 GET_PROC_ADDR("vkCmdDrawIndirect");
 m_vk.cmdDrawIndexedIndirect                                                            = (CmdDrawIndexedIndirectFunc)                                                  GET_PROC_ADDR("vkCmdDrawIndexedIndirect");
 m_vk.cmdDispatch                                                                               = (CmdDispatchFunc)                                                                             GET_PROC_ADDR("vkCmdDispatch");
 m_vk.cmdDispatchIndirect                                                               = (CmdDispatchIndirectFunc)                                                             GET_PROC_ADDR("vkCmdDispatchIndirect");
+m_vk.cmdSubpassShadingHUAWEI                                                   = (CmdSubpassShadingHUAWEIFunc)                                                 GET_PROC_ADDR("vkCmdSubpassShadingHUAWEI");
 m_vk.cmdCopyBuffer                                                                             = (CmdCopyBufferFunc)                                                                   GET_PROC_ADDR("vkCmdCopyBuffer");
 m_vk.cmdCopyImage                                                                              = (CmdCopyImageFunc)                                                                    GET_PROC_ADDR("vkCmdCopyImage");
 m_vk.cmdBlitImage                                                                              = (CmdBlitImageFunc)                                                                    GET_PROC_ADDR("vkCmdBlitImage");
@@ -116,6 +123,8 @@ m_vk.cmdWaitEvents                                                                          = (CmdWaitEventsFunc)                                                                   GET_PROC_ADDR("vkCmdWa
 m_vk.cmdPipelineBarrier                                                                        = (CmdPipelineBarrierFunc)                                                              GET_PROC_ADDR("vkCmdPipelineBarrier");
 m_vk.cmdBeginQuery                                                                             = (CmdBeginQueryFunc)                                                                   GET_PROC_ADDR("vkCmdBeginQuery");
 m_vk.cmdEndQuery                                                                               = (CmdEndQueryFunc)                                                                             GET_PROC_ADDR("vkCmdEndQuery");
+m_vk.cmdBeginConditionalRenderingEXT                                   = (CmdBeginConditionalRenderingEXTFunc)                                 GET_PROC_ADDR("vkCmdBeginConditionalRenderingEXT");
+m_vk.cmdEndConditionalRenderingEXT                                             = (CmdEndConditionalRenderingEXTFunc)                                   GET_PROC_ADDR("vkCmdEndConditionalRenderingEXT");
 m_vk.cmdResetQueryPool                                                                 = (CmdResetQueryPoolFunc)                                                               GET_PROC_ADDR("vkCmdResetQueryPool");
 m_vk.cmdWriteTimestamp                                                                 = (CmdWriteTimestampFunc)                                                               GET_PROC_ADDR("vkCmdWriteTimestamp");
 m_vk.cmdCopyQueryPoolResults                                                   = (CmdCopyQueryPoolResultsFunc)                                                 GET_PROC_ADDR("vkCmdCopyQueryPoolResults");
@@ -124,58 +133,129 @@ m_vk.cmdBeginRenderPass                                                                  = (CmdBeginRenderPassFunc)                                                              GET_PROC_ADDR(
 m_vk.cmdNextSubpass                                                                            = (CmdNextSubpassFunc)                                                                  GET_PROC_ADDR("vkCmdNextSubpass");
 m_vk.cmdEndRenderPass                                                                  = (CmdEndRenderPassFunc)                                                                GET_PROC_ADDR("vkCmdEndRenderPass");
 m_vk.cmdExecuteCommands                                                                        = (CmdExecuteCommandsFunc)                                                              GET_PROC_ADDR("vkCmdExecuteCommands");
+m_vk.createSharedSwapchainsKHR                                                 = (CreateSharedSwapchainsKHRFunc)                                               GET_PROC_ADDR("vkCreateSharedSwapchainsKHR");
+m_vk.createSwapchainKHR                                                                        = (CreateSwapchainKHRFunc)                                                              GET_PROC_ADDR("vkCreateSwapchainKHR");
+m_vk.destroySwapchainKHR                                                               = (DestroySwapchainKHRFunc)                                                             GET_PROC_ADDR("vkDestroySwapchainKHR");
+m_vk.getSwapchainImagesKHR                                                             = (GetSwapchainImagesKHRFunc)                                                   GET_PROC_ADDR("vkGetSwapchainImagesKHR");
+m_vk.acquireNextImageKHR                                                               = (AcquireNextImageKHRFunc)                                                             GET_PROC_ADDR("vkAcquireNextImageKHR");
+m_vk.queuePresentKHR                                                                   = (QueuePresentKHRFunc)                                                                 GET_PROC_ADDR("vkQueuePresentKHR");
+m_vk.debugMarkerSetObjectNameEXT                                               = (DebugMarkerSetObjectNameEXTFunc)                                             GET_PROC_ADDR("vkDebugMarkerSetObjectNameEXT");
+m_vk.debugMarkerSetObjectTagEXT                                                        = (DebugMarkerSetObjectTagEXTFunc)                                              GET_PROC_ADDR("vkDebugMarkerSetObjectTagEXT");
+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.getMemoryWin32HandleNV                                                            = (GetMemoryWin32HandleNVFunc)                                                  GET_PROC_ADDR("vkGetMemoryWin32HandleNV");
+m_vk.cmdExecuteGeneratedCommandsNV                                             = (CmdExecuteGeneratedCommandsNVFunc)                                   GET_PROC_ADDR("vkCmdExecuteGeneratedCommandsNV");
+m_vk.cmdPreprocessGeneratedCommandsNV                                  = (CmdPreprocessGeneratedCommandsNVFunc)                                GET_PROC_ADDR("vkCmdPreprocessGeneratedCommandsNV");
+m_vk.cmdBindPipelineShaderGroupNV                                              = (CmdBindPipelineShaderGroupNVFunc)                                    GET_PROC_ADDR("vkCmdBindPipelineShaderGroupNV");
+m_vk.getGeneratedCommandsMemoryRequirementsNV                  = (GetGeneratedCommandsMemoryRequirementsNVFunc)                GET_PROC_ADDR("vkGetGeneratedCommandsMemoryRequirementsNV");
+m_vk.createIndirectCommandsLayoutNV                                            = (CreateIndirectCommandsLayoutNVFunc)                                  GET_PROC_ADDR("vkCreateIndirectCommandsLayoutNV");
+m_vk.destroyIndirectCommandsLayoutNV                                   = (DestroyIndirectCommandsLayoutNVFunc)                                 GET_PROC_ADDR("vkDestroyIndirectCommandsLayoutNV");
+m_vk.cmdPushDescriptorSetKHR                                                   = (CmdPushDescriptorSetKHRFunc)                                                 GET_PROC_ADDR("vkCmdPushDescriptorSetKHR");
+m_vk.trimCommandPool                                                                   = (TrimCommandPoolFunc)                                                                 GET_PROC_ADDR("vkTrimCommandPool");
+if (!m_vk.trimCommandPool)
+       m_vk.trimCommandPool                                                            = (TrimCommandPoolFunc)                                                                 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.getMemoryZirconHandleFUCHSIA                                              = (GetMemoryZirconHandleFUCHSIAFunc)                                    GET_PROC_ADDR("vkGetMemoryZirconHandleFUCHSIA");
+m_vk.getMemoryZirconHandlePropertiesFUCHSIA                            = (GetMemoryZirconHandlePropertiesFUCHSIAFunc)                  GET_PROC_ADDR("vkGetMemoryZirconHandlePropertiesFUCHSIA");
+m_vk.getMemoryRemoteAddressNV                                                  = (GetMemoryRemoteAddressNVFunc)                                                GET_PROC_ADDR("vkGetMemoryRemoteAddressNV");
+m_vk.getSemaphoreWin32HandleKHR                                                        = (GetSemaphoreWin32HandleKHRFunc)                                              GET_PROC_ADDR("vkGetSemaphoreWin32HandleKHR");
+m_vk.importSemaphoreWin32HandleKHR                                             = (ImportSemaphoreWin32HandleKHRFunc)                                   GET_PROC_ADDR("vkImportSemaphoreWin32HandleKHR");
+m_vk.getSemaphoreFdKHR                                                                 = (GetSemaphoreFdKHRFunc)                                                               GET_PROC_ADDR("vkGetSemaphoreFdKHR");
+m_vk.importSemaphoreFdKHR                                                              = (ImportSemaphoreFdKHRFunc)                                                    GET_PROC_ADDR("vkImportSemaphoreFdKHR");
+m_vk.getSemaphoreZirconHandleFUCHSIA                                   = (GetSemaphoreZirconHandleFUCHSIAFunc)                                 GET_PROC_ADDR("vkGetSemaphoreZirconHandleFUCHSIA");
+m_vk.importSemaphoreZirconHandleFUCHSIA                                        = (ImportSemaphoreZirconHandleFUCHSIAFunc)                              GET_PROC_ADDR("vkImportSemaphoreZirconHandleFUCHSIA");
+m_vk.getFenceWin32HandleKHR                                                            = (GetFenceWin32HandleKHRFunc)                                                  GET_PROC_ADDR("vkGetFenceWin32HandleKHR");
+m_vk.importFenceWin32HandleKHR                                                 = (ImportFenceWin32HandleKHRFunc)                                               GET_PROC_ADDR("vkImportFenceWin32HandleKHR");
+m_vk.getFenceFdKHR                                                                             = (GetFenceFdKHRFunc)                                                                   GET_PROC_ADDR("vkGetFenceFdKHR");
+m_vk.importFenceFdKHR                                                                  = (ImportFenceFdKHRFunc)                                                                GET_PROC_ADDR("vkImportFenceFdKHR");
+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.getDeviceGroupPeerMemoryFeatures                                  = (GetDeviceGroupPeerMemoryFeaturesFunc)                                GET_PROC_ADDR("vkGetDeviceGroupPeerMemoryFeatures");
+if (!m_vk.getDeviceGroupPeerMemoryFeatures)
+       m_vk.getDeviceGroupPeerMemoryFeatures                           = (GetDeviceGroupPeerMemoryFeaturesFunc)                                GET_PROC_ADDR("vkGetDeviceGroupPeerMemoryFeaturesKHR");
 m_vk.bindBufferMemory2                                                                 = (BindBufferMemory2Func)                                                               GET_PROC_ADDR("vkBindBufferMemory2");
 if (!m_vk.bindBufferMemory2)
        m_vk.bindBufferMemory2                                                          = (BindBufferMemory2Func)                                                               GET_PROC_ADDR("vkBindBufferMemory2KHR");
 m_vk.bindImageMemory2                                                                  = (BindImageMemory2Func)                                                                GET_PROC_ADDR("vkBindImageMemory2");
 if (!m_vk.bindImageMemory2)
        m_vk.bindImageMemory2                                                           = (BindImageMemory2Func)                                                                GET_PROC_ADDR("vkBindImageMemory2KHR");
-m_vk.getDeviceGroupPeerMemoryFeatures                                  = (GetDeviceGroupPeerMemoryFeaturesFunc)                                GET_PROC_ADDR("vkGetDeviceGroupPeerMemoryFeatures");
-if (!m_vk.getDeviceGroupPeerMemoryFeatures)
-       m_vk.getDeviceGroupPeerMemoryFeatures                           = (GetDeviceGroupPeerMemoryFeaturesFunc)                                GET_PROC_ADDR("vkGetDeviceGroupPeerMemoryFeaturesKHR");
 m_vk.cmdSetDeviceMask                                                                  = (CmdSetDeviceMaskFunc)                                                                GET_PROC_ADDR("vkCmdSetDeviceMask");
 if (!m_vk.cmdSetDeviceMask)
        m_vk.cmdSetDeviceMask                                                           = (CmdSetDeviceMaskFunc)                                                                GET_PROC_ADDR("vkCmdSetDeviceMaskKHR");
+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.cmdDispatchBase                                                                   = (CmdDispatchBaseFunc)                                                                 GET_PROC_ADDR("vkCmdDispatchBase");
 if (!m_vk.cmdDispatchBase)
        m_vk.cmdDispatchBase                                                            = (CmdDispatchBaseFunc)                                                                 GET_PROC_ADDR("vkCmdDispatchBaseKHR");
-m_vk.getImageMemoryRequirements2                                               = (GetImageMemoryRequirements2Func)                                             GET_PROC_ADDR("vkGetImageMemoryRequirements2");
-if (!m_vk.getImageMemoryRequirements2)
-       m_vk.getImageMemoryRequirements2                                        = (GetImageMemoryRequirements2Func)                                             GET_PROC_ADDR("vkGetImageMemoryRequirements2KHR");
+m_vk.createDescriptorUpdateTemplate                                            = (CreateDescriptorUpdateTemplateFunc)                                  GET_PROC_ADDR("vkCreateDescriptorUpdateTemplate");
+if (!m_vk.createDescriptorUpdateTemplate)
+       m_vk.createDescriptorUpdateTemplate                                     = (CreateDescriptorUpdateTemplateFunc)                                  GET_PROC_ADDR("vkCreateDescriptorUpdateTemplateKHR");
+m_vk.destroyDescriptorUpdateTemplate                                   = (DestroyDescriptorUpdateTemplateFunc)                                 GET_PROC_ADDR("vkDestroyDescriptorUpdateTemplate");
+if (!m_vk.destroyDescriptorUpdateTemplate)
+       m_vk.destroyDescriptorUpdateTemplate                            = (DestroyDescriptorUpdateTemplateFunc)                                 GET_PROC_ADDR("vkDestroyDescriptorUpdateTemplateKHR");
+m_vk.updateDescriptorSetWithTemplate                                   = (UpdateDescriptorSetWithTemplateFunc)                                 GET_PROC_ADDR("vkUpdateDescriptorSetWithTemplate");
+if (!m_vk.updateDescriptorSetWithTemplate)
+       m_vk.updateDescriptorSetWithTemplate                            = (UpdateDescriptorSetWithTemplateFunc)                                 GET_PROC_ADDR("vkUpdateDescriptorSetWithTemplateKHR");
+m_vk.cmdPushDescriptorSetWithTemplateKHR                               = (CmdPushDescriptorSetWithTemplateKHRFunc)                             GET_PROC_ADDR("vkCmdPushDescriptorSetWithTemplateKHR");
+m_vk.setHdrMetadataEXT                                                                 = (SetHdrMetadataEXTFunc)                                                               GET_PROC_ADDR("vkSetHdrMetadataEXT");
+m_vk.getSwapchainStatusKHR                                                             = (GetSwapchainStatusKHRFunc)                                                   GET_PROC_ADDR("vkGetSwapchainStatusKHR");
+m_vk.getRefreshCycleDurationGOOGLE                                             = (GetRefreshCycleDurationGOOGLEFunc)                                   GET_PROC_ADDR("vkGetRefreshCycleDurationGOOGLE");
+m_vk.getPastPresentationTimingGOOGLE                                   = (GetPastPresentationTimingGOOGLEFunc)                                 GET_PROC_ADDR("vkGetPastPresentationTimingGOOGLE");
+m_vk.cmdSetViewportWScalingNV                                                  = (CmdSetViewportWScalingNVFunc)                                                GET_PROC_ADDR("vkCmdSetViewportWScalingNV");
+m_vk.cmdSetDiscardRectangleEXT                                                 = (CmdSetDiscardRectangleEXTFunc)                                               GET_PROC_ADDR("vkCmdSetDiscardRectangleEXT");
+m_vk.cmdSetSampleLocationsEXT                                                  = (CmdSetSampleLocationsEXTFunc)                                                GET_PROC_ADDR("vkCmdSetSampleLocationsEXT");
 m_vk.getBufferMemoryRequirements2                                              = (GetBufferMemoryRequirements2Func)                                    GET_PROC_ADDR("vkGetBufferMemoryRequirements2");
 if (!m_vk.getBufferMemoryRequirements2)
        m_vk.getBufferMemoryRequirements2                                       = (GetBufferMemoryRequirements2Func)                                    GET_PROC_ADDR("vkGetBufferMemoryRequirements2KHR");
+m_vk.getImageMemoryRequirements2                                               = (GetImageMemoryRequirements2Func)                                             GET_PROC_ADDR("vkGetImageMemoryRequirements2");
+if (!m_vk.getImageMemoryRequirements2)
+       m_vk.getImageMemoryRequirements2                                        = (GetImageMemoryRequirements2Func)                                             GET_PROC_ADDR("vkGetImageMemoryRequirements2KHR");
 m_vk.getImageSparseMemoryRequirements2                                 = (GetImageSparseMemoryRequirements2Func)                               GET_PROC_ADDR("vkGetImageSparseMemoryRequirements2");
 if (!m_vk.getImageSparseMemoryRequirements2)
        m_vk.getImageSparseMemoryRequirements2                          = (GetImageSparseMemoryRequirements2Func)                               GET_PROC_ADDR("vkGetImageSparseMemoryRequirements2KHR");
-m_vk.trimCommandPool                                                                   = (TrimCommandPoolFunc)                                                                 GET_PROC_ADDR("vkTrimCommandPool");
-if (!m_vk.trimCommandPool)
-       m_vk.trimCommandPool                                                            = (TrimCommandPoolFunc)                                                                 GET_PROC_ADDR("vkTrimCommandPoolKHR");
-m_vk.getDeviceQueue2                                                                   = (GetDeviceQueue2Func)                                                                 GET_PROC_ADDR("vkGetDeviceQueue2");
+m_vk.getDeviceBufferMemoryRequirements                                 = (GetDeviceBufferMemoryRequirementsFunc)                               GET_PROC_ADDR("vkGetDeviceBufferMemoryRequirements");
+if (!m_vk.getDeviceBufferMemoryRequirements)
+       m_vk.getDeviceBufferMemoryRequirements                          = (GetDeviceBufferMemoryRequirementsFunc)                               GET_PROC_ADDR("vkGetDeviceBufferMemoryRequirementsKHR");
+m_vk.getDeviceImageMemoryRequirements                                  = (GetDeviceImageMemoryRequirementsFunc)                                GET_PROC_ADDR("vkGetDeviceImageMemoryRequirements");
+if (!m_vk.getDeviceImageMemoryRequirements)
+       m_vk.getDeviceImageMemoryRequirements                           = (GetDeviceImageMemoryRequirementsFunc)                                GET_PROC_ADDR("vkGetDeviceImageMemoryRequirementsKHR");
+m_vk.getDeviceImageSparseMemoryRequirements                            = (GetDeviceImageSparseMemoryRequirementsFunc)                  GET_PROC_ADDR("vkGetDeviceImageSparseMemoryRequirements");
+if (!m_vk.getDeviceImageSparseMemoryRequirements)
+       m_vk.getDeviceImageSparseMemoryRequirements                     = (GetDeviceImageSparseMemoryRequirementsFunc)                  GET_PROC_ADDR("vkGetDeviceImageSparseMemoryRequirementsKHR");
 m_vk.createSamplerYcbcrConversion                                              = (CreateSamplerYcbcrConversionFunc)                                    GET_PROC_ADDR("vkCreateSamplerYcbcrConversion");
 if (!m_vk.createSamplerYcbcrConversion)
        m_vk.createSamplerYcbcrConversion                                       = (CreateSamplerYcbcrConversionFunc)                                    GET_PROC_ADDR("vkCreateSamplerYcbcrConversionKHR");
 m_vk.destroySamplerYcbcrConversion                                             = (DestroySamplerYcbcrConversionFunc)                                   GET_PROC_ADDR("vkDestroySamplerYcbcrConversion");
 if (!m_vk.destroySamplerYcbcrConversion)
        m_vk.destroySamplerYcbcrConversion                                      = (DestroySamplerYcbcrConversionFunc)                                   GET_PROC_ADDR("vkDestroySamplerYcbcrConversionKHR");
-m_vk.createDescriptorUpdateTemplate                                            = (CreateDescriptorUpdateTemplateFunc)                                  GET_PROC_ADDR("vkCreateDescriptorUpdateTemplate");
-if (!m_vk.createDescriptorUpdateTemplate)
-       m_vk.createDescriptorUpdateTemplate                                     = (CreateDescriptorUpdateTemplateFunc)                                  GET_PROC_ADDR("vkCreateDescriptorUpdateTemplateKHR");
-m_vk.destroyDescriptorUpdateTemplate                                   = (DestroyDescriptorUpdateTemplateFunc)                                 GET_PROC_ADDR("vkDestroyDescriptorUpdateTemplate");
-if (!m_vk.destroyDescriptorUpdateTemplate)
-       m_vk.destroyDescriptorUpdateTemplate                            = (DestroyDescriptorUpdateTemplateFunc)                                 GET_PROC_ADDR("vkDestroyDescriptorUpdateTemplateKHR");
-m_vk.updateDescriptorSetWithTemplate                                   = (UpdateDescriptorSetWithTemplateFunc)                                 GET_PROC_ADDR("vkUpdateDescriptorSetWithTemplate");
-if (!m_vk.updateDescriptorSetWithTemplate)
-       m_vk.updateDescriptorSetWithTemplate                            = (UpdateDescriptorSetWithTemplateFunc)                                 GET_PROC_ADDR("vkUpdateDescriptorSetWithTemplateKHR");
+m_vk.getDeviceQueue2                                                                   = (GetDeviceQueue2Func)                                                                 GET_PROC_ADDR("vkGetDeviceQueue2");
+m_vk.createValidationCacheEXT                                                  = (CreateValidationCacheEXTFunc)                                                GET_PROC_ADDR("vkCreateValidationCacheEXT");
+m_vk.destroyValidationCacheEXT                                                 = (DestroyValidationCacheEXTFunc)                                               GET_PROC_ADDR("vkDestroyValidationCacheEXT");
+m_vk.getValidationCacheDataEXT                                                 = (GetValidationCacheDataEXTFunc)                                               GET_PROC_ADDR("vkGetValidationCacheDataEXT");
+m_vk.mergeValidationCachesEXT                                                  = (MergeValidationCachesEXTFunc)                                                GET_PROC_ADDR("vkMergeValidationCachesEXT");
 m_vk.getDescriptorSetLayoutSupport                                             = (GetDescriptorSetLayoutSupportFunc)                                   GET_PROC_ADDR("vkGetDescriptorSetLayoutSupport");
 if (!m_vk.getDescriptorSetLayoutSupport)
        m_vk.getDescriptorSetLayoutSupport                                      = (GetDescriptorSetLayoutSupportFunc)                                   GET_PROC_ADDR("vkGetDescriptorSetLayoutSupportKHR");
-m_vk.cmdDrawIndirectCount                                                              = (CmdDrawIndirectCountFunc)                                                    GET_PROC_ADDR("vkCmdDrawIndirectCount");
-if (!m_vk.cmdDrawIndirectCount)
-       m_vk.cmdDrawIndirectCount                                                       = (CmdDrawIndirectCountFunc)                                                    GET_PROC_ADDR("vkCmdDrawIndirectCountKHR");
-m_vk.cmdDrawIndexedIndirectCount                                               = (CmdDrawIndexedIndirectCountFunc)                                             GET_PROC_ADDR("vkCmdDrawIndexedIndirectCount");
-if (!m_vk.cmdDrawIndexedIndirectCount)
-       m_vk.cmdDrawIndexedIndirectCount                                        = (CmdDrawIndexedIndirectCountFunc)                                             GET_PROC_ADDR("vkCmdDrawIndexedIndirectCountKHR");
+m_vk.getShaderInfoAMD                                                                  = (GetShaderInfoAMDFunc)                                                                GET_PROC_ADDR("vkGetShaderInfoAMD");
+m_vk.setLocalDimmingAMD                                                                        = (SetLocalDimmingAMDFunc)                                                              GET_PROC_ADDR("vkSetLocalDimmingAMD");
+m_vk.getCalibratedTimestampsEXT                                                        = (GetCalibratedTimestampsEXTFunc)                                              GET_PROC_ADDR("vkGetCalibratedTimestampsEXT");
+m_vk.setDebugUtilsObjectNameEXT                                                        = (SetDebugUtilsObjectNameEXTFunc)                                              GET_PROC_ADDR("vkSetDebugUtilsObjectNameEXT");
+m_vk.setDebugUtilsObjectTagEXT                                                 = (SetDebugUtilsObjectTagEXTFunc)                                               GET_PROC_ADDR("vkSetDebugUtilsObjectTagEXT");
+m_vk.queueBeginDebugUtilsLabelEXT                                              = (QueueBeginDebugUtilsLabelEXTFunc)                                    GET_PROC_ADDR("vkQueueBeginDebugUtilsLabelEXT");
+m_vk.queueEndDebugUtilsLabelEXT                                                        = (QueueEndDebugUtilsLabelEXTFunc)                                              GET_PROC_ADDR("vkQueueEndDebugUtilsLabelEXT");
+m_vk.queueInsertDebugUtilsLabelEXT                                             = (QueueInsertDebugUtilsLabelEXTFunc)                                   GET_PROC_ADDR("vkQueueInsertDebugUtilsLabelEXT");
+m_vk.cmdBeginDebugUtilsLabelEXT                                                        = (CmdBeginDebugUtilsLabelEXTFunc)                                              GET_PROC_ADDR("vkCmdBeginDebugUtilsLabelEXT");
+m_vk.cmdEndDebugUtilsLabelEXT                                                  = (CmdEndDebugUtilsLabelEXTFunc)                                                GET_PROC_ADDR("vkCmdEndDebugUtilsLabelEXT");
+m_vk.cmdInsertDebugUtilsLabelEXT                                               = (CmdInsertDebugUtilsLabelEXTFunc)                                             GET_PROC_ADDR("vkCmdInsertDebugUtilsLabelEXT");
+m_vk.getMemoryHostPointerPropertiesEXT                                 = (GetMemoryHostPointerPropertiesEXTFunc)                               GET_PROC_ADDR("vkGetMemoryHostPointerPropertiesEXT");
+m_vk.cmdWriteBufferMarkerAMD                                                   = (CmdWriteBufferMarkerAMDFunc)                                                 GET_PROC_ADDR("vkCmdWriteBufferMarkerAMD");
 m_vk.createRenderPass2                                                                 = (CreateRenderPass2Func)                                                               GET_PROC_ADDR("vkCreateRenderPass2");
 if (!m_vk.createRenderPass2)
        m_vk.createRenderPass2                                                          = (CreateRenderPass2Func)                                                               GET_PROC_ADDR("vkCreateRenderPass2KHR");
@@ -188,9 +268,6 @@ if (!m_vk.cmdNextSubpass2)
 m_vk.cmdEndRenderPass2                                                                 = (CmdEndRenderPass2Func)                                                               GET_PROC_ADDR("vkCmdEndRenderPass2");
 if (!m_vk.cmdEndRenderPass2)
        m_vk.cmdEndRenderPass2                                                          = (CmdEndRenderPass2Func)                                                               GET_PROC_ADDR("vkCmdEndRenderPass2KHR");
-m_vk.resetQueryPool                                                                            = (ResetQueryPoolFunc)                                                                  GET_PROC_ADDR("vkResetQueryPool");
-if (!m_vk.resetQueryPool)
-       m_vk.resetQueryPool                                                                     = (ResetQueryPoolFunc)                                                                  GET_PROC_ADDR("vkResetQueryPoolEXT");
 m_vk.getSemaphoreCounterValue                                                  = (GetSemaphoreCounterValueFunc)                                                GET_PROC_ADDR("vkGetSemaphoreCounterValue");
 if (!m_vk.getSemaphoreCounterValue)
        m_vk.getSemaphoreCounterValue                                           = (GetSemaphoreCounterValueFunc)                                                GET_PROC_ADDR("vkGetSemaphoreCounterValueKHR");
@@ -200,69 +277,107 @@ if (!m_vk.waitSemaphores)
 m_vk.signalSemaphore                                                                   = (SignalSemaphoreFunc)                                                                 GET_PROC_ADDR("vkSignalSemaphore");
 if (!m_vk.signalSemaphore)
        m_vk.signalSemaphore                                                            = (SignalSemaphoreFunc)                                                                 GET_PROC_ADDR("vkSignalSemaphoreKHR");
-m_vk.getBufferDeviceAddress                                                            = (GetBufferDeviceAddressFunc)                                                  GET_PROC_ADDR("vkGetBufferDeviceAddress");
-if (!m_vk.getBufferDeviceAddress)
-       m_vk.getBufferDeviceAddress                                                     = (GetBufferDeviceAddressFunc)                                                  GET_PROC_ADDR("vkGetBufferDeviceAddressKHR");
+m_vk.getAndroidHardwareBufferPropertiesANDROID                 = (GetAndroidHardwareBufferPropertiesANDROIDFunc)               GET_PROC_ADDR("vkGetAndroidHardwareBufferPropertiesANDROID");
+m_vk.getMemoryAndroidHardwareBufferANDROID                             = (GetMemoryAndroidHardwareBufferANDROIDFunc)                   GET_PROC_ADDR("vkGetMemoryAndroidHardwareBufferANDROID");
+m_vk.cmdDrawIndirectCount                                                              = (CmdDrawIndirectCountFunc)                                                    GET_PROC_ADDR("vkCmdDrawIndirectCount");
+if (!m_vk.cmdDrawIndirectCount)
+       m_vk.cmdDrawIndirectCount                                                       = (CmdDrawIndirectCountFunc)                                                    GET_PROC_ADDR("vkCmdDrawIndirectCountKHR");
+if (!m_vk.cmdDrawIndirectCount)
+       m_vk.cmdDrawIndirectCount                                                       = (CmdDrawIndirectCountFunc)                                                    GET_PROC_ADDR("vkCmdDrawIndirectCountAMD");
+m_vk.cmdDrawIndexedIndirectCount                                               = (CmdDrawIndexedIndirectCountFunc)                                             GET_PROC_ADDR("vkCmdDrawIndexedIndirectCount");
+if (!m_vk.cmdDrawIndexedIndirectCount)
+       m_vk.cmdDrawIndexedIndirectCount                                        = (CmdDrawIndexedIndirectCountFunc)                                             GET_PROC_ADDR("vkCmdDrawIndexedIndirectCountKHR");
+if (!m_vk.cmdDrawIndexedIndirectCount)
+       m_vk.cmdDrawIndexedIndirectCount                                        = (CmdDrawIndexedIndirectCountFunc)                                             GET_PROC_ADDR("vkCmdDrawIndexedIndirectCountAMD");
+m_vk.cmdSetCheckpointNV                                                                        = (CmdSetCheckpointNVFunc)                                                              GET_PROC_ADDR("vkCmdSetCheckpointNV");
+m_vk.getQueueCheckpointDataNV                                                  = (GetQueueCheckpointDataNVFunc)                                                GET_PROC_ADDR("vkGetQueueCheckpointDataNV");
+m_vk.cmdBindTransformFeedbackBuffersEXT                                        = (CmdBindTransformFeedbackBuffersEXTFunc)                              GET_PROC_ADDR("vkCmdBindTransformFeedbackBuffersEXT");
+m_vk.cmdBeginTransformFeedbackEXT                                              = (CmdBeginTransformFeedbackEXTFunc)                                    GET_PROC_ADDR("vkCmdBeginTransformFeedbackEXT");
+m_vk.cmdEndTransformFeedbackEXT                                                        = (CmdEndTransformFeedbackEXTFunc)                                              GET_PROC_ADDR("vkCmdEndTransformFeedbackEXT");
+m_vk.cmdBeginQueryIndexedEXT                                                   = (CmdBeginQueryIndexedEXTFunc)                                                 GET_PROC_ADDR("vkCmdBeginQueryIndexedEXT");
+m_vk.cmdEndQueryIndexedEXT                                                             = (CmdEndQueryIndexedEXTFunc)                                                   GET_PROC_ADDR("vkCmdEndQueryIndexedEXT");
+m_vk.cmdDrawIndirectByteCountEXT                                               = (CmdDrawIndirectByteCountEXTFunc)                                             GET_PROC_ADDR("vkCmdDrawIndirectByteCountEXT");
+m_vk.cmdSetExclusiveScissorNV                                                  = (CmdSetExclusiveScissorNVFunc)                                                GET_PROC_ADDR("vkCmdSetExclusiveScissorNV");
+m_vk.cmdBindShadingRateImageNV                                                 = (CmdBindShadingRateImageNVFunc)                                               GET_PROC_ADDR("vkCmdBindShadingRateImageNV");
+m_vk.cmdSetViewportShadingRatePaletteNV                                        = (CmdSetViewportShadingRatePaletteNVFunc)                              GET_PROC_ADDR("vkCmdSetViewportShadingRatePaletteNV");
+m_vk.cmdSetCoarseSampleOrderNV                                                 = (CmdSetCoarseSampleOrderNVFunc)                                               GET_PROC_ADDR("vkCmdSetCoarseSampleOrderNV");
+m_vk.cmdDrawMeshTasksNV                                                                        = (CmdDrawMeshTasksNVFunc)                                                              GET_PROC_ADDR("vkCmdDrawMeshTasksNV");
+m_vk.cmdDrawMeshTasksIndirectNV                                                        = (CmdDrawMeshTasksIndirectNVFunc)                                              GET_PROC_ADDR("vkCmdDrawMeshTasksIndirectNV");
+m_vk.cmdDrawMeshTasksIndirectCountNV                                   = (CmdDrawMeshTasksIndirectCountNVFunc)                                 GET_PROC_ADDR("vkCmdDrawMeshTasksIndirectCountNV");
+m_vk.compileDeferredNV                                                                 = (CompileDeferredNVFunc)                                                               GET_PROC_ADDR("vkCompileDeferredNV");
+m_vk.createAccelerationStructureNV                                             = (CreateAccelerationStructureNVFunc)                                   GET_PROC_ADDR("vkCreateAccelerationStructureNV");
+m_vk.cmdBindInvocationMaskHUAWEI                                               = (CmdBindInvocationMaskHUAWEIFunc)                                             GET_PROC_ADDR("vkCmdBindInvocationMaskHUAWEI");
+m_vk.destroyAccelerationStructureKHR                                   = (DestroyAccelerationStructureKHRFunc)                                 GET_PROC_ADDR("vkDestroyAccelerationStructureKHR");
+m_vk.destroyAccelerationStructureNV                                            = (DestroyAccelerationStructureNVFunc)                                  GET_PROC_ADDR("vkDestroyAccelerationStructureNV");
+m_vk.getAccelerationStructureMemoryRequirementsNV              = (GetAccelerationStructureMemoryRequirementsNVFunc)    GET_PROC_ADDR("vkGetAccelerationStructureMemoryRequirementsNV");
+m_vk.bindAccelerationStructureMemoryNV                                 = (BindAccelerationStructureMemoryNVFunc)                               GET_PROC_ADDR("vkBindAccelerationStructureMemoryNV");
+m_vk.cmdCopyAccelerationStructureNV                                            = (CmdCopyAccelerationStructureNVFunc)                                  GET_PROC_ADDR("vkCmdCopyAccelerationStructureNV");
+m_vk.cmdCopyAccelerationStructureKHR                                   = (CmdCopyAccelerationStructureKHRFunc)                                 GET_PROC_ADDR("vkCmdCopyAccelerationStructureKHR");
+m_vk.copyAccelerationStructureKHR                                              = (CopyAccelerationStructureKHRFunc)                                    GET_PROC_ADDR("vkCopyAccelerationStructureKHR");
+m_vk.cmdCopyAccelerationStructureToMemoryKHR                   = (CmdCopyAccelerationStructureToMemoryKHRFunc)                 GET_PROC_ADDR("vkCmdCopyAccelerationStructureToMemoryKHR");
+m_vk.copyAccelerationStructureToMemoryKHR                              = (CopyAccelerationStructureToMemoryKHRFunc)                    GET_PROC_ADDR("vkCopyAccelerationStructureToMemoryKHR");
+m_vk.cmdCopyMemoryToAccelerationStructureKHR                   = (CmdCopyMemoryToAccelerationStructureKHRFunc)                 GET_PROC_ADDR("vkCmdCopyMemoryToAccelerationStructureKHR");
+m_vk.copyMemoryToAccelerationStructureKHR                              = (CopyMemoryToAccelerationStructureKHRFunc)                    GET_PROC_ADDR("vkCopyMemoryToAccelerationStructureKHR");
+m_vk.cmdWriteAccelerationStructuresPropertiesKHR               = (CmdWriteAccelerationStructuresPropertiesKHRFunc)             GET_PROC_ADDR("vkCmdWriteAccelerationStructuresPropertiesKHR");
+m_vk.cmdWriteAccelerationStructuresPropertiesNV                        = (CmdWriteAccelerationStructuresPropertiesNVFunc)              GET_PROC_ADDR("vkCmdWriteAccelerationStructuresPropertiesNV");
+m_vk.cmdBuildAccelerationStructureNV                                   = (CmdBuildAccelerationStructureNVFunc)                                 GET_PROC_ADDR("vkCmdBuildAccelerationStructureNV");
+m_vk.writeAccelerationStructuresPropertiesKHR                  = (WriteAccelerationStructuresPropertiesKHRFunc)                GET_PROC_ADDR("vkWriteAccelerationStructuresPropertiesKHR");
+m_vk.cmdTraceRaysKHR                                                                   = (CmdTraceRaysKHRFunc)                                                                 GET_PROC_ADDR("vkCmdTraceRaysKHR");
+m_vk.cmdTraceRaysNV                                                                            = (CmdTraceRaysNVFunc)                                                                  GET_PROC_ADDR("vkCmdTraceRaysNV");
+m_vk.getRayTracingShaderGroupHandlesKHR                                        = (GetRayTracingShaderGroupHandlesKHRFunc)                              GET_PROC_ADDR("vkGetRayTracingShaderGroupHandlesKHR");
+if (!m_vk.getRayTracingShaderGroupHandlesKHR)
+       m_vk.getRayTracingShaderGroupHandlesKHR                         = (GetRayTracingShaderGroupHandlesKHRFunc)                              GET_PROC_ADDR("vkGetRayTracingShaderGroupHandlesNV");
+m_vk.getRayTracingCaptureReplayShaderGroupHandlesKHR   = (GetRayTracingCaptureReplayShaderGroupHandlesKHRFunc) GET_PROC_ADDR("vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
+m_vk.getAccelerationStructureHandleNV                                  = (GetAccelerationStructureHandleNVFunc)                                GET_PROC_ADDR("vkGetAccelerationStructureHandleNV");
+m_vk.createRayTracingPipelinesNV                                               = (CreateRayTracingPipelinesNVFunc)                                             GET_PROC_ADDR("vkCreateRayTracingPipelinesNV");
+m_vk.createRayTracingPipelinesKHR                                              = (CreateRayTracingPipelinesKHRFunc)                                    GET_PROC_ADDR("vkCreateRayTracingPipelinesKHR");
+m_vk.cmdTraceRaysIndirectKHR                                                   = (CmdTraceRaysIndirectKHRFunc)                                                 GET_PROC_ADDR("vkCmdTraceRaysIndirectKHR");
+m_vk.cmdTraceRaysIndirect2KHR                                                  = (CmdTraceRaysIndirect2KHRFunc)                                                GET_PROC_ADDR("vkCmdTraceRaysIndirect2KHR");
+m_vk.getDeviceAccelerationStructureCompatibilityKHR            = (GetDeviceAccelerationStructureCompatibilityKHRFunc)  GET_PROC_ADDR("vkGetDeviceAccelerationStructureCompatibilityKHR");
+m_vk.getRayTracingShaderGroupStackSizeKHR                              = (GetRayTracingShaderGroupStackSizeKHRFunc)                    GET_PROC_ADDR("vkGetRayTracingShaderGroupStackSizeKHR");
+m_vk.cmdSetRayTracingPipelineStackSizeKHR                              = (CmdSetRayTracingPipelineStackSizeKHRFunc)                    GET_PROC_ADDR("vkCmdSetRayTracingPipelineStackSizeKHR");
+m_vk.getImageViewHandleNVX                                                             = (GetImageViewHandleNVXFunc)                                                   GET_PROC_ADDR("vkGetImageViewHandleNVX");
+m_vk.getImageViewAddressNVX                                                            = (GetImageViewAddressNVXFunc)                                                  GET_PROC_ADDR("vkGetImageViewAddressNVX");
+m_vk.getDeviceGroupSurfacePresentModes2EXT                             = (GetDeviceGroupSurfacePresentModes2EXTFunc)                   GET_PROC_ADDR("vkGetDeviceGroupSurfacePresentModes2EXT");
+m_vk.acquireFullScreenExclusiveModeEXT                                 = (AcquireFullScreenExclusiveModeEXTFunc)                               GET_PROC_ADDR("vkAcquireFullScreenExclusiveModeEXT");
+m_vk.releaseFullScreenExclusiveModeEXT                                 = (ReleaseFullScreenExclusiveModeEXTFunc)                               GET_PROC_ADDR("vkReleaseFullScreenExclusiveModeEXT");
+m_vk.acquireProfilingLockKHR                                                   = (AcquireProfilingLockKHRFunc)                                                 GET_PROC_ADDR("vkAcquireProfilingLockKHR");
+m_vk.releaseProfilingLockKHR                                                   = (ReleaseProfilingLockKHRFunc)                                                 GET_PROC_ADDR("vkReleaseProfilingLockKHR");
+m_vk.getImageDrmFormatModifierPropertiesEXT                            = (GetImageDrmFormatModifierPropertiesEXTFunc)                  GET_PROC_ADDR("vkGetImageDrmFormatModifierPropertiesEXT");
 m_vk.getBufferOpaqueCaptureAddress                                             = (GetBufferOpaqueCaptureAddressFunc)                                   GET_PROC_ADDR("vkGetBufferOpaqueCaptureAddress");
 if (!m_vk.getBufferOpaqueCaptureAddress)
        m_vk.getBufferOpaqueCaptureAddress                                      = (GetBufferOpaqueCaptureAddressFunc)                                   GET_PROC_ADDR("vkGetBufferOpaqueCaptureAddressKHR");
+m_vk.getBufferDeviceAddress                                                            = (GetBufferDeviceAddressFunc)                                                  GET_PROC_ADDR("vkGetBufferDeviceAddress");
+if (!m_vk.getBufferDeviceAddress)
+       m_vk.getBufferDeviceAddress                                                     = (GetBufferDeviceAddressFunc)                                                  GET_PROC_ADDR("vkGetBufferDeviceAddressKHR");
+if (!m_vk.getBufferDeviceAddress)
+       m_vk.getBufferDeviceAddress                                                     = (GetBufferDeviceAddressFunc)                                                  GET_PROC_ADDR("vkGetBufferDeviceAddressEXT");
+m_vk.initializePerformanceApiINTEL                                             = (InitializePerformanceApiINTELFunc)                                   GET_PROC_ADDR("vkInitializePerformanceApiINTEL");
+m_vk.uninitializePerformanceApiINTEL                                   = (UninitializePerformanceApiINTELFunc)                                 GET_PROC_ADDR("vkUninitializePerformanceApiINTEL");
+m_vk.cmdSetPerformanceMarkerINTEL                                              = (CmdSetPerformanceMarkerINTELFunc)                                    GET_PROC_ADDR("vkCmdSetPerformanceMarkerINTEL");
+m_vk.cmdSetPerformanceStreamMarkerINTEL                                        = (CmdSetPerformanceStreamMarkerINTELFunc)                              GET_PROC_ADDR("vkCmdSetPerformanceStreamMarkerINTEL");
+m_vk.cmdSetPerformanceOverrideINTEL                                            = (CmdSetPerformanceOverrideINTELFunc)                                  GET_PROC_ADDR("vkCmdSetPerformanceOverrideINTEL");
+m_vk.acquirePerformanceConfigurationINTEL                              = (AcquirePerformanceConfigurationINTELFunc)                    GET_PROC_ADDR("vkAcquirePerformanceConfigurationINTEL");
+m_vk.releasePerformanceConfigurationINTEL                              = (ReleasePerformanceConfigurationINTELFunc)                    GET_PROC_ADDR("vkReleasePerformanceConfigurationINTEL");
+m_vk.queueSetPerformanceConfigurationINTEL                             = (QueueSetPerformanceConfigurationINTELFunc)                   GET_PROC_ADDR("vkQueueSetPerformanceConfigurationINTEL");
+m_vk.getPerformanceParameterINTEL                                              = (GetPerformanceParameterINTELFunc)                                    GET_PROC_ADDR("vkGetPerformanceParameterINTEL");
 m_vk.getDeviceMemoryOpaqueCaptureAddress                               = (GetDeviceMemoryOpaqueCaptureAddressFunc)                             GET_PROC_ADDR("vkGetDeviceMemoryOpaqueCaptureAddress");
 if (!m_vk.getDeviceMemoryOpaqueCaptureAddress)
        m_vk.getDeviceMemoryOpaqueCaptureAddress                        = (GetDeviceMemoryOpaqueCaptureAddressFunc)                             GET_PROC_ADDR("vkGetDeviceMemoryOpaqueCaptureAddressKHR");
-m_vk.createPrivateDataSlot                                                             = (CreatePrivateDataSlotFunc)                                                   GET_PROC_ADDR("vkCreatePrivateDataSlot");
-if (!m_vk.createPrivateDataSlot)
-       m_vk.createPrivateDataSlot                                                      = (CreatePrivateDataSlotFunc)                                                   GET_PROC_ADDR("vkCreatePrivateDataSlotEXT");
-m_vk.destroyPrivateDataSlot                                                            = (DestroyPrivateDataSlotFunc)                                                  GET_PROC_ADDR("vkDestroyPrivateDataSlot");
-if (!m_vk.destroyPrivateDataSlot)
-       m_vk.destroyPrivateDataSlot                                                     = (DestroyPrivateDataSlotFunc)                                                  GET_PROC_ADDR("vkDestroyPrivateDataSlotEXT");
-m_vk.setPrivateData                                                                            = (SetPrivateDataFunc)                                                                  GET_PROC_ADDR("vkSetPrivateData");
-if (!m_vk.setPrivateData)
-       m_vk.setPrivateData                                                                     = (SetPrivateDataFunc)                                                                  GET_PROC_ADDR("vkSetPrivateDataEXT");
-m_vk.getPrivateData                                                                            = (GetPrivateDataFunc)                                                                  GET_PROC_ADDR("vkGetPrivateData");
-if (!m_vk.getPrivateData)
-       m_vk.getPrivateData                                                                     = (GetPrivateDataFunc)                                                                  GET_PROC_ADDR("vkGetPrivateDataEXT");
-m_vk.cmdSetEvent2                                                                              = (CmdSetEvent2Func)                                                                    GET_PROC_ADDR("vkCmdSetEvent2");
-if (!m_vk.cmdSetEvent2)
-       m_vk.cmdSetEvent2                                                                       = (CmdSetEvent2Func)                                                                    GET_PROC_ADDR("vkCmdSetEvent2KHR");
-m_vk.cmdResetEvent2                                                                            = (CmdResetEvent2Func)                                                                  GET_PROC_ADDR("vkCmdResetEvent2");
-if (!m_vk.cmdResetEvent2)
-       m_vk.cmdResetEvent2                                                                     = (CmdResetEvent2Func)                                                                  GET_PROC_ADDR("vkCmdResetEvent2KHR");
-m_vk.cmdWaitEvents2                                                                            = (CmdWaitEvents2Func)                                                                  GET_PROC_ADDR("vkCmdWaitEvents2");
-if (!m_vk.cmdWaitEvents2)
-       m_vk.cmdWaitEvents2                                                                     = (CmdWaitEvents2Func)                                                                  GET_PROC_ADDR("vkCmdWaitEvents2KHR");
-m_vk.cmdPipelineBarrier2                                                               = (CmdPipelineBarrier2Func)                                                             GET_PROC_ADDR("vkCmdPipelineBarrier2");
-if (!m_vk.cmdPipelineBarrier2)
-       m_vk.cmdPipelineBarrier2                                                        = (CmdPipelineBarrier2Func)                                                             GET_PROC_ADDR("vkCmdPipelineBarrier2KHR");
-m_vk.cmdWriteTimestamp2                                                                        = (CmdWriteTimestamp2Func)                                                              GET_PROC_ADDR("vkCmdWriteTimestamp2");
-if (!m_vk.cmdWriteTimestamp2)
-       m_vk.cmdWriteTimestamp2                                                         = (CmdWriteTimestamp2Func)                                                              GET_PROC_ADDR("vkCmdWriteTimestamp2KHR");
-m_vk.queueSubmit2                                                                              = (QueueSubmit2Func)                                                                    GET_PROC_ADDR("vkQueueSubmit2");
-if (!m_vk.queueSubmit2)
-       m_vk.queueSubmit2                                                                       = (QueueSubmit2Func)                                                                    GET_PROC_ADDR("vkQueueSubmit2KHR");
-m_vk.cmdCopyBuffer2                                                                            = (CmdCopyBuffer2Func)                                                                  GET_PROC_ADDR("vkCmdCopyBuffer2");
-if (!m_vk.cmdCopyBuffer2)
-       m_vk.cmdCopyBuffer2                                                                     = (CmdCopyBuffer2Func)                                                                  GET_PROC_ADDR("vkCmdCopyBuffer2KHR");
-m_vk.cmdCopyImage2                                                                             = (CmdCopyImage2Func)                                                                   GET_PROC_ADDR("vkCmdCopyImage2");
-if (!m_vk.cmdCopyImage2)
-       m_vk.cmdCopyImage2                                                                      = (CmdCopyImage2Func)                                                                   GET_PROC_ADDR("vkCmdCopyImage2KHR");
-m_vk.cmdCopyBufferToImage2                                                             = (CmdCopyBufferToImage2Func)                                                   GET_PROC_ADDR("vkCmdCopyBufferToImage2");
-if (!m_vk.cmdCopyBufferToImage2)
-       m_vk.cmdCopyBufferToImage2                                                      = (CmdCopyBufferToImage2Func)                                                   GET_PROC_ADDR("vkCmdCopyBufferToImage2KHR");
-m_vk.cmdCopyImageToBuffer2                                                             = (CmdCopyImageToBuffer2Func)                                                   GET_PROC_ADDR("vkCmdCopyImageToBuffer2");
-if (!m_vk.cmdCopyImageToBuffer2)
-       m_vk.cmdCopyImageToBuffer2                                                      = (CmdCopyImageToBuffer2Func)                                                   GET_PROC_ADDR("vkCmdCopyImageToBuffer2KHR");
-m_vk.cmdBlitImage2                                                                             = (CmdBlitImage2Func)                                                                   GET_PROC_ADDR("vkCmdBlitImage2");
-if (!m_vk.cmdBlitImage2)
-       m_vk.cmdBlitImage2                                                                      = (CmdBlitImage2Func)                                                                   GET_PROC_ADDR("vkCmdBlitImage2KHR");
-m_vk.cmdResolveImage2                                                                  = (CmdResolveImage2Func)                                                                GET_PROC_ADDR("vkCmdResolveImage2");
-if (!m_vk.cmdResolveImage2)
-       m_vk.cmdResolveImage2                                                           = (CmdResolveImage2Func)                                                                GET_PROC_ADDR("vkCmdResolveImage2KHR");
-m_vk.cmdBeginRendering                                                                 = (CmdBeginRenderingFunc)                                                               GET_PROC_ADDR("vkCmdBeginRendering");
-if (!m_vk.cmdBeginRendering)
-       m_vk.cmdBeginRendering                                                          = (CmdBeginRenderingFunc)                                                               GET_PROC_ADDR("vkCmdBeginRenderingKHR");
-m_vk.cmdEndRendering                                                                   = (CmdEndRenderingFunc)                                                                 GET_PROC_ADDR("vkCmdEndRendering");
-if (!m_vk.cmdEndRendering)
-       m_vk.cmdEndRendering                                                            = (CmdEndRenderingFunc)                                                                 GET_PROC_ADDR("vkCmdEndRenderingKHR");
+m_vk.getPipelineExecutablePropertiesKHR                                        = (GetPipelineExecutablePropertiesKHRFunc)                              GET_PROC_ADDR("vkGetPipelineExecutablePropertiesKHR");
+m_vk.getPipelineExecutableStatisticsKHR                                        = (GetPipelineExecutableStatisticsKHRFunc)                              GET_PROC_ADDR("vkGetPipelineExecutableStatisticsKHR");
+m_vk.getPipelineExecutableInternalRepresentationsKHR   = (GetPipelineExecutableInternalRepresentationsKHRFunc) GET_PROC_ADDR("vkGetPipelineExecutableInternalRepresentationsKHR");
+m_vk.cmdSetLineStippleEXT                                                              = (CmdSetLineStippleEXTFunc)                                                    GET_PROC_ADDR("vkCmdSetLineStippleEXT");
+m_vk.createAccelerationStructureKHR                                            = (CreateAccelerationStructureKHRFunc)                                  GET_PROC_ADDR("vkCreateAccelerationStructureKHR");
+m_vk.cmdBuildAccelerationStructuresKHR                                 = (CmdBuildAccelerationStructuresKHRFunc)                               GET_PROC_ADDR("vkCmdBuildAccelerationStructuresKHR");
+m_vk.cmdBuildAccelerationStructuresIndirectKHR                 = (CmdBuildAccelerationStructuresIndirectKHRFunc)               GET_PROC_ADDR("vkCmdBuildAccelerationStructuresIndirectKHR");
+m_vk.buildAccelerationStructuresKHR                                            = (BuildAccelerationStructuresKHRFunc)                                  GET_PROC_ADDR("vkBuildAccelerationStructuresKHR");
+m_vk.getAccelerationStructureDeviceAddressKHR                  = (GetAccelerationStructureDeviceAddressKHRFunc)                GET_PROC_ADDR("vkGetAccelerationStructureDeviceAddressKHR");
+m_vk.createDeferredOperationKHR                                                        = (CreateDeferredOperationKHRFunc)                                              GET_PROC_ADDR("vkCreateDeferredOperationKHR");
+m_vk.destroyDeferredOperationKHR                                               = (DestroyDeferredOperationKHRFunc)                                             GET_PROC_ADDR("vkDestroyDeferredOperationKHR");
+m_vk.getDeferredOperationMaxConcurrencyKHR                             = (GetDeferredOperationMaxConcurrencyKHRFunc)                   GET_PROC_ADDR("vkGetDeferredOperationMaxConcurrencyKHR");
+m_vk.getDeferredOperationResultKHR                                             = (GetDeferredOperationResultKHRFunc)                                   GET_PROC_ADDR("vkGetDeferredOperationResultKHR");
+m_vk.deferredOperationJoinKHR                                                  = (DeferredOperationJoinKHRFunc)                                                GET_PROC_ADDR("vkDeferredOperationJoinKHR");
 m_vk.cmdSetCullMode                                                                            = (CmdSetCullModeFunc)                                                                  GET_PROC_ADDR("vkCmdSetCullMode");
 if (!m_vk.cmdSetCullMode)
        m_vk.cmdSetCullMode                                                                     = (CmdSetCullModeFunc)                                                                  GET_PROC_ADDR("vkCmdSetCullModeEXT");
@@ -299,219 +414,108 @@ if (!m_vk.cmdSetStencilTestEnable)
 m_vk.cmdSetStencilOp                                                                   = (CmdSetStencilOpFunc)                                                                 GET_PROC_ADDR("vkCmdSetStencilOp");
 if (!m_vk.cmdSetStencilOp)
        m_vk.cmdSetStencilOp                                                            = (CmdSetStencilOpFunc)                                                                 GET_PROC_ADDR("vkCmdSetStencilOpEXT");
+m_vk.cmdSetPatchControlPointsEXT                                               = (CmdSetPatchControlPointsEXTFunc)                                             GET_PROC_ADDR("vkCmdSetPatchControlPointsEXT");
 m_vk.cmdSetRasterizerDiscardEnable                                             = (CmdSetRasterizerDiscardEnableFunc)                                   GET_PROC_ADDR("vkCmdSetRasterizerDiscardEnable");
 if (!m_vk.cmdSetRasterizerDiscardEnable)
        m_vk.cmdSetRasterizerDiscardEnable                                      = (CmdSetRasterizerDiscardEnableFunc)                                   GET_PROC_ADDR("vkCmdSetRasterizerDiscardEnableEXT");
 m_vk.cmdSetDepthBiasEnable                                                             = (CmdSetDepthBiasEnableFunc)                                                   GET_PROC_ADDR("vkCmdSetDepthBiasEnable");
 if (!m_vk.cmdSetDepthBiasEnable)
        m_vk.cmdSetDepthBiasEnable                                                      = (CmdSetDepthBiasEnableFunc)                                                   GET_PROC_ADDR("vkCmdSetDepthBiasEnableEXT");
+m_vk.cmdSetLogicOpEXT                                                                  = (CmdSetLogicOpEXTFunc)                                                                GET_PROC_ADDR("vkCmdSetLogicOpEXT");
 m_vk.cmdSetPrimitiveRestartEnable                                              = (CmdSetPrimitiveRestartEnableFunc)                                    GET_PROC_ADDR("vkCmdSetPrimitiveRestartEnable");
 if (!m_vk.cmdSetPrimitiveRestartEnable)
        m_vk.cmdSetPrimitiveRestartEnable                                       = (CmdSetPrimitiveRestartEnableFunc)                                    GET_PROC_ADDR("vkCmdSetPrimitiveRestartEnableEXT");
-m_vk.getDeviceBufferMemoryRequirements                                 = (GetDeviceBufferMemoryRequirementsFunc)                               GET_PROC_ADDR("vkGetDeviceBufferMemoryRequirements");
-if (!m_vk.getDeviceBufferMemoryRequirements)
-       m_vk.getDeviceBufferMemoryRequirements                          = (GetDeviceBufferMemoryRequirementsFunc)                               GET_PROC_ADDR("vkGetDeviceBufferMemoryRequirementsKHR");
-m_vk.getDeviceImageMemoryRequirements                                  = (GetDeviceImageMemoryRequirementsFunc)                                GET_PROC_ADDR("vkGetDeviceImageMemoryRequirements");
-if (!m_vk.getDeviceImageMemoryRequirements)
-       m_vk.getDeviceImageMemoryRequirements                           = (GetDeviceImageMemoryRequirementsFunc)                                GET_PROC_ADDR("vkGetDeviceImageMemoryRequirementsKHR");
-m_vk.getDeviceImageSparseMemoryRequirements                            = (GetDeviceImageSparseMemoryRequirementsFunc)                  GET_PROC_ADDR("vkGetDeviceImageSparseMemoryRequirements");
-if (!m_vk.getDeviceImageSparseMemoryRequirements)
-       m_vk.getDeviceImageSparseMemoryRequirements                     = (GetDeviceImageSparseMemoryRequirementsFunc)                  GET_PROC_ADDR("vkGetDeviceImageSparseMemoryRequirementsKHR");
-m_vk.createSwapchainKHR                                                                        = (CreateSwapchainKHRFunc)                                                              GET_PROC_ADDR("vkCreateSwapchainKHR");
-m_vk.destroySwapchainKHR                                                               = (DestroySwapchainKHRFunc)                                                             GET_PROC_ADDR("vkDestroySwapchainKHR");
-m_vk.getSwapchainImagesKHR                                                             = (GetSwapchainImagesKHRFunc)                                                   GET_PROC_ADDR("vkGetSwapchainImagesKHR");
-m_vk.acquireNextImageKHR                                                               = (AcquireNextImageKHRFunc)                                                             GET_PROC_ADDR("vkAcquireNextImageKHR");
-m_vk.queuePresentKHR                                                                   = (QueuePresentKHRFunc)                                                                 GET_PROC_ADDR("vkQueuePresentKHR");
-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.createSharedSwapchainsKHR                                                 = (CreateSharedSwapchainsKHRFunc)                                               GET_PROC_ADDR("vkCreateSharedSwapchainsKHR");
-m_vk.getMemoryFdKHR                                                                            = (GetMemoryFdKHRFunc)                                                                  GET_PROC_ADDR("vkGetMemoryFdKHR");
-m_vk.getMemoryFdPropertiesKHR                                                  = (GetMemoryFdPropertiesKHRFunc)                                                GET_PROC_ADDR("vkGetMemoryFdPropertiesKHR");
-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.cmdPushDescriptorSetWithTemplateKHR                               = (CmdPushDescriptorSetWithTemplateKHRFunc)                             GET_PROC_ADDR("vkCmdPushDescriptorSetWithTemplateKHR");
-m_vk.getSwapchainStatusKHR                                                             = (GetSwapchainStatusKHRFunc)                                                   GET_PROC_ADDR("vkGetSwapchainStatusKHR");
-m_vk.importFenceFdKHR                                                                  = (ImportFenceFdKHRFunc)                                                                GET_PROC_ADDR("vkImportFenceFdKHR");
-m_vk.getFenceFdKHR                                                                             = (GetFenceFdKHRFunc)                                                                   GET_PROC_ADDR("vkGetFenceFdKHR");
-m_vk.acquireProfilingLockKHR                                                   = (AcquireProfilingLockKHRFunc)                                                 GET_PROC_ADDR("vkAcquireProfilingLockKHR");
-m_vk.releaseProfilingLockKHR                                                   = (ReleaseProfilingLockKHRFunc)                                                 GET_PROC_ADDR("vkReleaseProfilingLockKHR");
+m_vk.createPrivateDataSlot                                                             = (CreatePrivateDataSlotFunc)                                                   GET_PROC_ADDR("vkCreatePrivateDataSlot");
+if (!m_vk.createPrivateDataSlot)
+       m_vk.createPrivateDataSlot                                                      = (CreatePrivateDataSlotFunc)                                                   GET_PROC_ADDR("vkCreatePrivateDataSlotEXT");
+m_vk.destroyPrivateDataSlot                                                            = (DestroyPrivateDataSlotFunc)                                                  GET_PROC_ADDR("vkDestroyPrivateDataSlot");
+if (!m_vk.destroyPrivateDataSlot)
+       m_vk.destroyPrivateDataSlot                                                     = (DestroyPrivateDataSlotFunc)                                                  GET_PROC_ADDR("vkDestroyPrivateDataSlotEXT");
+m_vk.setPrivateData                                                                            = (SetPrivateDataFunc)                                                                  GET_PROC_ADDR("vkSetPrivateData");
+if (!m_vk.setPrivateData)
+       m_vk.setPrivateData                                                                     = (SetPrivateDataFunc)                                                                  GET_PROC_ADDR("vkSetPrivateDataEXT");
+m_vk.getPrivateData                                                                            = (GetPrivateDataFunc)                                                                  GET_PROC_ADDR("vkGetPrivateData");
+if (!m_vk.getPrivateData)
+       m_vk.getPrivateData                                                                     = (GetPrivateDataFunc)                                                                  GET_PROC_ADDR("vkGetPrivateDataEXT");
+m_vk.cmdCopyBuffer2                                                                            = (CmdCopyBuffer2Func)                                                                  GET_PROC_ADDR("vkCmdCopyBuffer2");
+if (!m_vk.cmdCopyBuffer2)
+       m_vk.cmdCopyBuffer2                                                                     = (CmdCopyBuffer2Func)                                                                  GET_PROC_ADDR("vkCmdCopyBuffer2KHR");
+m_vk.cmdCopyImage2                                                                             = (CmdCopyImage2Func)                                                                   GET_PROC_ADDR("vkCmdCopyImage2");
+if (!m_vk.cmdCopyImage2)
+       m_vk.cmdCopyImage2                                                                      = (CmdCopyImage2Func)                                                                   GET_PROC_ADDR("vkCmdCopyImage2KHR");
+m_vk.cmdBlitImage2                                                                             = (CmdBlitImage2Func)                                                                   GET_PROC_ADDR("vkCmdBlitImage2");
+if (!m_vk.cmdBlitImage2)
+       m_vk.cmdBlitImage2                                                                      = (CmdBlitImage2Func)                                                                   GET_PROC_ADDR("vkCmdBlitImage2KHR");
+m_vk.cmdCopyBufferToImage2                                                             = (CmdCopyBufferToImage2Func)                                                   GET_PROC_ADDR("vkCmdCopyBufferToImage2");
+if (!m_vk.cmdCopyBufferToImage2)
+       m_vk.cmdCopyBufferToImage2                                                      = (CmdCopyBufferToImage2Func)                                                   GET_PROC_ADDR("vkCmdCopyBufferToImage2KHR");
+m_vk.cmdCopyImageToBuffer2                                                             = (CmdCopyImageToBuffer2Func)                                                   GET_PROC_ADDR("vkCmdCopyImageToBuffer2");
+if (!m_vk.cmdCopyImageToBuffer2)
+       m_vk.cmdCopyImageToBuffer2                                                      = (CmdCopyImageToBuffer2Func)                                                   GET_PROC_ADDR("vkCmdCopyImageToBuffer2KHR");
+m_vk.cmdResolveImage2                                                                  = (CmdResolveImage2Func)                                                                GET_PROC_ADDR("vkCmdResolveImage2");
+if (!m_vk.cmdResolveImage2)
+       m_vk.cmdResolveImage2                                                           = (CmdResolveImage2Func)                                                                GET_PROC_ADDR("vkCmdResolveImage2KHR");
 m_vk.cmdSetFragmentShadingRateKHR                                              = (CmdSetFragmentShadingRateKHRFunc)                                    GET_PROC_ADDR("vkCmdSetFragmentShadingRateKHR");
-m_vk.waitForPresentKHR                                                                 = (WaitForPresentKHRFunc)                                                               GET_PROC_ADDR("vkWaitForPresentKHR");
-m_vk.createDeferredOperationKHR                                                        = (CreateDeferredOperationKHRFunc)                                              GET_PROC_ADDR("vkCreateDeferredOperationKHR");
-m_vk.destroyDeferredOperationKHR                                               = (DestroyDeferredOperationKHRFunc)                                             GET_PROC_ADDR("vkDestroyDeferredOperationKHR");
-m_vk.getDeferredOperationMaxConcurrencyKHR                             = (GetDeferredOperationMaxConcurrencyKHRFunc)                   GET_PROC_ADDR("vkGetDeferredOperationMaxConcurrencyKHR");
-m_vk.getDeferredOperationResultKHR                                             = (GetDeferredOperationResultKHRFunc)                                   GET_PROC_ADDR("vkGetDeferredOperationResultKHR");
-m_vk.deferredOperationJoinKHR                                                  = (DeferredOperationJoinKHRFunc)                                                GET_PROC_ADDR("vkDeferredOperationJoinKHR");
-m_vk.getPipelineExecutablePropertiesKHR                                        = (GetPipelineExecutablePropertiesKHRFunc)                              GET_PROC_ADDR("vkGetPipelineExecutablePropertiesKHR");
-m_vk.getPipelineExecutableStatisticsKHR                                        = (GetPipelineExecutableStatisticsKHRFunc)                              GET_PROC_ADDR("vkGetPipelineExecutableStatisticsKHR");
-m_vk.getPipelineExecutableInternalRepresentationsKHR   = (GetPipelineExecutableInternalRepresentationsKHRFunc) GET_PROC_ADDR("vkGetPipelineExecutableInternalRepresentationsKHR");
-m_vk.cmdWriteBufferMarker2AMD                                                  = (CmdWriteBufferMarker2AMDFunc)                                                GET_PROC_ADDR("vkCmdWriteBufferMarker2AMD");
-m_vk.getQueueCheckpointData2NV                                                 = (GetQueueCheckpointData2NVFunc)                                               GET_PROC_ADDR("vkGetQueueCheckpointData2NV");
-m_vk.cmdTraceRaysIndirect2KHR                                                  = (CmdTraceRaysIndirect2KHRFunc)                                                GET_PROC_ADDR("vkCmdTraceRaysIndirect2KHR");
-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.cmdBindTransformFeedbackBuffersEXT                                        = (CmdBindTransformFeedbackBuffersEXTFunc)                              GET_PROC_ADDR("vkCmdBindTransformFeedbackBuffersEXT");
-m_vk.cmdBeginTransformFeedbackEXT                                              = (CmdBeginTransformFeedbackEXTFunc)                                    GET_PROC_ADDR("vkCmdBeginTransformFeedbackEXT");
-m_vk.cmdEndTransformFeedbackEXT                                                        = (CmdEndTransformFeedbackEXTFunc)                                              GET_PROC_ADDR("vkCmdEndTransformFeedbackEXT");
-m_vk.cmdBeginQueryIndexedEXT                                                   = (CmdBeginQueryIndexedEXTFunc)                                                 GET_PROC_ADDR("vkCmdBeginQueryIndexedEXT");
-m_vk.cmdEndQueryIndexedEXT                                                             = (CmdEndQueryIndexedEXTFunc)                                                   GET_PROC_ADDR("vkCmdEndQueryIndexedEXT");
-m_vk.cmdDrawIndirectByteCountEXT                                               = (CmdDrawIndirectByteCountEXTFunc)                                             GET_PROC_ADDR("vkCmdDrawIndirectByteCountEXT");
-m_vk.createCuModuleNVX                                                                 = (CreateCuModuleNVXFunc)                                                               GET_PROC_ADDR("vkCreateCuModuleNVX");
-m_vk.createCuFunctionNVX                                                               = (CreateCuFunctionNVXFunc)                                                             GET_PROC_ADDR("vkCreateCuFunctionNVX");
-m_vk.destroyCuModuleNVX                                                                        = (DestroyCuModuleNVXFunc)                                                              GET_PROC_ADDR("vkDestroyCuModuleNVX");
-m_vk.destroyCuFunctionNVX                                                              = (DestroyCuFunctionNVXFunc)                                                    GET_PROC_ADDR("vkDestroyCuFunctionNVX");
-m_vk.cmdCuLaunchKernelNVX                                                              = (CmdCuLaunchKernelNVXFunc)                                                    GET_PROC_ADDR("vkCmdCuLaunchKernelNVX");
-m_vk.getImageViewHandleNVX                                                             = (GetImageViewHandleNVXFunc)                                                   GET_PROC_ADDR("vkGetImageViewHandleNVX");
-m_vk.getImageViewAddressNVX                                                            = (GetImageViewAddressNVXFunc)                                                  GET_PROC_ADDR("vkGetImageViewAddressNVX");
-m_vk.cmdDrawIndirectCountAMD                                                   = (CmdDrawIndirectCountAMDFunc)                                                 GET_PROC_ADDR("vkCmdDrawIndirectCountAMD");
-m_vk.cmdDrawIndexedIndirectCountAMD                                            = (CmdDrawIndexedIndirectCountAMDFunc)                                  GET_PROC_ADDR("vkCmdDrawIndexedIndirectCountAMD");
-m_vk.getShaderInfoAMD                                                                  = (GetShaderInfoAMDFunc)                                                                GET_PROC_ADDR("vkGetShaderInfoAMD");
-m_vk.cmdBeginConditionalRenderingEXT                                   = (CmdBeginConditionalRenderingEXTFunc)                                 GET_PROC_ADDR("vkCmdBeginConditionalRenderingEXT");
-m_vk.cmdEndConditionalRenderingEXT                                             = (CmdEndConditionalRenderingEXTFunc)                                   GET_PROC_ADDR("vkCmdEndConditionalRenderingEXT");
-m_vk.cmdSetViewportWScalingNV                                                  = (CmdSetViewportWScalingNVFunc)                                                GET_PROC_ADDR("vkCmdSetViewportWScalingNV");
-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.setDebugUtilsObjectNameEXT                                                        = (SetDebugUtilsObjectNameEXTFunc)                                              GET_PROC_ADDR("vkSetDebugUtilsObjectNameEXT");
-m_vk.setDebugUtilsObjectTagEXT                                                 = (SetDebugUtilsObjectTagEXTFunc)                                               GET_PROC_ADDR("vkSetDebugUtilsObjectTagEXT");
-m_vk.queueBeginDebugUtilsLabelEXT                                              = (QueueBeginDebugUtilsLabelEXTFunc)                                    GET_PROC_ADDR("vkQueueBeginDebugUtilsLabelEXT");
-m_vk.queueEndDebugUtilsLabelEXT                                                        = (QueueEndDebugUtilsLabelEXTFunc)                                              GET_PROC_ADDR("vkQueueEndDebugUtilsLabelEXT");
-m_vk.queueInsertDebugUtilsLabelEXT                                             = (QueueInsertDebugUtilsLabelEXTFunc)                                   GET_PROC_ADDR("vkQueueInsertDebugUtilsLabelEXT");
-m_vk.cmdBeginDebugUtilsLabelEXT                                                        = (CmdBeginDebugUtilsLabelEXTFunc)                                              GET_PROC_ADDR("vkCmdBeginDebugUtilsLabelEXT");
-m_vk.cmdEndDebugUtilsLabelEXT                                                  = (CmdEndDebugUtilsLabelEXTFunc)                                                GET_PROC_ADDR("vkCmdEndDebugUtilsLabelEXT");
-m_vk.cmdInsertDebugUtilsLabelEXT                                               = (CmdInsertDebugUtilsLabelEXTFunc)                                             GET_PROC_ADDR("vkCmdInsertDebugUtilsLabelEXT");
-m_vk.cmdSetSampleLocationsEXT                                                  = (CmdSetSampleLocationsEXTFunc)                                                GET_PROC_ADDR("vkCmdSetSampleLocationsEXT");
-m_vk.getImageDrmFormatModifierPropertiesEXT                            = (GetImageDrmFormatModifierPropertiesEXTFunc)                  GET_PROC_ADDR("vkGetImageDrmFormatModifierPropertiesEXT");
-m_vk.createValidationCacheEXT                                                  = (CreateValidationCacheEXTFunc)                                                GET_PROC_ADDR("vkCreateValidationCacheEXT");
-m_vk.destroyValidationCacheEXT                                                 = (DestroyValidationCacheEXTFunc)                                               GET_PROC_ADDR("vkDestroyValidationCacheEXT");
-m_vk.mergeValidationCachesEXT                                                  = (MergeValidationCachesEXTFunc)                                                GET_PROC_ADDR("vkMergeValidationCachesEXT");
-m_vk.getValidationCacheDataEXT                                                 = (GetValidationCacheDataEXTFunc)                                               GET_PROC_ADDR("vkGetValidationCacheDataEXT");
-m_vk.cmdBindShadingRateImageNV                                                 = (CmdBindShadingRateImageNVFunc)                                               GET_PROC_ADDR("vkCmdBindShadingRateImageNV");
-m_vk.cmdSetViewportShadingRatePaletteNV                                        = (CmdSetViewportShadingRatePaletteNVFunc)                              GET_PROC_ADDR("vkCmdSetViewportShadingRatePaletteNV");
-m_vk.cmdSetCoarseSampleOrderNV                                                 = (CmdSetCoarseSampleOrderNVFunc)                                               GET_PROC_ADDR("vkCmdSetCoarseSampleOrderNV");
-m_vk.createAccelerationStructureNV                                             = (CreateAccelerationStructureNVFunc)                                   GET_PROC_ADDR("vkCreateAccelerationStructureNV");
-m_vk.destroyAccelerationStructureNV                                            = (DestroyAccelerationStructureNVFunc)                                  GET_PROC_ADDR("vkDestroyAccelerationStructureNV");
-m_vk.getAccelerationStructureMemoryRequirementsNV              = (GetAccelerationStructureMemoryRequirementsNVFunc)    GET_PROC_ADDR("vkGetAccelerationStructureMemoryRequirementsNV");
-m_vk.bindAccelerationStructureMemoryNV                                 = (BindAccelerationStructureMemoryNVFunc)                               GET_PROC_ADDR("vkBindAccelerationStructureMemoryNV");
-m_vk.cmdBuildAccelerationStructureNV                                   = (CmdBuildAccelerationStructureNVFunc)                                 GET_PROC_ADDR("vkCmdBuildAccelerationStructureNV");
-m_vk.cmdCopyAccelerationStructureNV                                            = (CmdCopyAccelerationStructureNVFunc)                                  GET_PROC_ADDR("vkCmdCopyAccelerationStructureNV");
-m_vk.cmdTraceRaysNV                                                                            = (CmdTraceRaysNVFunc)                                                                  GET_PROC_ADDR("vkCmdTraceRaysNV");
-m_vk.createRayTracingPipelinesNV                                               = (CreateRayTracingPipelinesNVFunc)                                             GET_PROC_ADDR("vkCreateRayTracingPipelinesNV");
-m_vk.getRayTracingShaderGroupHandlesKHR                                        = (GetRayTracingShaderGroupHandlesKHRFunc)                              GET_PROC_ADDR("vkGetRayTracingShaderGroupHandlesKHR");
-m_vk.getRayTracingShaderGroupHandlesNV                                 = (GetRayTracingShaderGroupHandlesNVFunc)                               GET_PROC_ADDR("vkGetRayTracingShaderGroupHandlesNV");
-m_vk.getAccelerationStructureHandleNV                                  = (GetAccelerationStructureHandleNVFunc)                                GET_PROC_ADDR("vkGetAccelerationStructureHandleNV");
-m_vk.cmdWriteAccelerationStructuresPropertiesNV                        = (CmdWriteAccelerationStructuresPropertiesNVFunc)              GET_PROC_ADDR("vkCmdWriteAccelerationStructuresPropertiesNV");
-m_vk.compileDeferredNV                                                                 = (CompileDeferredNVFunc)                                                               GET_PROC_ADDR("vkCompileDeferredNV");
-m_vk.getMemoryHostPointerPropertiesEXT                                 = (GetMemoryHostPointerPropertiesEXTFunc)                               GET_PROC_ADDR("vkGetMemoryHostPointerPropertiesEXT");
-m_vk.cmdWriteBufferMarkerAMD                                                   = (CmdWriteBufferMarkerAMDFunc)                                                 GET_PROC_ADDR("vkCmdWriteBufferMarkerAMD");
-m_vk.getCalibratedTimestampsEXT                                                        = (GetCalibratedTimestampsEXTFunc)                                              GET_PROC_ADDR("vkGetCalibratedTimestampsEXT");
-m_vk.cmdDrawMeshTasksNV                                                                        = (CmdDrawMeshTasksNVFunc)                                                              GET_PROC_ADDR("vkCmdDrawMeshTasksNV");
-m_vk.cmdDrawMeshTasksIndirectNV                                                        = (CmdDrawMeshTasksIndirectNVFunc)                                              GET_PROC_ADDR("vkCmdDrawMeshTasksIndirectNV");
-m_vk.cmdDrawMeshTasksIndirectCountNV                                   = (CmdDrawMeshTasksIndirectCountNVFunc)                                 GET_PROC_ADDR("vkCmdDrawMeshTasksIndirectCountNV");
-m_vk.cmdSetExclusiveScissorNV                                                  = (CmdSetExclusiveScissorNVFunc)                                                GET_PROC_ADDR("vkCmdSetExclusiveScissorNV");
-m_vk.cmdSetCheckpointNV                                                                        = (CmdSetCheckpointNVFunc)                                                              GET_PROC_ADDR("vkCmdSetCheckpointNV");
-m_vk.getQueueCheckpointDataNV                                                  = (GetQueueCheckpointDataNVFunc)                                                GET_PROC_ADDR("vkGetQueueCheckpointDataNV");
-m_vk.initializePerformanceApiINTEL                                             = (InitializePerformanceApiINTELFunc)                                   GET_PROC_ADDR("vkInitializePerformanceApiINTEL");
-m_vk.uninitializePerformanceApiINTEL                                   = (UninitializePerformanceApiINTELFunc)                                 GET_PROC_ADDR("vkUninitializePerformanceApiINTEL");
-m_vk.cmdSetPerformanceMarkerINTEL                                              = (CmdSetPerformanceMarkerINTELFunc)                                    GET_PROC_ADDR("vkCmdSetPerformanceMarkerINTEL");
-m_vk.cmdSetPerformanceStreamMarkerINTEL                                        = (CmdSetPerformanceStreamMarkerINTELFunc)                              GET_PROC_ADDR("vkCmdSetPerformanceStreamMarkerINTEL");
-m_vk.cmdSetPerformanceOverrideINTEL                                            = (CmdSetPerformanceOverrideINTELFunc)                                  GET_PROC_ADDR("vkCmdSetPerformanceOverrideINTEL");
-m_vk.acquirePerformanceConfigurationINTEL                              = (AcquirePerformanceConfigurationINTELFunc)                    GET_PROC_ADDR("vkAcquirePerformanceConfigurationINTEL");
-m_vk.releasePerformanceConfigurationINTEL                              = (ReleasePerformanceConfigurationINTELFunc)                    GET_PROC_ADDR("vkReleasePerformanceConfigurationINTEL");
-m_vk.queueSetPerformanceConfigurationINTEL                             = (QueueSetPerformanceConfigurationINTELFunc)                   GET_PROC_ADDR("vkQueueSetPerformanceConfigurationINTEL");
-m_vk.getPerformanceParameterINTEL                                              = (GetPerformanceParameterINTELFunc)                                    GET_PROC_ADDR("vkGetPerformanceParameterINTEL");
-m_vk.setLocalDimmingAMD                                                                        = (SetLocalDimmingAMDFunc)                                                              GET_PROC_ADDR("vkSetLocalDimmingAMD");
-m_vk.getBufferDeviceAddressEXT                                                 = (GetBufferDeviceAddressEXTFunc)                                               GET_PROC_ADDR("vkGetBufferDeviceAddressEXT");
-m_vk.cmdSetLineStippleEXT                                                              = (CmdSetLineStippleEXTFunc)                                                    GET_PROC_ADDR("vkCmdSetLineStippleEXT");
-m_vk.getGeneratedCommandsMemoryRequirementsNV                  = (GetGeneratedCommandsMemoryRequirementsNVFunc)                GET_PROC_ADDR("vkGetGeneratedCommandsMemoryRequirementsNV");
-m_vk.cmdPreprocessGeneratedCommandsNV                                  = (CmdPreprocessGeneratedCommandsNVFunc)                                GET_PROC_ADDR("vkCmdPreprocessGeneratedCommandsNV");
-m_vk.cmdExecuteGeneratedCommandsNV                                             = (CmdExecuteGeneratedCommandsNVFunc)                                   GET_PROC_ADDR("vkCmdExecuteGeneratedCommandsNV");
-m_vk.cmdBindPipelineShaderGroupNV                                              = (CmdBindPipelineShaderGroupNVFunc)                                    GET_PROC_ADDR("vkCmdBindPipelineShaderGroupNV");
-m_vk.createIndirectCommandsLayoutNV                                            = (CreateIndirectCommandsLayoutNVFunc)                                  GET_PROC_ADDR("vkCreateIndirectCommandsLayoutNV");
-m_vk.destroyIndirectCommandsLayoutNV                                   = (DestroyIndirectCommandsLayoutNVFunc)                                 GET_PROC_ADDR("vkDestroyIndirectCommandsLayoutNV");
 m_vk.cmdSetFragmentShadingRateEnumNV                                   = (CmdSetFragmentShadingRateEnumNVFunc)                                 GET_PROC_ADDR("vkCmdSetFragmentShadingRateEnumNV");
-m_vk.getImageSubresourceLayout2EXT                                             = (GetImageSubresourceLayout2EXTFunc)                                   GET_PROC_ADDR("vkGetImageSubresourceLayout2EXT");
+m_vk.getAccelerationStructureBuildSizesKHR                             = (GetAccelerationStructureBuildSizesKHRFunc)                   GET_PROC_ADDR("vkGetAccelerationStructureBuildSizesKHR");
 m_vk.cmdSetVertexInputEXT                                                              = (CmdSetVertexInputEXTFunc)                                                    GET_PROC_ADDR("vkCmdSetVertexInputEXT");
-m_vk.getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI             = (GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIFunc)   GET_PROC_ADDR("vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI");
-m_vk.cmdSubpassShadingHUAWEI                                                   = (CmdSubpassShadingHUAWEIFunc)                                                 GET_PROC_ADDR("vkCmdSubpassShadingHUAWEI");
-m_vk.cmdBindInvocationMaskHUAWEI                                               = (CmdBindInvocationMaskHUAWEIFunc)                                             GET_PROC_ADDR("vkCmdBindInvocationMaskHUAWEI");
-m_vk.getMemoryRemoteAddressNV                                                  = (GetMemoryRemoteAddressNVFunc)                                                GET_PROC_ADDR("vkGetMemoryRemoteAddressNV");
-m_vk.getPipelinePropertiesEXT                                                  = (GetPipelinePropertiesEXTFunc)                                                GET_PROC_ADDR("vkGetPipelinePropertiesEXT");
-m_vk.cmdSetPatchControlPointsEXT                                               = (CmdSetPatchControlPointsEXTFunc)                                             GET_PROC_ADDR("vkCmdSetPatchControlPointsEXT");
-m_vk.cmdSetLogicOpEXT                                                                  = (CmdSetLogicOpEXTFunc)                                                                GET_PROC_ADDR("vkCmdSetLogicOpEXT");
 m_vk.cmdSetColorWriteEnableEXT                                                 = (CmdSetColorWriteEnableEXTFunc)                                               GET_PROC_ADDR("vkCmdSetColorWriteEnableEXT");
-m_vk.cmdDrawMultiEXT                                                                   = (CmdDrawMultiEXTFunc)                                                                 GET_PROC_ADDR("vkCmdDrawMultiEXT");
-m_vk.cmdDrawMultiIndexedEXT                                                            = (CmdDrawMultiIndexedEXTFunc)                                                  GET_PROC_ADDR("vkCmdDrawMultiIndexedEXT");
-m_vk.setDeviceMemoryPriorityEXT                                                        = (SetDeviceMemoryPriorityEXTFunc)                                              GET_PROC_ADDR("vkSetDeviceMemoryPriorityEXT");
-m_vk.getDescriptorSetLayoutHostMappingInfoVALVE                        = (GetDescriptorSetLayoutHostMappingInfoVALVEFunc)              GET_PROC_ADDR("vkGetDescriptorSetLayoutHostMappingInfoVALVE");
-m_vk.getDescriptorSetHostMappingVALVE                                  = (GetDescriptorSetHostMappingVALVEFunc)                                GET_PROC_ADDR("vkGetDescriptorSetHostMappingVALVE");
-m_vk.getShaderModuleIdentifierEXT                                              = (GetShaderModuleIdentifierEXTFunc)                                    GET_PROC_ADDR("vkGetShaderModuleIdentifierEXT");
-m_vk.getShaderModuleCreateInfoIdentifierEXT                            = (GetShaderModuleCreateInfoIdentifierEXTFunc)                  GET_PROC_ADDR("vkGetShaderModuleCreateInfoIdentifierEXT");
-m_vk.getFramebufferTilePropertiesQCOM                                  = (GetFramebufferTilePropertiesQCOMFunc)                                GET_PROC_ADDR("vkGetFramebufferTilePropertiesQCOM");
-m_vk.getDynamicRenderingTilePropertiesQCOM                             = (GetDynamicRenderingTilePropertiesQCOMFunc)                   GET_PROC_ADDR("vkGetDynamicRenderingTilePropertiesQCOM");
-m_vk.createAccelerationStructureKHR                                            = (CreateAccelerationStructureKHRFunc)                                  GET_PROC_ADDR("vkCreateAccelerationStructureKHR");
-m_vk.destroyAccelerationStructureKHR                                   = (DestroyAccelerationStructureKHRFunc)                                 GET_PROC_ADDR("vkDestroyAccelerationStructureKHR");
-m_vk.cmdBuildAccelerationStructuresKHR                                 = (CmdBuildAccelerationStructuresKHRFunc)                               GET_PROC_ADDR("vkCmdBuildAccelerationStructuresKHR");
-m_vk.cmdBuildAccelerationStructuresIndirectKHR                 = (CmdBuildAccelerationStructuresIndirectKHRFunc)               GET_PROC_ADDR("vkCmdBuildAccelerationStructuresIndirectKHR");
-m_vk.buildAccelerationStructuresKHR                                            = (BuildAccelerationStructuresKHRFunc)                                  GET_PROC_ADDR("vkBuildAccelerationStructuresKHR");
-m_vk.copyAccelerationStructureKHR                                              = (CopyAccelerationStructureKHRFunc)                                    GET_PROC_ADDR("vkCopyAccelerationStructureKHR");
-m_vk.copyAccelerationStructureToMemoryKHR                              = (CopyAccelerationStructureToMemoryKHRFunc)                    GET_PROC_ADDR("vkCopyAccelerationStructureToMemoryKHR");
-m_vk.copyMemoryToAccelerationStructureKHR                              = (CopyMemoryToAccelerationStructureKHRFunc)                    GET_PROC_ADDR("vkCopyMemoryToAccelerationStructureKHR");
-m_vk.writeAccelerationStructuresPropertiesKHR                  = (WriteAccelerationStructuresPropertiesKHRFunc)                GET_PROC_ADDR("vkWriteAccelerationStructuresPropertiesKHR");
-m_vk.cmdCopyAccelerationStructureKHR                                   = (CmdCopyAccelerationStructureKHRFunc)                                 GET_PROC_ADDR("vkCmdCopyAccelerationStructureKHR");
-m_vk.cmdCopyAccelerationStructureToMemoryKHR                   = (CmdCopyAccelerationStructureToMemoryKHRFunc)                 GET_PROC_ADDR("vkCmdCopyAccelerationStructureToMemoryKHR");
-m_vk.cmdCopyMemoryToAccelerationStructureKHR                   = (CmdCopyMemoryToAccelerationStructureKHRFunc)                 GET_PROC_ADDR("vkCmdCopyMemoryToAccelerationStructureKHR");
-m_vk.getAccelerationStructureDeviceAddressKHR                  = (GetAccelerationStructureDeviceAddressKHRFunc)                GET_PROC_ADDR("vkGetAccelerationStructureDeviceAddressKHR");
-m_vk.cmdWriteAccelerationStructuresPropertiesKHR               = (CmdWriteAccelerationStructuresPropertiesKHRFunc)             GET_PROC_ADDR("vkCmdWriteAccelerationStructuresPropertiesKHR");
-m_vk.getDeviceAccelerationStructureCompatibilityKHR            = (GetDeviceAccelerationStructureCompatibilityKHRFunc)  GET_PROC_ADDR("vkGetDeviceAccelerationStructureCompatibilityKHR");
-m_vk.getAccelerationStructureBuildSizesKHR                             = (GetAccelerationStructureBuildSizesKHRFunc)                   GET_PROC_ADDR("vkGetAccelerationStructureBuildSizesKHR");
-m_vk.cmdTraceRaysKHR                                                                   = (CmdTraceRaysKHRFunc)                                                                 GET_PROC_ADDR("vkCmdTraceRaysKHR");
-m_vk.createRayTracingPipelinesKHR                                              = (CreateRayTracingPipelinesKHRFunc)                                    GET_PROC_ADDR("vkCreateRayTracingPipelinesKHR");
-m_vk.getRayTracingCaptureReplayShaderGroupHandlesKHR   = (GetRayTracingCaptureReplayShaderGroupHandlesKHRFunc) GET_PROC_ADDR("vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
-m_vk.cmdTraceRaysIndirectKHR                                                   = (CmdTraceRaysIndirectKHRFunc)                                                 GET_PROC_ADDR("vkCmdTraceRaysIndirectKHR");
-m_vk.getRayTracingShaderGroupStackSizeKHR                              = (GetRayTracingShaderGroupStackSizeKHRFunc)                    GET_PROC_ADDR("vkGetRayTracingShaderGroupStackSizeKHR");
-m_vk.cmdSetRayTracingPipelineStackSizeKHR                              = (CmdSetRayTracingPipelineStackSizeKHRFunc)                    GET_PROC_ADDR("vkCmdSetRayTracingPipelineStackSizeKHR");
-m_vk.getAndroidHardwareBufferPropertiesANDROID                 = (GetAndroidHardwareBufferPropertiesANDROIDFunc)               GET_PROC_ADDR("vkGetAndroidHardwareBufferPropertiesANDROID");
-m_vk.getMemoryAndroidHardwareBufferANDROID                             = (GetMemoryAndroidHardwareBufferANDROIDFunc)                   GET_PROC_ADDR("vkGetMemoryAndroidHardwareBufferANDROID");
+m_vk.cmdSetEvent2                                                                              = (CmdSetEvent2Func)                                                                    GET_PROC_ADDR("vkCmdSetEvent2");
+if (!m_vk.cmdSetEvent2)
+       m_vk.cmdSetEvent2                                                                       = (CmdSetEvent2Func)                                                                    GET_PROC_ADDR("vkCmdSetEvent2KHR");
+m_vk.cmdResetEvent2                                                                            = (CmdResetEvent2Func)                                                                  GET_PROC_ADDR("vkCmdResetEvent2");
+if (!m_vk.cmdResetEvent2)
+       m_vk.cmdResetEvent2                                                                     = (CmdResetEvent2Func)                                                                  GET_PROC_ADDR("vkCmdResetEvent2KHR");
+m_vk.cmdWaitEvents2                                                                            = (CmdWaitEvents2Func)                                                                  GET_PROC_ADDR("vkCmdWaitEvents2");
+if (!m_vk.cmdWaitEvents2)
+       m_vk.cmdWaitEvents2                                                                     = (CmdWaitEvents2Func)                                                                  GET_PROC_ADDR("vkCmdWaitEvents2KHR");
+m_vk.cmdPipelineBarrier2                                                               = (CmdPipelineBarrier2Func)                                                             GET_PROC_ADDR("vkCmdPipelineBarrier2");
+if (!m_vk.cmdPipelineBarrier2)
+       m_vk.cmdPipelineBarrier2                                                        = (CmdPipelineBarrier2Func)                                                             GET_PROC_ADDR("vkCmdPipelineBarrier2KHR");
+m_vk.queueSubmit2                                                                              = (QueueSubmit2Func)                                                                    GET_PROC_ADDR("vkQueueSubmit2");
+if (!m_vk.queueSubmit2)
+       m_vk.queueSubmit2                                                                       = (QueueSubmit2Func)                                                                    GET_PROC_ADDR("vkQueueSubmit2KHR");
+m_vk.cmdWriteTimestamp2                                                                        = (CmdWriteTimestamp2Func)                                                              GET_PROC_ADDR("vkCmdWriteTimestamp2");
+if (!m_vk.cmdWriteTimestamp2)
+       m_vk.cmdWriteTimestamp2                                                         = (CmdWriteTimestamp2Func)                                                              GET_PROC_ADDR("vkCmdWriteTimestamp2KHR");
+m_vk.cmdWriteBufferMarker2AMD                                                  = (CmdWriteBufferMarker2AMDFunc)                                                GET_PROC_ADDR("vkCmdWriteBufferMarker2AMD");
+m_vk.getQueueCheckpointData2NV                                                 = (GetQueueCheckpointData2NVFunc)                                               GET_PROC_ADDR("vkGetQueueCheckpointData2NV");
 m_vk.createVideoSessionKHR                                                             = (CreateVideoSessionKHRFunc)                                                   GET_PROC_ADDR("vkCreateVideoSessionKHR");
 m_vk.destroyVideoSessionKHR                                                            = (DestroyVideoSessionKHRFunc)                                                  GET_PROC_ADDR("vkDestroyVideoSessionKHR");
-m_vk.getVideoSessionMemoryRequirementsKHR                              = (GetVideoSessionMemoryRequirementsKHRFunc)                    GET_PROC_ADDR("vkGetVideoSessionMemoryRequirementsKHR");
-m_vk.bindVideoSessionMemoryKHR                                                 = (BindVideoSessionMemoryKHRFunc)                                               GET_PROC_ADDR("vkBindVideoSessionMemoryKHR");
 m_vk.createVideoSessionParametersKHR                                   = (CreateVideoSessionParametersKHRFunc)                                 GET_PROC_ADDR("vkCreateVideoSessionParametersKHR");
 m_vk.updateVideoSessionParametersKHR                                   = (UpdateVideoSessionParametersKHRFunc)                                 GET_PROC_ADDR("vkUpdateVideoSessionParametersKHR");
 m_vk.destroyVideoSessionParametersKHR                                  = (DestroyVideoSessionParametersKHRFunc)                                GET_PROC_ADDR("vkDestroyVideoSessionParametersKHR");
+m_vk.getVideoSessionMemoryRequirementsKHR                              = (GetVideoSessionMemoryRequirementsKHRFunc)                    GET_PROC_ADDR("vkGetVideoSessionMemoryRequirementsKHR");
+m_vk.bindVideoSessionMemoryKHR                                                 = (BindVideoSessionMemoryKHRFunc)                                               GET_PROC_ADDR("vkBindVideoSessionMemoryKHR");
+m_vk.cmdDecodeVideoKHR                                                                 = (CmdDecodeVideoKHRFunc)                                                               GET_PROC_ADDR("vkCmdDecodeVideoKHR");
 m_vk.cmdBeginVideoCodingKHR                                                            = (CmdBeginVideoCodingKHRFunc)                                                  GET_PROC_ADDR("vkCmdBeginVideoCodingKHR");
-m_vk.cmdEndVideoCodingKHR                                                              = (CmdEndVideoCodingKHRFunc)                                                    GET_PROC_ADDR("vkCmdEndVideoCodingKHR");
 m_vk.cmdControlVideoCodingKHR                                                  = (CmdControlVideoCodingKHRFunc)                                                GET_PROC_ADDR("vkCmdControlVideoCodingKHR");
-m_vk.cmdDecodeVideoKHR                                                                 = (CmdDecodeVideoKHRFunc)                                                               GET_PROC_ADDR("vkCmdDecodeVideoKHR");
+m_vk.cmdEndVideoCodingKHR                                                              = (CmdEndVideoCodingKHRFunc)                                                    GET_PROC_ADDR("vkCmdEndVideoCodingKHR");
 m_vk.cmdEncodeVideoKHR                                                                 = (CmdEncodeVideoKHRFunc)                                                               GET_PROC_ADDR("vkCmdEncodeVideoKHR");
-m_vk.getMemoryZirconHandleFUCHSIA                                              = (GetMemoryZirconHandleFUCHSIAFunc)                                    GET_PROC_ADDR("vkGetMemoryZirconHandleFUCHSIA");
-m_vk.getMemoryZirconHandlePropertiesFUCHSIA                            = (GetMemoryZirconHandlePropertiesFUCHSIAFunc)                  GET_PROC_ADDR("vkGetMemoryZirconHandlePropertiesFUCHSIA");
-m_vk.importSemaphoreZirconHandleFUCHSIA                                        = (ImportSemaphoreZirconHandleFUCHSIAFunc)                              GET_PROC_ADDR("vkImportSemaphoreZirconHandleFUCHSIA");
-m_vk.getSemaphoreZirconHandleFUCHSIA                                   = (GetSemaphoreZirconHandleFUCHSIAFunc)                                 GET_PROC_ADDR("vkGetSemaphoreZirconHandleFUCHSIA");
+m_vk.createCuModuleNVX                                                                 = (CreateCuModuleNVXFunc)                                                               GET_PROC_ADDR("vkCreateCuModuleNVX");
+m_vk.createCuFunctionNVX                                                               = (CreateCuFunctionNVXFunc)                                                             GET_PROC_ADDR("vkCreateCuFunctionNVX");
+m_vk.destroyCuModuleNVX                                                                        = (DestroyCuModuleNVXFunc)                                                              GET_PROC_ADDR("vkDestroyCuModuleNVX");
+m_vk.destroyCuFunctionNVX                                                              = (DestroyCuFunctionNVXFunc)                                                    GET_PROC_ADDR("vkDestroyCuFunctionNVX");
+m_vk.cmdCuLaunchKernelNVX                                                              = (CmdCuLaunchKernelNVXFunc)                                                    GET_PROC_ADDR("vkCmdCuLaunchKernelNVX");
+m_vk.setDeviceMemoryPriorityEXT                                                        = (SetDeviceMemoryPriorityEXTFunc)                                              GET_PROC_ADDR("vkSetDeviceMemoryPriorityEXT");
+m_vk.waitForPresentKHR                                                                 = (WaitForPresentKHRFunc)                                                               GET_PROC_ADDR("vkWaitForPresentKHR");
 m_vk.createBufferCollectionFUCHSIA                                             = (CreateBufferCollectionFUCHSIAFunc)                                   GET_PROC_ADDR("vkCreateBufferCollectionFUCHSIA");
-m_vk.setBufferCollectionImageConstraintsFUCHSIA                        = (SetBufferCollectionImageConstraintsFUCHSIAFunc)              GET_PROC_ADDR("vkSetBufferCollectionImageConstraintsFUCHSIA");
 m_vk.setBufferCollectionBufferConstraintsFUCHSIA               = (SetBufferCollectionBufferConstraintsFUCHSIAFunc)             GET_PROC_ADDR("vkSetBufferCollectionBufferConstraintsFUCHSIA");
+m_vk.setBufferCollectionImageConstraintsFUCHSIA                        = (SetBufferCollectionImageConstraintsFUCHSIAFunc)              GET_PROC_ADDR("vkSetBufferCollectionImageConstraintsFUCHSIA");
 m_vk.destroyBufferCollectionFUCHSIA                                            = (DestroyBufferCollectionFUCHSIAFunc)                                  GET_PROC_ADDR("vkDestroyBufferCollectionFUCHSIA");
 m_vk.getBufferCollectionPropertiesFUCHSIA                              = (GetBufferCollectionPropertiesFUCHSIAFunc)                    GET_PROC_ADDR("vkGetBufferCollectionPropertiesFUCHSIA");
+m_vk.cmdBeginRendering                                                                 = (CmdBeginRenderingFunc)                                                               GET_PROC_ADDR("vkCmdBeginRendering");
+if (!m_vk.cmdBeginRendering)
+       m_vk.cmdBeginRendering                                                          = (CmdBeginRenderingFunc)                                                               GET_PROC_ADDR("vkCmdBeginRenderingKHR");
+m_vk.cmdEndRendering                                                                   = (CmdEndRenderingFunc)                                                                 GET_PROC_ADDR("vkCmdEndRendering");
+if (!m_vk.cmdEndRendering)
+       m_vk.cmdEndRendering                                                            = (CmdEndRenderingFunc)                                                                 GET_PROC_ADDR("vkCmdEndRenderingKHR");
+m_vk.getDescriptorSetLayoutHostMappingInfoVALVE                        = (GetDescriptorSetLayoutHostMappingInfoVALVEFunc)              GET_PROC_ADDR("vkGetDescriptorSetLayoutHostMappingInfoVALVE");
+m_vk.getDescriptorSetHostMappingVALVE                                  = (GetDescriptorSetHostMappingVALVEFunc)                                GET_PROC_ADDR("vkGetDescriptorSetHostMappingVALVE");
+m_vk.getShaderModuleIdentifierEXT                                              = (GetShaderModuleIdentifierEXTFunc)                                    GET_PROC_ADDR("vkGetShaderModuleIdentifierEXT");
+m_vk.getShaderModuleCreateInfoIdentifierEXT                            = (GetShaderModuleCreateInfoIdentifierEXTFunc)                  GET_PROC_ADDR("vkGetShaderModuleCreateInfoIdentifierEXT");
+m_vk.getImageSubresourceLayout2EXT                                             = (GetImageSubresourceLayout2EXTFunc)                                   GET_PROC_ADDR("vkGetImageSubresourceLayout2EXT");
+m_vk.getPipelinePropertiesEXT                                                  = (GetPipelinePropertiesEXTFunc)                                                GET_PROC_ADDR("vkGetPipelinePropertiesEXT");
 m_vk.exportMetalObjectsEXT                                                             = (ExportMetalObjectsEXTFunc)                                                   GET_PROC_ADDR("vkExportMetalObjectsEXT");
-m_vk.getMemoryWin32HandleKHR                                                   = (GetMemoryWin32HandleKHRFunc)                                                 GET_PROC_ADDR("vkGetMemoryWin32HandleKHR");
-m_vk.getMemoryWin32HandlePropertiesKHR                                 = (GetMemoryWin32HandlePropertiesKHRFunc)                               GET_PROC_ADDR("vkGetMemoryWin32HandlePropertiesKHR");
-m_vk.importSemaphoreWin32HandleKHR                                             = (ImportSemaphoreWin32HandleKHRFunc)                                   GET_PROC_ADDR("vkImportSemaphoreWin32HandleKHR");
-m_vk.getSemaphoreWin32HandleKHR                                                        = (GetSemaphoreWin32HandleKHRFunc)                                              GET_PROC_ADDR("vkGetSemaphoreWin32HandleKHR");
-m_vk.importFenceWin32HandleKHR                                                 = (ImportFenceWin32HandleKHRFunc)                                               GET_PROC_ADDR("vkImportFenceWin32HandleKHR");
-m_vk.getFenceWin32HandleKHR                                                            = (GetFenceWin32HandleKHRFunc)                                                  GET_PROC_ADDR("vkGetFenceWin32HandleKHR");
-m_vk.getMemoryWin32HandleNV                                                            = (GetMemoryWin32HandleNVFunc)                                                  GET_PROC_ADDR("vkGetMemoryWin32HandleNV");
-m_vk.acquireFullScreenExclusiveModeEXT                                 = (AcquireFullScreenExclusiveModeEXTFunc)                               GET_PROC_ADDR("vkAcquireFullScreenExclusiveModeEXT");
-m_vk.releaseFullScreenExclusiveModeEXT                                 = (ReleaseFullScreenExclusiveModeEXTFunc)                               GET_PROC_ADDR("vkReleaseFullScreenExclusiveModeEXT");
-m_vk.getDeviceGroupSurfacePresentModes2EXT                             = (GetDeviceGroupSurfacePresentModes2EXTFunc)                   GET_PROC_ADDR("vkGetDeviceGroupSurfacePresentModes2EXT");
+m_vk.getFramebufferTilePropertiesQCOM                                  = (GetFramebufferTilePropertiesQCOMFunc)                                GET_PROC_ADDR("vkGetFramebufferTilePropertiesQCOM");
+m_vk.getDynamicRenderingTilePropertiesQCOM                             = (GetDynamicRenderingTilePropertiesQCOMFunc)                   GET_PROC_ADDR("vkGetDynamicRenderingTilePropertiesQCOM");
index 296847d..dde2155 100644 (file)
 
 m_vk.destroyInstance                                                                                                   = (DestroyInstanceFunc)                                                                                                 GET_PROC_ADDR("vkDestroyInstance");
 m_vk.enumeratePhysicalDevices                                                                                  = (EnumeratePhysicalDevicesFunc)                                                                                GET_PROC_ADDR("vkEnumeratePhysicalDevices");
-m_vk.getPhysicalDeviceFeatures                                                                                 = (GetPhysicalDeviceFeaturesFunc)                                                                               GET_PROC_ADDR("vkGetPhysicalDeviceFeatures");
-m_vk.getPhysicalDeviceFormatProperties                                                                 = (GetPhysicalDeviceFormatPropertiesFunc)                                                               GET_PROC_ADDR("vkGetPhysicalDeviceFormatProperties");
-m_vk.getPhysicalDeviceImageFormatProperties                                                            = (GetPhysicalDeviceImageFormatPropertiesFunc)                                                  GET_PROC_ADDR("vkGetPhysicalDeviceImageFormatProperties");
 m_vk.getPhysicalDeviceProperties                                                                               = (GetPhysicalDevicePropertiesFunc)                                                                             GET_PROC_ADDR("vkGetPhysicalDeviceProperties");
 m_vk.getPhysicalDeviceQueueFamilyProperties                                                            = (GetPhysicalDeviceQueueFamilyPropertiesFunc)                                                  GET_PROC_ADDR("vkGetPhysicalDeviceQueueFamilyProperties");
 m_vk.getPhysicalDeviceMemoryProperties                                                                 = (GetPhysicalDeviceMemoryPropertiesFunc)                                                               GET_PROC_ADDR("vkGetPhysicalDeviceMemoryProperties");
+m_vk.getPhysicalDeviceFeatures                                                                                 = (GetPhysicalDeviceFeaturesFunc)                                                                               GET_PROC_ADDR("vkGetPhysicalDeviceFeatures");
+m_vk.getPhysicalDeviceFormatProperties                                                                 = (GetPhysicalDeviceFormatPropertiesFunc)                                                               GET_PROC_ADDR("vkGetPhysicalDeviceFormatProperties");
+m_vk.getPhysicalDeviceImageFormatProperties                                                            = (GetPhysicalDeviceImageFormatPropertiesFunc)                                                  GET_PROC_ADDR("vkGetPhysicalDeviceImageFormatProperties");
 m_vk.createDevice                                                                                                              = (CreateDeviceFunc)                                                                                                    GET_PROC_ADDR("vkCreateDevice");
-m_vk.enumerateDeviceExtensionProperties                                                                        = (EnumerateDeviceExtensionPropertiesFunc)                                                              GET_PROC_ADDR("vkEnumerateDeviceExtensionProperties");
 m_vk.enumerateDeviceLayerProperties                                                                            = (EnumerateDeviceLayerPropertiesFunc)                                                                  GET_PROC_ADDR("vkEnumerateDeviceLayerProperties");
+m_vk.enumerateDeviceExtensionProperties                                                                        = (EnumerateDeviceExtensionPropertiesFunc)                                                              GET_PROC_ADDR("vkEnumerateDeviceExtensionProperties");
 m_vk.getPhysicalDeviceSparseImageFormatProperties                                              = (GetPhysicalDeviceSparseImageFormatPropertiesFunc)                                    GET_PROC_ADDR("vkGetPhysicalDeviceSparseImageFormatProperties");
-m_vk.enumeratePhysicalDeviceGroups                                                                             = (EnumeratePhysicalDeviceGroupsFunc)                                                                   GET_PROC_ADDR("vkEnumeratePhysicalDeviceGroups");
-if (!m_vk.enumeratePhysicalDeviceGroups)
-       m_vk.enumeratePhysicalDeviceGroups                                                                      = (EnumeratePhysicalDeviceGroupsFunc)                                                                   GET_PROC_ADDR("vkEnumeratePhysicalDeviceGroupsKHR");
+m_vk.createAndroidSurfaceKHR                                                                                   = (CreateAndroidSurfaceKHRFunc)                                                                                 GET_PROC_ADDR("vkCreateAndroidSurfaceKHR");
+m_vk.getPhysicalDeviceDisplayPropertiesKHR                                                             = (GetPhysicalDeviceDisplayPropertiesKHRFunc)                                                   GET_PROC_ADDR("vkGetPhysicalDeviceDisplayPropertiesKHR");
+m_vk.getPhysicalDeviceDisplayPlanePropertiesKHR                                                        = (GetPhysicalDeviceDisplayPlanePropertiesKHRFunc)                                              GET_PROC_ADDR("vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
+m_vk.getDisplayPlaneSupportedDisplaysKHR                                                               = (GetDisplayPlaneSupportedDisplaysKHRFunc)                                                             GET_PROC_ADDR("vkGetDisplayPlaneSupportedDisplaysKHR");
+m_vk.getDisplayModePropertiesKHR                                                                               = (GetDisplayModePropertiesKHRFunc)                                                                             GET_PROC_ADDR("vkGetDisplayModePropertiesKHR");
+m_vk.createDisplayModeKHR                                                                                              = (CreateDisplayModeKHRFunc)                                                                                    GET_PROC_ADDR("vkCreateDisplayModeKHR");
+m_vk.getDisplayPlaneCapabilitiesKHR                                                                            = (GetDisplayPlaneCapabilitiesKHRFunc)                                                                  GET_PROC_ADDR("vkGetDisplayPlaneCapabilitiesKHR");
+m_vk.createDisplayPlaneSurfaceKHR                                                                              = (CreateDisplayPlaneSurfaceKHRFunc)                                                                    GET_PROC_ADDR("vkCreateDisplayPlaneSurfaceKHR");
+m_vk.destroySurfaceKHR                                                                                                 = (DestroySurfaceKHRFunc)                                                                                               GET_PROC_ADDR("vkDestroySurfaceKHR");
+m_vk.getPhysicalDeviceSurfaceSupportKHR                                                                        = (GetPhysicalDeviceSurfaceSupportKHRFunc)                                                              GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceSupportKHR");
+m_vk.getPhysicalDeviceSurfaceCapabilitiesKHR                                                   = (GetPhysicalDeviceSurfaceCapabilitiesKHRFunc)                                                 GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
+m_vk.getPhysicalDeviceSurfaceFormatsKHR                                                                        = (GetPhysicalDeviceSurfaceFormatsKHRFunc)                                                              GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceFormatsKHR");
+m_vk.getPhysicalDeviceSurfacePresentModesKHR                                                   = (GetPhysicalDeviceSurfacePresentModesKHRFunc)                                                 GET_PROC_ADDR("vkGetPhysicalDeviceSurfacePresentModesKHR");
+m_vk.createViSurfaceNN                                                                                                 = (CreateViSurfaceNNFunc)                                                                                               GET_PROC_ADDR("vkCreateViSurfaceNN");
+m_vk.createWaylandSurfaceKHR                                                                                   = (CreateWaylandSurfaceKHRFunc)                                                                                 GET_PROC_ADDR("vkCreateWaylandSurfaceKHR");
+m_vk.getPhysicalDeviceWaylandPresentationSupportKHR                                            = (GetPhysicalDeviceWaylandPresentationSupportKHRFunc)                                  GET_PROC_ADDR("vkGetPhysicalDeviceWaylandPresentationSupportKHR");
+m_vk.createWin32SurfaceKHR                                                                                             = (CreateWin32SurfaceKHRFunc)                                                                                   GET_PROC_ADDR("vkCreateWin32SurfaceKHR");
+m_vk.getPhysicalDeviceWin32PresentationSupportKHR                                              = (GetPhysicalDeviceWin32PresentationSupportKHRFunc)                                    GET_PROC_ADDR("vkGetPhysicalDeviceWin32PresentationSupportKHR");
+m_vk.createXlibSurfaceKHR                                                                                              = (CreateXlibSurfaceKHRFunc)                                                                                    GET_PROC_ADDR("vkCreateXlibSurfaceKHR");
+m_vk.getPhysicalDeviceXlibPresentationSupportKHR                                               = (GetPhysicalDeviceXlibPresentationSupportKHRFunc)                                             GET_PROC_ADDR("vkGetPhysicalDeviceXlibPresentationSupportKHR");
+m_vk.createXcbSurfaceKHR                                                                                               = (CreateXcbSurfaceKHRFunc)                                                                                             GET_PROC_ADDR("vkCreateXcbSurfaceKHR");
+m_vk.getPhysicalDeviceXcbPresentationSupportKHR                                                        = (GetPhysicalDeviceXcbPresentationSupportKHRFunc)                                              GET_PROC_ADDR("vkGetPhysicalDeviceXcbPresentationSupportKHR");
+m_vk.createImagePipeSurfaceFUCHSIA                                                                             = (CreateImagePipeSurfaceFUCHSIAFunc)                                                                   GET_PROC_ADDR("vkCreateImagePipeSurfaceFUCHSIA");
+m_vk.createStreamDescriptorSurfaceGGP                                                                  = (CreateStreamDescriptorSurfaceGGPFunc)                                                                GET_PROC_ADDR("vkCreateStreamDescriptorSurfaceGGP");
+m_vk.createScreenSurfaceQNX                                                                                            = (CreateScreenSurfaceQNXFunc)                                                                                  GET_PROC_ADDR("vkCreateScreenSurfaceQNX");
+m_vk.getPhysicalDeviceScreenPresentationSupportQNX                                             = (GetPhysicalDeviceScreenPresentationSupportQNXFunc)                                   GET_PROC_ADDR("vkGetPhysicalDeviceScreenPresentationSupportQNX");
+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.getPhysicalDeviceExternalImageFormatPropertiesNV                                  = (GetPhysicalDeviceExternalImageFormatPropertiesNVFunc)                                GET_PROC_ADDR("vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
 m_vk.getPhysicalDeviceFeatures2                                                                                        = (GetPhysicalDeviceFeatures2Func)                                                                              GET_PROC_ADDR("vkGetPhysicalDeviceFeatures2");
 if (!m_vk.getPhysicalDeviceFeatures2)
        m_vk.getPhysicalDeviceFeatures2                                                                         = (GetPhysicalDeviceFeatures2Func)                                                                              GET_PROC_ADDR("vkGetPhysicalDeviceFeatures2KHR");
+m_vk.getPhysicalDeviceFeatures2KHR                                                                             = (GetPhysicalDeviceFeatures2KHRFunc)                                                                   GET_PROC_ADDR("vkGetPhysicalDeviceFeatures2KHR");
 m_vk.getPhysicalDeviceProperties2                                                                              = (GetPhysicalDeviceProperties2Func)                                                                    GET_PROC_ADDR("vkGetPhysicalDeviceProperties2");
 if (!m_vk.getPhysicalDeviceProperties2)
        m_vk.getPhysicalDeviceProperties2                                                                       = (GetPhysicalDeviceProperties2Func)                                                                    GET_PROC_ADDR("vkGetPhysicalDeviceProperties2KHR");
+m_vk.getPhysicalDeviceProperties2KHR                                                                   = (GetPhysicalDeviceProperties2KHRFunc)                                                                 GET_PROC_ADDR("vkGetPhysicalDeviceProperties2KHR");
 m_vk.getPhysicalDeviceFormatProperties2                                                                        = (GetPhysicalDeviceFormatProperties2Func)                                                              GET_PROC_ADDR("vkGetPhysicalDeviceFormatProperties2");
 if (!m_vk.getPhysicalDeviceFormatProperties2)
        m_vk.getPhysicalDeviceFormatProperties2                                                         = (GetPhysicalDeviceFormatProperties2Func)                                                              GET_PROC_ADDR("vkGetPhysicalDeviceFormatProperties2KHR");
+m_vk.getPhysicalDeviceFormatProperties2KHR                                                             = (GetPhysicalDeviceFormatProperties2KHRFunc)                                                   GET_PROC_ADDR("vkGetPhysicalDeviceFormatProperties2KHR");
 m_vk.getPhysicalDeviceImageFormatProperties2                                                   = (GetPhysicalDeviceImageFormatProperties2Func)                                                 GET_PROC_ADDR("vkGetPhysicalDeviceImageFormatProperties2");
 if (!m_vk.getPhysicalDeviceImageFormatProperties2)
        m_vk.getPhysicalDeviceImageFormatProperties2                                            = (GetPhysicalDeviceImageFormatProperties2Func)                                                 GET_PROC_ADDR("vkGetPhysicalDeviceImageFormatProperties2KHR");
+m_vk.getPhysicalDeviceImageFormatProperties2KHR                                                        = (GetPhysicalDeviceImageFormatProperties2KHRFunc)                                              GET_PROC_ADDR("vkGetPhysicalDeviceImageFormatProperties2KHR");
 m_vk.getPhysicalDeviceQueueFamilyProperties2                                                   = (GetPhysicalDeviceQueueFamilyProperties2Func)                                                 GET_PROC_ADDR("vkGetPhysicalDeviceQueueFamilyProperties2");
 if (!m_vk.getPhysicalDeviceQueueFamilyProperties2)
        m_vk.getPhysicalDeviceQueueFamilyProperties2                                            = (GetPhysicalDeviceQueueFamilyProperties2Func)                                                 GET_PROC_ADDR("vkGetPhysicalDeviceQueueFamilyProperties2KHR");
+m_vk.getPhysicalDeviceQueueFamilyProperties2KHR                                                        = (GetPhysicalDeviceQueueFamilyProperties2KHRFunc)                                              GET_PROC_ADDR("vkGetPhysicalDeviceQueueFamilyProperties2KHR");
 m_vk.getPhysicalDeviceMemoryProperties2                                                                        = (GetPhysicalDeviceMemoryProperties2Func)                                                              GET_PROC_ADDR("vkGetPhysicalDeviceMemoryProperties2");
 if (!m_vk.getPhysicalDeviceMemoryProperties2)
        m_vk.getPhysicalDeviceMemoryProperties2                                                         = (GetPhysicalDeviceMemoryProperties2Func)                                                              GET_PROC_ADDR("vkGetPhysicalDeviceMemoryProperties2KHR");
+m_vk.getPhysicalDeviceMemoryProperties2KHR                                                             = (GetPhysicalDeviceMemoryProperties2KHRFunc)                                                   GET_PROC_ADDR("vkGetPhysicalDeviceMemoryProperties2KHR");
 m_vk.getPhysicalDeviceSparseImageFormatProperties2                                             = (GetPhysicalDeviceSparseImageFormatProperties2Func)                                   GET_PROC_ADDR("vkGetPhysicalDeviceSparseImageFormatProperties2");
 if (!m_vk.getPhysicalDeviceSparseImageFormatProperties2)
        m_vk.getPhysicalDeviceSparseImageFormatProperties2                                      = (GetPhysicalDeviceSparseImageFormatProperties2Func)                                   GET_PROC_ADDR("vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
+m_vk.getPhysicalDeviceSparseImageFormatProperties2KHR                                  = (GetPhysicalDeviceSparseImageFormatProperties2KHRFunc)                                GET_PROC_ADDR("vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
 m_vk.getPhysicalDeviceExternalBufferProperties                                                 = (GetPhysicalDeviceExternalBufferPropertiesFunc)                                               GET_PROC_ADDR("vkGetPhysicalDeviceExternalBufferProperties");
 if (!m_vk.getPhysicalDeviceExternalBufferProperties)
        m_vk.getPhysicalDeviceExternalBufferProperties                                          = (GetPhysicalDeviceExternalBufferPropertiesFunc)                                               GET_PROC_ADDR("vkGetPhysicalDeviceExternalBufferPropertiesKHR");
-m_vk.getPhysicalDeviceExternalFenceProperties                                                  = (GetPhysicalDeviceExternalFencePropertiesFunc)                                                GET_PROC_ADDR("vkGetPhysicalDeviceExternalFenceProperties");
-if (!m_vk.getPhysicalDeviceExternalFenceProperties)
-       m_vk.getPhysicalDeviceExternalFenceProperties                                           = (GetPhysicalDeviceExternalFencePropertiesFunc)                                                GET_PROC_ADDR("vkGetPhysicalDeviceExternalFencePropertiesKHR");
+m_vk.getPhysicalDeviceExternalBufferPropertiesKHR                                              = (GetPhysicalDeviceExternalBufferPropertiesKHRFunc)                                    GET_PROC_ADDR("vkGetPhysicalDeviceExternalBufferPropertiesKHR");
 m_vk.getPhysicalDeviceExternalSemaphoreProperties                                              = (GetPhysicalDeviceExternalSemaphorePropertiesFunc)                                    GET_PROC_ADDR("vkGetPhysicalDeviceExternalSemaphoreProperties");
 if (!m_vk.getPhysicalDeviceExternalSemaphoreProperties)
        m_vk.getPhysicalDeviceExternalSemaphoreProperties                                       = (GetPhysicalDeviceExternalSemaphorePropertiesFunc)                                    GET_PROC_ADDR("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
-m_vk.getPhysicalDeviceToolProperties                                                                   = (GetPhysicalDeviceToolPropertiesFunc)                                                                 GET_PROC_ADDR("vkGetPhysicalDeviceToolProperties");
-if (!m_vk.getPhysicalDeviceToolProperties)
-       m_vk.getPhysicalDeviceToolProperties                                                            = (GetPhysicalDeviceToolPropertiesFunc)                                                                 GET_PROC_ADDR("vkGetPhysicalDeviceToolPropertiesEXT");
-m_vk.destroySurfaceKHR                                                                                                 = (DestroySurfaceKHRFunc)                                                                                               GET_PROC_ADDR("vkDestroySurfaceKHR");
-m_vk.getPhysicalDeviceSurfaceSupportKHR                                                                        = (GetPhysicalDeviceSurfaceSupportKHRFunc)                                                              GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceSupportKHR");
-m_vk.getPhysicalDeviceSurfaceCapabilitiesKHR                                                   = (GetPhysicalDeviceSurfaceCapabilitiesKHRFunc)                                                 GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
-m_vk.getPhysicalDeviceSurfaceFormatsKHR                                                                        = (GetPhysicalDeviceSurfaceFormatsKHRFunc)                                                              GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceFormatsKHR");
-m_vk.getPhysicalDeviceSurfacePresentModesKHR                                                   = (GetPhysicalDeviceSurfacePresentModesKHRFunc)                                                 GET_PROC_ADDR("vkGetPhysicalDeviceSurfacePresentModesKHR");
-m_vk.getPhysicalDevicePresentRectanglesKHR                                                             = (GetPhysicalDevicePresentRectanglesKHRFunc)                                                   GET_PROC_ADDR("vkGetPhysicalDevicePresentRectanglesKHR");
-m_vk.getPhysicalDeviceDisplayPropertiesKHR                                                             = (GetPhysicalDeviceDisplayPropertiesKHRFunc)                                                   GET_PROC_ADDR("vkGetPhysicalDeviceDisplayPropertiesKHR");
-m_vk.getPhysicalDeviceDisplayPlanePropertiesKHR                                                        = (GetPhysicalDeviceDisplayPlanePropertiesKHRFunc)                                              GET_PROC_ADDR("vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
-m_vk.getDisplayPlaneSupportedDisplaysKHR                                                               = (GetDisplayPlaneSupportedDisplaysKHRFunc)                                                             GET_PROC_ADDR("vkGetDisplayPlaneSupportedDisplaysKHR");
-m_vk.getDisplayModePropertiesKHR                                                                               = (GetDisplayModePropertiesKHRFunc)                                                                             GET_PROC_ADDR("vkGetDisplayModePropertiesKHR");
-m_vk.createDisplayModeKHR                                                                                              = (CreateDisplayModeKHRFunc)                                                                                    GET_PROC_ADDR("vkCreateDisplayModeKHR");
-m_vk.getDisplayPlaneCapabilitiesKHR                                                                            = (GetDisplayPlaneCapabilitiesKHRFunc)                                                                  GET_PROC_ADDR("vkGetDisplayPlaneCapabilitiesKHR");
-m_vk.createDisplayPlaneSurfaceKHR                                                                              = (CreateDisplayPlaneSurfaceKHRFunc)                                                                    GET_PROC_ADDR("vkCreateDisplayPlaneSurfaceKHR");
-m_vk.getPhysicalDeviceFeatures2KHR                                                                             = (GetPhysicalDeviceFeatures2KHRFunc)                                                                   GET_PROC_ADDR("vkGetPhysicalDeviceFeatures2KHR");
-m_vk.getPhysicalDeviceProperties2KHR                                                                   = (GetPhysicalDeviceProperties2KHRFunc)                                                                 GET_PROC_ADDR("vkGetPhysicalDeviceProperties2KHR");
-m_vk.getPhysicalDeviceFormatProperties2KHR                                                             = (GetPhysicalDeviceFormatProperties2KHRFunc)                                                   GET_PROC_ADDR("vkGetPhysicalDeviceFormatProperties2KHR");
-m_vk.getPhysicalDeviceImageFormatProperties2KHR                                                        = (GetPhysicalDeviceImageFormatProperties2KHRFunc)                                              GET_PROC_ADDR("vkGetPhysicalDeviceImageFormatProperties2KHR");
-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.getPhysicalDeviceExternalBufferPropertiesKHR                                              = (GetPhysicalDeviceExternalBufferPropertiesKHRFunc)                                    GET_PROC_ADDR("vkGetPhysicalDeviceExternalBufferPropertiesKHR");
 m_vk.getPhysicalDeviceExternalSemaphorePropertiesKHR                                   = (GetPhysicalDeviceExternalSemaphorePropertiesKHRFunc)                                 GET_PROC_ADDR("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
+m_vk.getPhysicalDeviceExternalFenceProperties                                                  = (GetPhysicalDeviceExternalFencePropertiesFunc)                                                GET_PROC_ADDR("vkGetPhysicalDeviceExternalFenceProperties");
+if (!m_vk.getPhysicalDeviceExternalFenceProperties)
+       m_vk.getPhysicalDeviceExternalFenceProperties                                           = (GetPhysicalDeviceExternalFencePropertiesFunc)                                                GET_PROC_ADDR("vkGetPhysicalDeviceExternalFencePropertiesKHR");
 m_vk.getPhysicalDeviceExternalFencePropertiesKHR                                               = (GetPhysicalDeviceExternalFencePropertiesKHRFunc)                                             GET_PROC_ADDR("vkGetPhysicalDeviceExternalFencePropertiesKHR");
-m_vk.enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR             = (EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRFunc)   GET_PROC_ADDR("vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
-m_vk.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR                             = (GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRFunc)                   GET_PROC_ADDR("vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
+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.acquireWinrtDisplayNV                                                                                             = (AcquireWinrtDisplayNVFunc)                                                                                   GET_PROC_ADDR("vkAcquireWinrtDisplayNV");
+m_vk.getWinrtDisplayNV                                                                                                 = (GetWinrtDisplayNVFunc)                                                                                               GET_PROC_ADDR("vkGetWinrtDisplayNV");
+m_vk.getPhysicalDeviceSurfaceCapabilities2EXT                                                  = (GetPhysicalDeviceSurfaceCapabilities2EXTFunc)                                                GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceCapabilities2EXT");
+m_vk.enumeratePhysicalDeviceGroups                                                                             = (EnumeratePhysicalDeviceGroupsFunc)                                                                   GET_PROC_ADDR("vkEnumeratePhysicalDeviceGroups");
+if (!m_vk.enumeratePhysicalDeviceGroups)
+       m_vk.enumeratePhysicalDeviceGroups                                                                      = (EnumeratePhysicalDeviceGroupsFunc)                                                                   GET_PROC_ADDR("vkEnumeratePhysicalDeviceGroupsKHR");
+m_vk.getPhysicalDevicePresentRectanglesKHR                                                             = (GetPhysicalDevicePresentRectanglesKHRFunc)                                                   GET_PROC_ADDR("vkGetPhysicalDevicePresentRectanglesKHR");
+m_vk.createIOSSurfaceMVK                                                                                               = (CreateIOSSurfaceMVKFunc)                                                                                             GET_PROC_ADDR("vkCreateIOSSurfaceMVK");
+m_vk.createMacOSSurfaceMVK                                                                                             = (CreateMacOSSurfaceMVKFunc)                                                                                   GET_PROC_ADDR("vkCreateMacOSSurfaceMVK");
+m_vk.createMetalSurfaceEXT                                                                                             = (CreateMetalSurfaceEXTFunc)                                                                                   GET_PROC_ADDR("vkCreateMetalSurfaceEXT");
+m_vk.getPhysicalDeviceMultisamplePropertiesEXT                                                 = (GetPhysicalDeviceMultisamplePropertiesEXTFunc)                                               GET_PROC_ADDR("vkGetPhysicalDeviceMultisamplePropertiesEXT");
 m_vk.getPhysicalDeviceSurfaceCapabilities2KHR                                                  = (GetPhysicalDeviceSurfaceCapabilities2KHRFunc)                                                GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceCapabilities2KHR");
 m_vk.getPhysicalDeviceSurfaceFormats2KHR                                                               = (GetPhysicalDeviceSurfaceFormats2KHRFunc)                                                             GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceFormats2KHR");
 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.getPhysicalDeviceFragmentShadingRatesKHR                                                  = (GetPhysicalDeviceFragmentShadingRatesKHRFunc)                                                GET_PROC_ADDR("vkGetPhysicalDeviceFragmentShadingRatesKHR");
-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.getPhysicalDeviceExternalImageFormatPropertiesNV                                  = (GetPhysicalDeviceExternalImageFormatPropertiesNVFunc)                                GET_PROC_ADDR("vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
-m_vk.releaseDisplayEXT                                                                                                 = (ReleaseDisplayEXTFunc)                                                                                               GET_PROC_ADDR("vkReleaseDisplayEXT");
-m_vk.getPhysicalDeviceSurfaceCapabilities2EXT                                                  = (GetPhysicalDeviceSurfaceCapabilities2EXTFunc)                                                GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceCapabilities2EXT");
+m_vk.getPhysicalDeviceCalibrateableTimeDomainsEXT                                              = (GetPhysicalDeviceCalibrateableTimeDomainsEXTFunc)                                    GET_PROC_ADDR("vkGetPhysicalDeviceCalibrateableTimeDomainsEXT");
 m_vk.createDebugUtilsMessengerEXT                                                                              = (CreateDebugUtilsMessengerEXTFunc)                                                                    GET_PROC_ADDR("vkCreateDebugUtilsMessengerEXT");
 m_vk.destroyDebugUtilsMessengerEXT                                                                             = (DestroyDebugUtilsMessengerEXTFunc)                                                                   GET_PROC_ADDR("vkDestroyDebugUtilsMessengerEXT");
 m_vk.submitDebugUtilsMessageEXT                                                                                        = (SubmitDebugUtilsMessageEXTFunc)                                                                              GET_PROC_ADDR("vkSubmitDebugUtilsMessageEXT");
-m_vk.getPhysicalDeviceMultisamplePropertiesEXT                                                 = (GetPhysicalDeviceMultisamplePropertiesEXTFunc)                                               GET_PROC_ADDR("vkGetPhysicalDeviceMultisamplePropertiesEXT");
-m_vk.getPhysicalDeviceCalibrateableTimeDomainsEXT                                              = (GetPhysicalDeviceCalibrateableTimeDomainsEXTFunc)                                    GET_PROC_ADDR("vkGetPhysicalDeviceCalibrateableTimeDomainsEXT");
-m_vk.getPhysicalDeviceToolPropertiesEXT                                                                        = (GetPhysicalDeviceToolPropertiesEXTFunc)                                                              GET_PROC_ADDR("vkGetPhysicalDeviceToolPropertiesEXT");
 m_vk.getPhysicalDeviceCooperativeMatrixPropertiesNV                                            = (GetPhysicalDeviceCooperativeMatrixPropertiesNVFunc)                                  GET_PROC_ADDR("vkGetPhysicalDeviceCooperativeMatrixPropertiesNV");
-m_vk.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV   = (GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVFunc) GET_PROC_ADDR("vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
+m_vk.getPhysicalDeviceSurfacePresentModes2EXT                                                  = (GetPhysicalDeviceSurfacePresentModes2EXTFunc)                                                GET_PROC_ADDR("vkGetPhysicalDeviceSurfacePresentModes2EXT");
+m_vk.enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR             = (EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRFunc)   GET_PROC_ADDR("vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
+m_vk.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR                             = (GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRFunc)                   GET_PROC_ADDR("vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
 m_vk.createHeadlessSurfaceEXT                                                                                  = (CreateHeadlessSurfaceEXTFunc)                                                                                GET_PROC_ADDR("vkCreateHeadlessSurfaceEXT");
-m_vk.acquireDrmDisplayEXT                                                                                              = (AcquireDrmDisplayEXTFunc)                                                                                    GET_PROC_ADDR("vkAcquireDrmDisplayEXT");
-m_vk.getDrmDisplayEXT                                                                                                  = (GetDrmDisplayEXTFunc)                                                                                                GET_PROC_ADDR("vkGetDrmDisplayEXT");
-m_vk.acquireWinrtDisplayNV                                                                                             = (AcquireWinrtDisplayNVFunc)                                                                                   GET_PROC_ADDR("vkAcquireWinrtDisplayNV");
-m_vk.getWinrtDisplayNV                                                                                                 = (GetWinrtDisplayNVFunc)                                                                                               GET_PROC_ADDR("vkGetWinrtDisplayNV");
-m_vk.createAndroidSurfaceKHR                                                                                   = (CreateAndroidSurfaceKHRFunc)                                                                                 GET_PROC_ADDR("vkCreateAndroidSurfaceKHR");
+m_vk.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV   = (GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVFunc) GET_PROC_ADDR("vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
+m_vk.getPhysicalDeviceToolProperties                                                                   = (GetPhysicalDeviceToolPropertiesFunc)                                                                 GET_PROC_ADDR("vkGetPhysicalDeviceToolProperties");
+if (!m_vk.getPhysicalDeviceToolProperties)
+       m_vk.getPhysicalDeviceToolProperties                                                            = (GetPhysicalDeviceToolPropertiesFunc)                                                                 GET_PROC_ADDR("vkGetPhysicalDeviceToolPropertiesEXT");
+m_vk.getPhysicalDeviceToolPropertiesEXT                                                                        = (GetPhysicalDeviceToolPropertiesEXTFunc)                                                              GET_PROC_ADDR("vkGetPhysicalDeviceToolPropertiesEXT");
+m_vk.getPhysicalDeviceFragmentShadingRatesKHR                                                  = (GetPhysicalDeviceFragmentShadingRatesKHRFunc)                                                GET_PROC_ADDR("vkGetPhysicalDeviceFragmentShadingRatesKHR");
 m_vk.getPhysicalDeviceVideoCapabilitiesKHR                                                             = (GetPhysicalDeviceVideoCapabilitiesKHRFunc)                                                   GET_PROC_ADDR("vkGetPhysicalDeviceVideoCapabilitiesKHR");
 m_vk.getPhysicalDeviceVideoFormatPropertiesKHR                                                 = (GetPhysicalDeviceVideoFormatPropertiesKHRFunc)                                               GET_PROC_ADDR("vkGetPhysicalDeviceVideoFormatPropertiesKHR");
-m_vk.createImagePipeSurfaceFUCHSIA                                                                             = (CreateImagePipeSurfaceFUCHSIAFunc)                                                                   GET_PROC_ADDR("vkCreateImagePipeSurfaceFUCHSIA");
-m_vk.createStreamDescriptorSurfaceGGP                                                                  = (CreateStreamDescriptorSurfaceGGPFunc)                                                                GET_PROC_ADDR("vkCreateStreamDescriptorSurfaceGGP");
-m_vk.createIOSSurfaceMVK                                                                                               = (CreateIOSSurfaceMVKFunc)                                                                                             GET_PROC_ADDR("vkCreateIOSSurfaceMVK");
-m_vk.createMacOSSurfaceMVK                                                                                             = (CreateMacOSSurfaceMVKFunc)                                                                                   GET_PROC_ADDR("vkCreateMacOSSurfaceMVK");
-m_vk.createMetalSurfaceEXT                                                                                             = (CreateMetalSurfaceEXTFunc)                                                                                   GET_PROC_ADDR("vkCreateMetalSurfaceEXT");
-m_vk.createViSurfaceNN                                                                                                 = (CreateViSurfaceNNFunc)                                                                                               GET_PROC_ADDR("vkCreateViSurfaceNN");
-m_vk.createWaylandSurfaceKHR                                                                                   = (CreateWaylandSurfaceKHRFunc)                                                                                 GET_PROC_ADDR("vkCreateWaylandSurfaceKHR");
-m_vk.getPhysicalDeviceWaylandPresentationSupportKHR                                            = (GetPhysicalDeviceWaylandPresentationSupportKHRFunc)                                  GET_PROC_ADDR("vkGetPhysicalDeviceWaylandPresentationSupportKHR");
-m_vk.createWin32SurfaceKHR                                                                                             = (CreateWin32SurfaceKHRFunc)                                                                                   GET_PROC_ADDR("vkCreateWin32SurfaceKHR");
-m_vk.getPhysicalDeviceWin32PresentationSupportKHR                                              = (GetPhysicalDeviceWin32PresentationSupportKHRFunc)                                    GET_PROC_ADDR("vkGetPhysicalDeviceWin32PresentationSupportKHR");
-m_vk.getPhysicalDeviceSurfacePresentModes2EXT                                                  = (GetPhysicalDeviceSurfacePresentModes2EXTFunc)                                                GET_PROC_ADDR("vkGetPhysicalDeviceSurfacePresentModes2EXT");
-m_vk.createXcbSurfaceKHR                                                                                               = (CreateXcbSurfaceKHRFunc)                                                                                             GET_PROC_ADDR("vkCreateXcbSurfaceKHR");
-m_vk.getPhysicalDeviceXcbPresentationSupportKHR                                                        = (GetPhysicalDeviceXcbPresentationSupportKHRFunc)                                              GET_PROC_ADDR("vkGetPhysicalDeviceXcbPresentationSupportKHR");
-m_vk.createXlibSurfaceKHR                                                                                              = (CreateXlibSurfaceKHRFunc)                                                                                    GET_PROC_ADDR("vkCreateXlibSurfaceKHR");
-m_vk.getPhysicalDeviceXlibPresentationSupportKHR                                               = (GetPhysicalDeviceXlibPresentationSupportKHRFunc)                                             GET_PROC_ADDR("vkGetPhysicalDeviceXlibPresentationSupportKHR");
-m_vk.acquireXlibDisplayEXT                                                                                             = (AcquireXlibDisplayEXTFunc)                                                                                   GET_PROC_ADDR("vkAcquireXlibDisplayEXT");
-m_vk.getRandROutputDisplayEXT                                                                                  = (GetRandROutputDisplayEXTFunc)                                                                                GET_PROC_ADDR("vkGetRandROutputDisplayEXT");
+m_vk.acquireDrmDisplayEXT                                                                                              = (AcquireDrmDisplayEXTFunc)                                                                                    GET_PROC_ADDR("vkAcquireDrmDisplayEXT");
+m_vk.getDrmDisplayEXT                                                                                                  = (GetDrmDisplayEXTFunc)                                                                                                GET_PROC_ADDR("vkGetDrmDisplayEXT");
index 7474c3b..586ef11 100644 (file)
@@ -4,6 +4,6 @@
  */
 
 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");
+m_vk.enumerateInstanceLayerProperties          = (EnumerateInstanceLayerPropertiesFunc)                GET_PROC_ADDR("vkEnumerateInstanceLayerProperties");
+m_vk.enumerateInstanceExtensionProperties      = (EnumerateInstanceExtensionPropertiesFunc)    GET_PROC_ADDR("vkEnumerateInstanceExtensionProperties");
index b486754..f985cd1 100644 (file)
@@ -14,6 +14,21 @@ VkResult InstanceDriver::enumeratePhysicalDevices (VkInstance instance, uint32_t
        return m_vk.enumeratePhysicalDevices(instance, pPhysicalDeviceCount, pPhysicalDevices);
 }
 
+void InstanceDriver::getPhysicalDeviceProperties (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties) const
+{
+       m_vk.getPhysicalDeviceProperties(physicalDevice, pProperties);
+}
+
+void InstanceDriver::getPhysicalDeviceQueueFamilyProperties (VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties) const
+{
+       m_vk.getPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
+}
+
+void InstanceDriver::getPhysicalDeviceMemoryProperties (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) const
+{
+       m_vk.getPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties);
+}
+
 void InstanceDriver::getPhysicalDeviceFeatures (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures) const
 {
        m_vk.getPhysicalDeviceFeatures(physicalDevice, pFeatures);
@@ -29,44 +44,174 @@ VkResult InstanceDriver::getPhysicalDeviceImageFormatProperties (VkPhysicalDevic
        return m_vk.getPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
 }
 
-void InstanceDriver::getPhysicalDeviceProperties (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties) const
+VkResult InstanceDriver::createDevice (VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice) const
 {
-       m_vk.getPhysicalDeviceProperties(physicalDevice, pProperties);
+       return m_vk.createDevice(physicalDevice, pCreateInfo, pAllocator, pDevice);
 }
 
-void InstanceDriver::getPhysicalDeviceQueueFamilyProperties (VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties) const
+VkResult InstanceDriver::enumerateDeviceLayerProperties (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties) const
 {
-       m_vk.getPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
+       return m_vk.enumerateDeviceLayerProperties(physicalDevice, pPropertyCount, pProperties);
 }
 
-void InstanceDriver::getPhysicalDeviceMemoryProperties (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) const
+VkResult InstanceDriver::enumerateDeviceExtensionProperties (VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) const
 {
-       m_vk.getPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties);
+       return m_vk.enumerateDeviceExtensionProperties(physicalDevice, pLayerName, pPropertyCount, pProperties);
 }
 
-VkResult InstanceDriver::createDevice (VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice) const
+void InstanceDriver::getPhysicalDeviceSparseImageFormatProperties (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties) const
 {
-       return m_vk.createDevice(physicalDevice, pCreateInfo, pAllocator, pDevice);
+       m_vk.getPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties);
 }
 
-VkResult InstanceDriver::enumerateDeviceExtensionProperties (VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) const
+VkResult InstanceDriver::createAndroidSurfaceKHR (VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
 {
-       return m_vk.enumerateDeviceExtensionProperties(physicalDevice, pLayerName, pPropertyCount, pProperties);
+       return m_vk.createAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
 }
 
-VkResult InstanceDriver::enumerateDeviceLayerProperties (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties) const
+VkResult InstanceDriver::getPhysicalDeviceDisplayPropertiesKHR (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties) const
 {
-       return m_vk.enumerateDeviceLayerProperties(physicalDevice, pPropertyCount, pProperties);
+       return m_vk.getPhysicalDeviceDisplayPropertiesKHR(physicalDevice, pPropertyCount, pProperties);
 }
 
-void InstanceDriver::getPhysicalDeviceSparseImageFormatProperties (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties) const
+VkResult InstanceDriver::getPhysicalDeviceDisplayPlanePropertiesKHR (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties) const
 {
-       m_vk.getPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties);
+       return m_vk.getPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice, pPropertyCount, pProperties);
 }
 
-VkResult InstanceDriver::enumeratePhysicalDeviceGroups (VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) const
+VkResult InstanceDriver::getDisplayPlaneSupportedDisplaysKHR (VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays) const
 {
-       return m_vk.enumeratePhysicalDeviceGroups(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
+       return m_vk.getDisplayPlaneSupportedDisplaysKHR(physicalDevice, planeIndex, pDisplayCount, pDisplays);
+}
+
+VkResult InstanceDriver::getDisplayModePropertiesKHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties) const
+{
+       return m_vk.getDisplayModePropertiesKHR(physicalDevice, display, pPropertyCount, pProperties);
+}
+
+VkResult InstanceDriver::createDisplayModeKHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode) const
+{
+       return m_vk.createDisplayModeKHR(physicalDevice, display, pCreateInfo, pAllocator, pMode);
+}
+
+VkResult InstanceDriver::getDisplayPlaneCapabilitiesKHR (VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities) const
+{
+       return m_vk.getDisplayPlaneCapabilitiesKHR(physicalDevice, mode, planeIndex, pCapabilities);
+}
+
+VkResult InstanceDriver::createDisplayPlaneSurfaceKHR (VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
+{
+       return m_vk.createDisplayPlaneSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
+}
+
+void InstanceDriver::destroySurfaceKHR (VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) const
+{
+       m_vk.destroySurfaceKHR(instance, surface, pAllocator);
+}
+
+VkResult InstanceDriver::getPhysicalDeviceSurfaceSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported) const
+{
+       return m_vk.getPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
+}
+
+VkResult InstanceDriver::getPhysicalDeviceSurfaceCapabilitiesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) const
+{
+       return m_vk.getPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
+}
+
+VkResult InstanceDriver::getPhysicalDeviceSurfaceFormatsKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) const
+{
+       return m_vk.getPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
+}
+
+VkResult InstanceDriver::getPhysicalDeviceSurfacePresentModesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) const
+{
+       return m_vk.getPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
+}
+
+VkResult InstanceDriver::createViSurfaceNN (VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
+{
+       return m_vk.createViSurfaceNN(instance, pCreateInfo, pAllocator, pSurface);
+}
+
+VkResult InstanceDriver::createWaylandSurfaceKHR (VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
+{
+       return m_vk.createWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
+}
+
+VkBool32 InstanceDriver::getPhysicalDeviceWaylandPresentationSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::WaylandDisplayPtr display) const
+{
+       return m_vk.getPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice, queueFamilyIndex, display);
+}
+
+VkResult InstanceDriver::createWin32SurfaceKHR (VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
+{
+       return m_vk.createWin32SurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
+}
+
+VkBool32 InstanceDriver::getPhysicalDeviceWin32PresentationSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex) const
+{
+       return m_vk.getPhysicalDeviceWin32PresentationSupportKHR(physicalDevice, queueFamilyIndex);
+}
+
+VkResult InstanceDriver::createXlibSurfaceKHR (VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
+{
+       return m_vk.createXlibSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
+}
+
+VkBool32 InstanceDriver::getPhysicalDeviceXlibPresentationSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::XlibDisplayPtr dpy, pt::XlibVisualID visualID) const
+{
+       return m_vk.getPhysicalDeviceXlibPresentationSupportKHR(physicalDevice, queueFamilyIndex, dpy, visualID);
+}
+
+VkResult InstanceDriver::createXcbSurfaceKHR (VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
+{
+       return m_vk.createXcbSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
+}
+
+VkBool32 InstanceDriver::getPhysicalDeviceXcbPresentationSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::XcbConnectionPtr connection, pt::XcbVisualid visual_id) const
+{
+       return m_vk.getPhysicalDeviceXcbPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection, visual_id);
+}
+
+VkResult InstanceDriver::createImagePipeSurfaceFUCHSIA (VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
+{
+       return m_vk.createImagePipeSurfaceFUCHSIA(instance, pCreateInfo, pAllocator, pSurface);
+}
+
+VkResult InstanceDriver::createStreamDescriptorSurfaceGGP (VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
+{
+       return m_vk.createStreamDescriptorSurfaceGGP(instance, pCreateInfo, pAllocator, pSurface);
+}
+
+VkResult InstanceDriver::createScreenSurfaceQNX (VkInstance instance, const VkScreenSurfaceCreateInfoQNX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
+{
+       return m_vk.createScreenSurfaceQNX(instance, pCreateInfo, pAllocator, pSurface);
+}
+
+VkBool32 InstanceDriver::getPhysicalDeviceScreenPresentationSupportQNX (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::QNXScreenWindowPtr window) const
+{
+       return m_vk.getPhysicalDeviceScreenPresentationSupportQNX(physicalDevice, queueFamilyIndex, window);
+}
+
+VkResult InstanceDriver::createDebugReportCallbackEXT (VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback) const
+{
+       return m_vk.createDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback);
+}
+
+void InstanceDriver::destroyDebugReportCallbackEXT (VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator) const
+{
+       m_vk.destroyDebugReportCallbackEXT(instance, callback, pAllocator);
+}
+
+void InstanceDriver::debugReportMessageEXT (VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage) const
+{
+       m_vk.debugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage);
+}
+
+VkResult InstanceDriver::getPhysicalDeviceExternalImageFormatPropertiesNV (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) const
+{
+       return m_vk.getPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties);
 }
 
 void InstanceDriver::getPhysicalDeviceFeatures2 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures) const
@@ -149,16 +294,6 @@ void InstanceDriver::getPhysicalDeviceExternalBufferProperties (VkPhysicalDevice
                m_vk.getPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
 }
 
-void InstanceDriver::getPhysicalDeviceExternalFenceProperties (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties) const
-{
-       vk::VkPhysicalDeviceProperties props;
-       m_vk.getPhysicalDeviceProperties(physicalDevice, &props);
-       if (props.apiVersion >= VK_API_VERSION_1_1)
-               m_vk.getPhysicalDeviceExternalFenceProperties(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
-       else
-               m_vk.getPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
-}
-
 void InstanceDriver::getPhysicalDeviceExternalSemaphoreProperties (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties) const
 {
        vk::VkPhysicalDeviceProperties props;
@@ -169,89 +304,74 @@ void InstanceDriver::getPhysicalDeviceExternalSemaphoreProperties (VkPhysicalDev
                m_vk.getPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
 }
 
-VkResult InstanceDriver::getPhysicalDeviceToolProperties (VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties) const
+void InstanceDriver::getPhysicalDeviceExternalFenceProperties (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties) const
 {
        vk::VkPhysicalDeviceProperties props;
        m_vk.getPhysicalDeviceProperties(physicalDevice, &props);
        if (props.apiVersion >= VK_API_VERSION_1_1)
-               return m_vk.getPhysicalDeviceToolProperties(physicalDevice, pToolCount, pToolProperties);
+               m_vk.getPhysicalDeviceExternalFenceProperties(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
        else
-               return m_vk.getPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties);
-}
-
-void InstanceDriver::destroySurfaceKHR (VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) const
-{
-       m_vk.destroySurfaceKHR(instance, surface, pAllocator);
-}
-
-VkResult InstanceDriver::getPhysicalDeviceSurfaceSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported) const
-{
-       return m_vk.getPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
-}
-
-VkResult InstanceDriver::getPhysicalDeviceSurfaceCapabilitiesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) const
-{
-       return m_vk.getPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
+               m_vk.getPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
 }
 
-VkResult InstanceDriver::getPhysicalDeviceSurfaceFormatsKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) const
+VkResult InstanceDriver::releaseDisplayEXT (VkPhysicalDevice physicalDevice, VkDisplayKHR display) const
 {
-       return m_vk.getPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
+       return m_vk.releaseDisplayEXT(physicalDevice, display);
 }
 
-VkResult InstanceDriver::getPhysicalDeviceSurfacePresentModesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) const
+VkResult InstanceDriver::acquireXlibDisplayEXT (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, VkDisplayKHR display) const
 {
-       return m_vk.getPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
+       return m_vk.acquireXlibDisplayEXT(physicalDevice, dpy, display);
 }
 
-VkResult InstanceDriver::getPhysicalDevicePresentRectanglesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects) const
+VkResult InstanceDriver::getRandROutputDisplayEXT (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, pt::RROutput rrOutput, VkDisplayKHR* pDisplay) const
 {
-       return m_vk.getPhysicalDevicePresentRectanglesKHR(physicalDevice, surface, pRectCount, pRects);
+       return m_vk.getRandROutputDisplayEXT(physicalDevice, dpy, rrOutput, pDisplay);
 }
 
-VkResult InstanceDriver::getPhysicalDeviceDisplayPropertiesKHR (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties) const
+VkResult InstanceDriver::acquireWinrtDisplayNV (VkPhysicalDevice physicalDevice, VkDisplayKHR display) const
 {
-       return m_vk.getPhysicalDeviceDisplayPropertiesKHR(physicalDevice, pPropertyCount, pProperties);
+       return m_vk.acquireWinrtDisplayNV(physicalDevice, display);
 }
 
-VkResult InstanceDriver::getPhysicalDeviceDisplayPlanePropertiesKHR (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties) const
+VkResult InstanceDriver::getWinrtDisplayNV (VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay) const
 {
-       return m_vk.getPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice, pPropertyCount, pProperties);
+       return m_vk.getWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay);
 }
 
-VkResult InstanceDriver::getDisplayPlaneSupportedDisplaysKHR (VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays) const
+VkResult InstanceDriver::getPhysicalDeviceSurfaceCapabilities2EXT (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities) const
 {
-       return m_vk.getDisplayPlaneSupportedDisplaysKHR(physicalDevice, planeIndex, pDisplayCount, pDisplays);
+       return m_vk.getPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities);
 }
 
-VkResult InstanceDriver::getDisplayModePropertiesKHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties) const
+VkResult InstanceDriver::enumeratePhysicalDeviceGroups (VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) const
 {
-       return m_vk.getDisplayModePropertiesKHR(physicalDevice, display, pPropertyCount, pProperties);
+       return m_vk.enumeratePhysicalDeviceGroups(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
 }
 
-VkResult InstanceDriver::createDisplayModeKHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode) const
+VkResult InstanceDriver::getPhysicalDevicePresentRectanglesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects) const
 {
-       return m_vk.createDisplayModeKHR(physicalDevice, display, pCreateInfo, pAllocator, pMode);
+       return m_vk.getPhysicalDevicePresentRectanglesKHR(physicalDevice, surface, pRectCount, pRects);
 }
 
-VkResult InstanceDriver::getDisplayPlaneCapabilitiesKHR (VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities) const
+VkResult InstanceDriver::createIOSSurfaceMVK (VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
 {
-       return m_vk.getDisplayPlaneCapabilitiesKHR(physicalDevice, mode, planeIndex, pCapabilities);
+       return m_vk.createIOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
 }
 
-VkResult InstanceDriver::createDisplayPlaneSurfaceKHR (VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
+VkResult InstanceDriver::createMacOSSurfaceMVK (VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
 {
-       return m_vk.createDisplayPlaneSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
+       return m_vk.createMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
 }
 
-VkResult InstanceDriver::enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions) const
+VkResult InstanceDriver::createMetalSurfaceEXT (VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
 {
-       return m_vk.enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
+       return m_vk.createMetalSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface);
 }
 
-void InstanceDriver::getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR (VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses) const
+void InstanceDriver::getPhysicalDeviceMultisamplePropertiesEXT (VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties) const
 {
-       m_vk.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses);
+       m_vk.getPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties);
 }
 
 VkResult InstanceDriver::getPhysicalDeviceSurfaceCapabilities2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities) const
@@ -284,39 +404,9 @@ VkResult InstanceDriver::getDisplayPlaneCapabilities2KHR (VkPhysicalDevice physi
        return m_vk.getDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities);
 }
 
-VkResult InstanceDriver::getPhysicalDeviceFragmentShadingRatesKHR (VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates) const
-{
-       return m_vk.getPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates);
-}
-
-VkResult InstanceDriver::createDebugReportCallbackEXT (VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback) const
-{
-       return m_vk.createDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback);
-}
-
-void InstanceDriver::destroyDebugReportCallbackEXT (VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator) const
-{
-       m_vk.destroyDebugReportCallbackEXT(instance, callback, pAllocator);
-}
-
-void InstanceDriver::debugReportMessageEXT (VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage) const
-{
-       m_vk.debugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage);
-}
-
-VkResult InstanceDriver::getPhysicalDeviceExternalImageFormatPropertiesNV (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) const
-{
-       return m_vk.getPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties);
-}
-
-VkResult InstanceDriver::releaseDisplayEXT (VkPhysicalDevice physicalDevice, VkDisplayKHR display) const
-{
-       return m_vk.releaseDisplayEXT(physicalDevice, display);
-}
-
-VkResult InstanceDriver::getPhysicalDeviceSurfaceCapabilities2EXT (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities) const
+VkResult InstanceDriver::getPhysicalDeviceCalibrateableTimeDomainsEXT (VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains) const
 {
-       return m_vk.getPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities);
+       return m_vk.getPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains);
 }
 
 VkResult InstanceDriver::createDebugUtilsMessengerEXT (VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger) const
@@ -334,54 +424,49 @@ void InstanceDriver::submitDebugUtilsMessageEXT (VkInstance instance, VkDebugUti
        m_vk.submitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData);
 }
 
-void InstanceDriver::getPhysicalDeviceMultisamplePropertiesEXT (VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties) const
-{
-       m_vk.getPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties);
-}
-
-VkResult InstanceDriver::getPhysicalDeviceCalibrateableTimeDomainsEXT (VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains) const
-{
-       return m_vk.getPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains);
-}
-
 VkResult InstanceDriver::getPhysicalDeviceCooperativeMatrixPropertiesNV (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties) const
 {
        return m_vk.getPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties);
 }
 
-VkResult InstanceDriver::getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV (VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations) const
+VkResult InstanceDriver::getPhysicalDeviceSurfacePresentModes2EXT (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) const
 {
-       return m_vk.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations);
+       return m_vk.getPhysicalDeviceSurfacePresentModes2EXT(physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes);
 }
 
-VkResult InstanceDriver::createHeadlessSurfaceEXT (VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
+VkResult InstanceDriver::enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions) const
 {
-       return m_vk.createHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface);
+       return m_vk.enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
 }
 
-VkResult InstanceDriver::acquireDrmDisplayEXT (VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display) const
+void InstanceDriver::getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR (VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses) const
 {
-       return m_vk.acquireDrmDisplayEXT(physicalDevice, drmFd, display);
+       m_vk.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses);
 }
 
-VkResult InstanceDriver::getDrmDisplayEXT (VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display) const
+VkResult InstanceDriver::createHeadlessSurfaceEXT (VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
 {
-       return m_vk.getDrmDisplayEXT(physicalDevice, drmFd, connectorId, display);
+       return m_vk.createHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface);
 }
 
-VkResult InstanceDriver::acquireWinrtDisplayNV (VkPhysicalDevice physicalDevice, VkDisplayKHR display) const
+VkResult InstanceDriver::getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV (VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations) const
 {
-       return m_vk.acquireWinrtDisplayNV(physicalDevice, display);
+       return m_vk.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations);
 }
 
-VkResult InstanceDriver::getWinrtDisplayNV (VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay) const
+VkResult InstanceDriver::getPhysicalDeviceToolProperties (VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties) const
 {
-       return m_vk.getWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay);
+       vk::VkPhysicalDeviceProperties props;
+       m_vk.getPhysicalDeviceProperties(physicalDevice, &props);
+       if (props.apiVersion >= VK_API_VERSION_1_1)
+               return m_vk.getPhysicalDeviceToolProperties(physicalDevice, pToolCount, pToolProperties);
+       else
+               return m_vk.getPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties);
 }
 
-VkResult InstanceDriver::createAndroidSurfaceKHR (VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
+VkResult InstanceDriver::getPhysicalDeviceFragmentShadingRatesKHR (VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates) const
 {
-       return m_vk.createAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
+       return m_vk.getPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates);
 }
 
 VkResult InstanceDriver::getPhysicalDeviceVideoCapabilitiesKHR (VkPhysicalDevice physicalDevice, const VkVideoProfileKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities) const
@@ -394,87 +479,12 @@ VkResult InstanceDriver::getPhysicalDeviceVideoFormatPropertiesKHR (VkPhysicalDe
        return m_vk.getPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties);
 }
 
-VkResult InstanceDriver::createImagePipeSurfaceFUCHSIA (VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
-{
-       return m_vk.createImagePipeSurfaceFUCHSIA(instance, pCreateInfo, pAllocator, pSurface);
-}
-
-VkResult InstanceDriver::createStreamDescriptorSurfaceGGP (VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
-{
-       return m_vk.createStreamDescriptorSurfaceGGP(instance, pCreateInfo, pAllocator, pSurface);
-}
-
-VkResult InstanceDriver::createIOSSurfaceMVK (VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
-{
-       return m_vk.createIOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
-}
-
-VkResult InstanceDriver::createMacOSSurfaceMVK (VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
-{
-       return m_vk.createMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
-}
-
-VkResult InstanceDriver::createMetalSurfaceEXT (VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
-{
-       return m_vk.createMetalSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface);
-}
-
-VkResult InstanceDriver::createViSurfaceNN (VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
-{
-       return m_vk.createViSurfaceNN(instance, pCreateInfo, pAllocator, pSurface);
-}
-
-VkResult InstanceDriver::createWaylandSurfaceKHR (VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
-{
-       return m_vk.createWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
-}
-
-VkBool32 InstanceDriver::getPhysicalDeviceWaylandPresentationSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::WaylandDisplayPtr display) const
-{
-       return m_vk.getPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice, queueFamilyIndex, display);
-}
-
-VkResult InstanceDriver::createWin32SurfaceKHR (VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
-{
-       return m_vk.createWin32SurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
-}
-
-VkBool32 InstanceDriver::getPhysicalDeviceWin32PresentationSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex) const
-{
-       return m_vk.getPhysicalDeviceWin32PresentationSupportKHR(physicalDevice, queueFamilyIndex);
-}
-
-VkResult InstanceDriver::getPhysicalDeviceSurfacePresentModes2EXT (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) const
-{
-       return m_vk.getPhysicalDeviceSurfacePresentModes2EXT(physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes);
-}
-
-VkResult InstanceDriver::createXcbSurfaceKHR (VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
-{
-       return m_vk.createXcbSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
-}
-
-VkBool32 InstanceDriver::getPhysicalDeviceXcbPresentationSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::XcbConnectionPtr connection, pt::XcbVisualid visual_id) const
-{
-       return m_vk.getPhysicalDeviceXcbPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection, visual_id);
-}
-
-VkResult InstanceDriver::createXlibSurfaceKHR (VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const
-{
-       return m_vk.createXlibSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
-}
-
-VkBool32 InstanceDriver::getPhysicalDeviceXlibPresentationSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::XlibDisplayPtr dpy, pt::XlibVisualID visualID) const
-{
-       return m_vk.getPhysicalDeviceXlibPresentationSupportKHR(physicalDevice, queueFamilyIndex, dpy, visualID);
-}
-
-VkResult InstanceDriver::acquireXlibDisplayEXT (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, VkDisplayKHR display) const
+VkResult InstanceDriver::acquireDrmDisplayEXT (VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display) const
 {
-       return m_vk.acquireXlibDisplayEXT(physicalDevice, dpy, display);
+       return m_vk.acquireDrmDisplayEXT(physicalDevice, drmFd, display);
 }
 
-VkResult InstanceDriver::getRandROutputDisplayEXT (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, pt::RROutput rrOutput, VkDisplayKHR* pDisplay) const
+VkResult InstanceDriver::getDrmDisplayEXT (VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display) const
 {
-       return m_vk.getRandROutputDisplayEXT(physicalDevice, dpy, rrOutput, pDisplay);
+       return m_vk.getDrmDisplayEXT(physicalDevice, drmFd, connectorId, display);
 }
index 93513e1..7b378cf 100644 (file)
@@ -5,34 +5,17 @@
 
 DestroyInstanceFunc                                                                                                    destroyInstance;
 EnumeratePhysicalDevicesFunc                                                                           enumeratePhysicalDevices;
-GetPhysicalDeviceFeaturesFunc                                                                          getPhysicalDeviceFeatures;
-GetPhysicalDeviceFormatPropertiesFunc                                                          getPhysicalDeviceFormatProperties;
-GetPhysicalDeviceImageFormatPropertiesFunc                                                     getPhysicalDeviceImageFormatProperties;
 GetPhysicalDevicePropertiesFunc                                                                                getPhysicalDeviceProperties;
 GetPhysicalDeviceQueueFamilyPropertiesFunc                                                     getPhysicalDeviceQueueFamilyProperties;
 GetPhysicalDeviceMemoryPropertiesFunc                                                          getPhysicalDeviceMemoryProperties;
+GetPhysicalDeviceFeaturesFunc                                                                          getPhysicalDeviceFeatures;
+GetPhysicalDeviceFormatPropertiesFunc                                                          getPhysicalDeviceFormatProperties;
+GetPhysicalDeviceImageFormatPropertiesFunc                                                     getPhysicalDeviceImageFormatProperties;
 CreateDeviceFunc                                                                                                       createDevice;
-EnumerateDeviceExtensionPropertiesFunc                                                         enumerateDeviceExtensionProperties;
 EnumerateDeviceLayerPropertiesFunc                                                                     enumerateDeviceLayerProperties;
+EnumerateDeviceExtensionPropertiesFunc                                                         enumerateDeviceExtensionProperties;
 GetPhysicalDeviceSparseImageFormatPropertiesFunc                                       getPhysicalDeviceSparseImageFormatProperties;
-EnumeratePhysicalDeviceGroupsFunc                                                                      enumeratePhysicalDeviceGroups;
-GetPhysicalDeviceFeatures2Func                                                                         getPhysicalDeviceFeatures2;
-GetPhysicalDeviceProperties2Func                                                                       getPhysicalDeviceProperties2;
-GetPhysicalDeviceFormatProperties2Func                                                         getPhysicalDeviceFormatProperties2;
-GetPhysicalDeviceImageFormatProperties2Func                                                    getPhysicalDeviceImageFormatProperties2;
-GetPhysicalDeviceQueueFamilyProperties2Func                                                    getPhysicalDeviceQueueFamilyProperties2;
-GetPhysicalDeviceMemoryProperties2Func                                                         getPhysicalDeviceMemoryProperties2;
-GetPhysicalDeviceSparseImageFormatProperties2Func                                      getPhysicalDeviceSparseImageFormatProperties2;
-GetPhysicalDeviceExternalBufferPropertiesFunc                                          getPhysicalDeviceExternalBufferProperties;
-GetPhysicalDeviceExternalFencePropertiesFunc                                           getPhysicalDeviceExternalFenceProperties;
-GetPhysicalDeviceExternalSemaphorePropertiesFunc                                       getPhysicalDeviceExternalSemaphoreProperties;
-GetPhysicalDeviceToolPropertiesFunc                                                                    getPhysicalDeviceToolProperties;
-DestroySurfaceKHRFunc                                                                                          destroySurfaceKHR;
-GetPhysicalDeviceSurfaceSupportKHRFunc                                                         getPhysicalDeviceSurfaceSupportKHR;
-GetPhysicalDeviceSurfaceCapabilitiesKHRFunc                                                    getPhysicalDeviceSurfaceCapabilitiesKHR;
-GetPhysicalDeviceSurfaceFormatsKHRFunc                                                         getPhysicalDeviceSurfaceFormatsKHR;
-GetPhysicalDeviceSurfacePresentModesKHRFunc                                                    getPhysicalDeviceSurfacePresentModesKHR;
-GetPhysicalDevicePresentRectanglesKHRFunc                                                      getPhysicalDevicePresentRectanglesKHR;
+CreateAndroidSurfaceKHRFunc                                                                                    createAndroidSurfaceKHR;
 GetPhysicalDeviceDisplayPropertiesKHRFunc                                                      getPhysicalDeviceDisplayPropertiesKHR;
 GetPhysicalDeviceDisplayPlanePropertiesKHRFunc                                         getPhysicalDeviceDisplayPlanePropertiesKHR;
 GetDisplayPlaneSupportedDisplaysKHRFunc                                                                getDisplayPlaneSupportedDisplaysKHR;
@@ -40,61 +23,81 @@ GetDisplayModePropertiesKHRFunc                                                                             getDisplayModePropertiesKHR;
 CreateDisplayModeKHRFunc                                                                                       createDisplayModeKHR;
 GetDisplayPlaneCapabilitiesKHRFunc                                                                     getDisplayPlaneCapabilitiesKHR;
 CreateDisplayPlaneSurfaceKHRFunc                                                                       createDisplayPlaneSurfaceKHR;
+DestroySurfaceKHRFunc                                                                                          destroySurfaceKHR;
+GetPhysicalDeviceSurfaceSupportKHRFunc                                                         getPhysicalDeviceSurfaceSupportKHR;
+GetPhysicalDeviceSurfaceCapabilitiesKHRFunc                                                    getPhysicalDeviceSurfaceCapabilitiesKHR;
+GetPhysicalDeviceSurfaceFormatsKHRFunc                                                         getPhysicalDeviceSurfaceFormatsKHR;
+GetPhysicalDeviceSurfacePresentModesKHRFunc                                                    getPhysicalDeviceSurfacePresentModesKHR;
+CreateViSurfaceNNFunc                                                                                          createViSurfaceNN;
+CreateWaylandSurfaceKHRFunc                                                                                    createWaylandSurfaceKHR;
+GetPhysicalDeviceWaylandPresentationSupportKHRFunc                                     getPhysicalDeviceWaylandPresentationSupportKHR;
+CreateWin32SurfaceKHRFunc                                                                                      createWin32SurfaceKHR;
+GetPhysicalDeviceWin32PresentationSupportKHRFunc                                       getPhysicalDeviceWin32PresentationSupportKHR;
+CreateXlibSurfaceKHRFunc                                                                                       createXlibSurfaceKHR;
+GetPhysicalDeviceXlibPresentationSupportKHRFunc                                                getPhysicalDeviceXlibPresentationSupportKHR;
+CreateXcbSurfaceKHRFunc                                                                                                createXcbSurfaceKHR;
+GetPhysicalDeviceXcbPresentationSupportKHRFunc                                         getPhysicalDeviceXcbPresentationSupportKHR;
+CreateImagePipeSurfaceFUCHSIAFunc                                                                      createImagePipeSurfaceFUCHSIA;
+CreateStreamDescriptorSurfaceGGPFunc                                                           createStreamDescriptorSurfaceGGP;
+CreateScreenSurfaceQNXFunc                                                                                     createScreenSurfaceQNX;
+GetPhysicalDeviceScreenPresentationSupportQNXFunc                                      getPhysicalDeviceScreenPresentationSupportQNX;
+CreateDebugReportCallbackEXTFunc                                                                       createDebugReportCallbackEXT;
+DestroyDebugReportCallbackEXTFunc                                                                      destroyDebugReportCallbackEXT;
+DebugReportMessageEXTFunc                                                                                      debugReportMessageEXT;
+GetPhysicalDeviceExternalImageFormatPropertiesNVFunc                           getPhysicalDeviceExternalImageFormatPropertiesNV;
+GetPhysicalDeviceFeatures2Func                                                                         getPhysicalDeviceFeatures2;
 GetPhysicalDeviceFeatures2KHRFunc                                                                      getPhysicalDeviceFeatures2KHR;
+GetPhysicalDeviceProperties2Func                                                                       getPhysicalDeviceProperties2;
 GetPhysicalDeviceProperties2KHRFunc                                                                    getPhysicalDeviceProperties2KHR;
+GetPhysicalDeviceFormatProperties2Func                                                         getPhysicalDeviceFormatProperties2;
 GetPhysicalDeviceFormatProperties2KHRFunc                                                      getPhysicalDeviceFormatProperties2KHR;
+GetPhysicalDeviceImageFormatProperties2Func                                                    getPhysicalDeviceImageFormatProperties2;
 GetPhysicalDeviceImageFormatProperties2KHRFunc                                         getPhysicalDeviceImageFormatProperties2KHR;
+GetPhysicalDeviceQueueFamilyProperties2Func                                                    getPhysicalDeviceQueueFamilyProperties2;
 GetPhysicalDeviceQueueFamilyProperties2KHRFunc                                         getPhysicalDeviceQueueFamilyProperties2KHR;
+GetPhysicalDeviceMemoryProperties2Func                                                         getPhysicalDeviceMemoryProperties2;
 GetPhysicalDeviceMemoryProperties2KHRFunc                                                      getPhysicalDeviceMemoryProperties2KHR;
+GetPhysicalDeviceSparseImageFormatProperties2Func                                      getPhysicalDeviceSparseImageFormatProperties2;
 GetPhysicalDeviceSparseImageFormatProperties2KHRFunc                           getPhysicalDeviceSparseImageFormatProperties2KHR;
+GetPhysicalDeviceExternalBufferPropertiesFunc                                          getPhysicalDeviceExternalBufferProperties;
 GetPhysicalDeviceExternalBufferPropertiesKHRFunc                                       getPhysicalDeviceExternalBufferPropertiesKHR;
+GetPhysicalDeviceExternalSemaphorePropertiesFunc                                       getPhysicalDeviceExternalSemaphoreProperties;
 GetPhysicalDeviceExternalSemaphorePropertiesKHRFunc                                    getPhysicalDeviceExternalSemaphorePropertiesKHR;
+GetPhysicalDeviceExternalFencePropertiesFunc                                           getPhysicalDeviceExternalFenceProperties;
 GetPhysicalDeviceExternalFencePropertiesKHRFunc                                                getPhysicalDeviceExternalFencePropertiesKHR;
-EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRFunc      enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
-GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRFunc                      getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
+ReleaseDisplayEXTFunc                                                                                          releaseDisplayEXT;
+AcquireXlibDisplayEXTFunc                                                                                      acquireXlibDisplayEXT;
+GetRandROutputDisplayEXTFunc                                                                           getRandROutputDisplayEXT;
+AcquireWinrtDisplayNVFunc                                                                                      acquireWinrtDisplayNV;
+GetWinrtDisplayNVFunc                                                                                          getWinrtDisplayNV;
+GetPhysicalDeviceSurfaceCapabilities2EXTFunc                                           getPhysicalDeviceSurfaceCapabilities2EXT;
+EnumeratePhysicalDeviceGroupsFunc                                                                      enumeratePhysicalDeviceGroups;
+EnumeratePhysicalDeviceGroupsKHRFunc                                                           enumeratePhysicalDeviceGroupsKHR;
+GetPhysicalDevicePresentRectanglesKHRFunc                                                      getPhysicalDevicePresentRectanglesKHR;
+CreateIOSSurfaceMVKFunc                                                                                                createIOSSurfaceMVK;
+CreateMacOSSurfaceMVKFunc                                                                                      createMacOSSurfaceMVK;
+CreateMetalSurfaceEXTFunc                                                                                      createMetalSurfaceEXT;
+GetPhysicalDeviceMultisamplePropertiesEXTFunc                                          getPhysicalDeviceMultisamplePropertiesEXT;
 GetPhysicalDeviceSurfaceCapabilities2KHRFunc                                           getPhysicalDeviceSurfaceCapabilities2KHR;
 GetPhysicalDeviceSurfaceFormats2KHRFunc                                                                getPhysicalDeviceSurfaceFormats2KHR;
 GetPhysicalDeviceDisplayProperties2KHRFunc                                                     getPhysicalDeviceDisplayProperties2KHR;
 GetPhysicalDeviceDisplayPlaneProperties2KHRFunc                                                getPhysicalDeviceDisplayPlaneProperties2KHR;
 GetDisplayModeProperties2KHRFunc                                                                       getDisplayModeProperties2KHR;
 GetDisplayPlaneCapabilities2KHRFunc                                                                    getDisplayPlaneCapabilities2KHR;
-GetPhysicalDeviceFragmentShadingRatesKHRFunc                                           getPhysicalDeviceFragmentShadingRatesKHR;
-CreateDebugReportCallbackEXTFunc                                                                       createDebugReportCallbackEXT;
-DestroyDebugReportCallbackEXTFunc                                                                      destroyDebugReportCallbackEXT;
-DebugReportMessageEXTFunc                                                                                      debugReportMessageEXT;
-GetPhysicalDeviceExternalImageFormatPropertiesNVFunc                           getPhysicalDeviceExternalImageFormatPropertiesNV;
-ReleaseDisplayEXTFunc                                                                                          releaseDisplayEXT;
-GetPhysicalDeviceSurfaceCapabilities2EXTFunc                                           getPhysicalDeviceSurfaceCapabilities2EXT;
+GetPhysicalDeviceCalibrateableTimeDomainsEXTFunc                                       getPhysicalDeviceCalibrateableTimeDomainsEXT;
 CreateDebugUtilsMessengerEXTFunc                                                                       createDebugUtilsMessengerEXT;
 DestroyDebugUtilsMessengerEXTFunc                                                                      destroyDebugUtilsMessengerEXT;
 SubmitDebugUtilsMessageEXTFunc                                                                         submitDebugUtilsMessageEXT;
-GetPhysicalDeviceMultisamplePropertiesEXTFunc                                          getPhysicalDeviceMultisamplePropertiesEXT;
-GetPhysicalDeviceCalibrateableTimeDomainsEXTFunc                                       getPhysicalDeviceCalibrateableTimeDomainsEXT;
-GetPhysicalDeviceToolPropertiesEXTFunc                                                         getPhysicalDeviceToolPropertiesEXT;
 GetPhysicalDeviceCooperativeMatrixPropertiesNVFunc                                     getPhysicalDeviceCooperativeMatrixPropertiesNV;
-GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVFunc    getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
+GetPhysicalDeviceSurfacePresentModes2EXTFunc                                           getPhysicalDeviceSurfacePresentModes2EXT;
+EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRFunc      enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
+GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRFunc                      getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
 CreateHeadlessSurfaceEXTFunc                                                                           createHeadlessSurfaceEXT;
-AcquireDrmDisplayEXTFunc                                                                                       acquireDrmDisplayEXT;
-GetDrmDisplayEXTFunc                                                                                           getDrmDisplayEXT;
-AcquireWinrtDisplayNVFunc                                                                                      acquireWinrtDisplayNV;
-GetWinrtDisplayNVFunc                                                                                          getWinrtDisplayNV;
-CreateAndroidSurfaceKHRFunc                                                                                    createAndroidSurfaceKHR;
+GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVFunc    getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
+GetPhysicalDeviceToolPropertiesFunc                                                                    getPhysicalDeviceToolProperties;
+GetPhysicalDeviceToolPropertiesEXTFunc                                                         getPhysicalDeviceToolPropertiesEXT;
+GetPhysicalDeviceFragmentShadingRatesKHRFunc                                           getPhysicalDeviceFragmentShadingRatesKHR;
 GetPhysicalDeviceVideoCapabilitiesKHRFunc                                                      getPhysicalDeviceVideoCapabilitiesKHR;
 GetPhysicalDeviceVideoFormatPropertiesKHRFunc                                          getPhysicalDeviceVideoFormatPropertiesKHR;
-CreateImagePipeSurfaceFUCHSIAFunc                                                                      createImagePipeSurfaceFUCHSIA;
-CreateStreamDescriptorSurfaceGGPFunc                                                           createStreamDescriptorSurfaceGGP;
-CreateIOSSurfaceMVKFunc                                                                                                createIOSSurfaceMVK;
-CreateMacOSSurfaceMVKFunc                                                                                      createMacOSSurfaceMVK;
-CreateMetalSurfaceEXTFunc                                                                                      createMetalSurfaceEXT;
-CreateViSurfaceNNFunc                                                                                          createViSurfaceNN;
-CreateWaylandSurfaceKHRFunc                                                                                    createWaylandSurfaceKHR;
-GetPhysicalDeviceWaylandPresentationSupportKHRFunc                                     getPhysicalDeviceWaylandPresentationSupportKHR;
-CreateWin32SurfaceKHRFunc                                                                                      createWin32SurfaceKHR;
-GetPhysicalDeviceWin32PresentationSupportKHRFunc                                       getPhysicalDeviceWin32PresentationSupportKHR;
-GetPhysicalDeviceSurfacePresentModes2EXTFunc                                           getPhysicalDeviceSurfacePresentModes2EXT;
-CreateXcbSurfaceKHRFunc                                                                                                createXcbSurfaceKHR;
-GetPhysicalDeviceXcbPresentationSupportKHRFunc                                         getPhysicalDeviceXcbPresentationSupportKHR;
-CreateXlibSurfaceKHRFunc                                                                                       createXlibSurfaceKHR;
-GetPhysicalDeviceXlibPresentationSupportKHRFunc                                                getPhysicalDeviceXlibPresentationSupportKHR;
-AcquireXlibDisplayEXTFunc                                                                                      acquireXlibDisplayEXT;
-GetRandROutputDisplayEXTFunc                                                                           getRandROutputDisplayEXT;
+AcquireDrmDisplayEXTFunc                                                                                       acquireDrmDisplayEXT;
+GetDrmDisplayEXTFunc                                                                                           getDrmDisplayEXT;
index d260261..b62bb81 100644 (file)
@@ -117,184 +117,190 @@ VKAPI_ATTR VkResult VKAPI_CALL createCommandPool (VkDevice device, const VkComma
        VK_NULL_RETURN((*pCommandPool = allocateNonDispHandle<CommandPool, VkCommandPool>(device, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createSamplerYcbcrConversion (VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion)
+VKAPI_ATTR VkResult VKAPI_CALL createAndroidSurfaceKHR (VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pYcbcrConversion = allocateNonDispHandle<SamplerYcbcrConversion, VkSamplerYcbcrConversion>(device, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createDescriptorUpdateTemplate (VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
+VKAPI_ATTR VkResult VKAPI_CALL createDisplayPlaneSurfaceKHR (VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pDescriptorUpdateTemplate = allocateNonDispHandle<DescriptorUpdateTemplate, VkDescriptorUpdateTemplate>(device, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createRenderPass2 (VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass)
+VKAPI_ATTR VkResult VKAPI_CALL createSwapchainKHR (VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pRenderPass = allocateNonDispHandle<RenderPass, VkRenderPass>(device, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pSwapchain = allocateNonDispHandle<SwapchainKHR, VkSwapchainKHR>(device, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createPrivateDataSlot (VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot)
+VKAPI_ATTR VkResult VKAPI_CALL createViSurfaceNN (VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pPrivateDataSlot = allocateNonDispHandle<PrivateDataSlot, VkPrivateDataSlot>(device, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createSwapchainKHR (VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain)
+VKAPI_ATTR VkResult VKAPI_CALL createWaylandSurfaceKHR (VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pSwapchain = allocateNonDispHandle<SwapchainKHR, VkSwapchainKHR>(device, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createDisplayPlaneSurfaceKHR (VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
+VKAPI_ATTR VkResult VKAPI_CALL createWin32SurfaceKHR (VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
 {
        DE_UNREF(pAllocator);
        VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createDeferredOperationKHR (VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation)
+VKAPI_ATTR VkResult VKAPI_CALL createXlibSurfaceKHR (VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pDeferredOperation = allocateNonDispHandle<DeferredOperationKHR, VkDeferredOperationKHR>(device, pAllocator)));
+       VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createDebugReportCallbackEXT (VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback)
+VKAPI_ATTR VkResult VKAPI_CALL createXcbSurfaceKHR (VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pCallback = allocateNonDispHandle<DebugReportCallbackEXT, VkDebugReportCallbackEXT>(instance, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createCuModuleNVX (VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule)
+VKAPI_ATTR VkResult VKAPI_CALL createImagePipeSurfaceFUCHSIA (VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pModule = allocateNonDispHandle<CuModuleNVX, VkCuModuleNVX>(device, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createCuFunctionNVX (VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction)
+VKAPI_ATTR VkResult VKAPI_CALL createStreamDescriptorSurfaceGGP (VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pFunction = allocateNonDispHandle<CuFunctionNVX, VkCuFunctionNVX>(device, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createDebugUtilsMessengerEXT (VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger)
+VKAPI_ATTR VkResult VKAPI_CALL createScreenSurfaceQNX (VkInstance instance, const VkScreenSurfaceCreateInfoQNX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pMessenger = allocateNonDispHandle<DebugUtilsMessengerEXT, VkDebugUtilsMessengerEXT>(instance, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createValidationCacheEXT (VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache)
+VKAPI_ATTR VkResult VKAPI_CALL createDebugReportCallbackEXT (VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pValidationCache = allocateNonDispHandle<ValidationCacheEXT, VkValidationCacheEXT>(device, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pCallback = allocateNonDispHandle<DebugReportCallbackEXT, VkDebugReportCallbackEXT>(instance, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createAccelerationStructureNV (VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure)
+VKAPI_ATTR VkResult VKAPI_CALL createIndirectCommandsLayoutNV (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pAccelerationStructure = allocateNonDispHandle<AccelerationStructureNV, VkAccelerationStructureNV>(device, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pIndirectCommandsLayout = allocateNonDispHandle<IndirectCommandsLayoutNV, VkIndirectCommandsLayoutNV>(device, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createHeadlessSurfaceEXT (VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
+VKAPI_ATTR VkResult VKAPI_CALL createDescriptorUpdateTemplate (VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pDescriptorUpdateTemplate = allocateNonDispHandle<DescriptorUpdateTemplate, VkDescriptorUpdateTemplate>(device, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createIndirectCommandsLayoutNV (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout)
+VKAPI_ATTR VkResult VKAPI_CALL createIOSSurfaceMVK (VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pIndirectCommandsLayout = allocateNonDispHandle<IndirectCommandsLayoutNV, VkIndirectCommandsLayoutNV>(device, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createAccelerationStructureKHR (VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure)
+VKAPI_ATTR VkResult VKAPI_CALL createMacOSSurfaceMVK (VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pAccelerationStructure = allocateNonDispHandle<AccelerationStructureKHR, VkAccelerationStructureKHR>(device, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createAndroidSurfaceKHR (VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
+VKAPI_ATTR VkResult VKAPI_CALL createMetalSurfaceEXT (VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
 {
        DE_UNREF(pAllocator);
        VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createVideoSessionKHR (VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession)
+VKAPI_ATTR VkResult VKAPI_CALL createSamplerYcbcrConversion (VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pVideoSession = allocateNonDispHandle<VideoSessionKHR, VkVideoSessionKHR>(device, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pYcbcrConversion = allocateNonDispHandle<SamplerYcbcrConversion, VkSamplerYcbcrConversion>(device, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createVideoSessionParametersKHR (VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters)
+VKAPI_ATTR VkResult VKAPI_CALL createValidationCacheEXT (VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pVideoSessionParameters = allocateNonDispHandle<VideoSessionParametersKHR, VkVideoSessionParametersKHR>(device, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pValidationCache = allocateNonDispHandle<ValidationCacheEXT, VkValidationCacheEXT>(device, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createImagePipeSurfaceFUCHSIA (VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
+VKAPI_ATTR VkResult VKAPI_CALL createDebugUtilsMessengerEXT (VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pMessenger = allocateNonDispHandle<DebugUtilsMessengerEXT, VkDebugUtilsMessengerEXT>(instance, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createBufferCollectionFUCHSIA (VkDevice device, const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferCollectionFUCHSIA* pCollection)
+VKAPI_ATTR VkResult VKAPI_CALL createRenderPass2 (VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pCollection = allocateNonDispHandle<BufferCollectionFUCHSIA, VkBufferCollectionFUCHSIA>(device, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pRenderPass = allocateNonDispHandle<RenderPass, VkRenderPass>(device, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createStreamDescriptorSurfaceGGP (VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
+VKAPI_ATTR VkResult VKAPI_CALL createAccelerationStructureNV (VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pAccelerationStructure = allocateNonDispHandle<AccelerationStructureNV, VkAccelerationStructureNV>(device, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createIOSSurfaceMVK (VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
+VKAPI_ATTR VkResult VKAPI_CALL createHeadlessSurfaceEXT (VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
 {
        DE_UNREF(pAllocator);
        VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createMacOSSurfaceMVK (VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
+VKAPI_ATTR VkResult VKAPI_CALL createAccelerationStructureKHR (VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pAccelerationStructure = allocateNonDispHandle<AccelerationStructureKHR, VkAccelerationStructureKHR>(device, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createMetalSurfaceEXT (VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
+VKAPI_ATTR VkResult VKAPI_CALL createDeferredOperationKHR (VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pDeferredOperation = allocateNonDispHandle<DeferredOperationKHR, VkDeferredOperationKHR>(device, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createViSurfaceNN (VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
+VKAPI_ATTR VkResult VKAPI_CALL createPrivateDataSlot (VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pPrivateDataSlot = allocateNonDispHandle<PrivateDataSlot, VkPrivateDataSlot>(device, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createWaylandSurfaceKHR (VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
+VKAPI_ATTR VkResult VKAPI_CALL createVideoSessionKHR (VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pVideoSession = allocateNonDispHandle<VideoSessionKHR, VkVideoSessionKHR>(device, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createWin32SurfaceKHR (VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
+VKAPI_ATTR VkResult VKAPI_CALL createVideoSessionParametersKHR (VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pVideoSessionParameters = allocateNonDispHandle<VideoSessionParametersKHR, VkVideoSessionParametersKHR>(device, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createXcbSurfaceKHR (VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
+VKAPI_ATTR VkResult VKAPI_CALL createCuModuleNVX (VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pModule = allocateNonDispHandle<CuModuleNVX, VkCuModuleNVX>(device, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createXlibSurfaceKHR (VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
+VKAPI_ATTR VkResult VKAPI_CALL createCuFunctionNVX (VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction)
 {
        DE_UNREF(pAllocator);
-       VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
+       VK_NULL_RETURN((*pFunction = allocateNonDispHandle<CuFunctionNVX, VkCuFunctionNVX>(device, pCreateInfo, pAllocator)));
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL createBufferCollectionFUCHSIA (VkDevice device, const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferCollectionFUCHSIA* pCollection)
+{
+       DE_UNREF(pAllocator);
+       VK_NULL_RETURN((*pCollection = allocateNonDispHandle<BufferCollectionFUCHSIA, VkBufferCollectionFUCHSIA>(device, pCreateInfo, pAllocator)));
 }
 
 VKAPI_ATTR void VKAPI_CALL destroyInstance (VkInstance instance, const VkAllocationCallbacks* pAllocator)
@@ -421,24 +427,6 @@ VKAPI_ATTR void VKAPI_CALL destroyCommandPool (VkDevice device, VkCommandPool co
        freeNonDispHandle<CommandPool, VkCommandPool>(commandPool, pAllocator);
 }
 
-VKAPI_ATTR void VKAPI_CALL destroySamplerYcbcrConversion (VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator)
-{
-       DE_UNREF(device);
-       freeNonDispHandle<SamplerYcbcrConversion, VkSamplerYcbcrConversion>(ycbcrConversion, pAllocator);
-}
-
-VKAPI_ATTR void VKAPI_CALL destroyDescriptorUpdateTemplate (VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator)
-{
-       DE_UNREF(device);
-       freeNonDispHandle<DescriptorUpdateTemplate, VkDescriptorUpdateTemplate>(descriptorUpdateTemplate, pAllocator);
-}
-
-VKAPI_ATTR void VKAPI_CALL destroyPrivateDataSlot (VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator)
-{
-       DE_UNREF(device);
-       freeNonDispHandle<PrivateDataSlot, VkPrivateDataSlot>(privateDataSlot, pAllocator);
-}
-
 VKAPI_ATTR void VKAPI_CALL destroySurfaceKHR (VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator)
 {
        DE_UNREF(instance);
@@ -451,28 +439,34 @@ VKAPI_ATTR void VKAPI_CALL destroySwapchainKHR (VkDevice device, VkSwapchainKHR
        freeNonDispHandle<SwapchainKHR, VkSwapchainKHR>(swapchain, pAllocator);
 }
 
-VKAPI_ATTR void VKAPI_CALL destroyDeferredOperationKHR (VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator)
+VKAPI_ATTR void VKAPI_CALL destroyDebugReportCallbackEXT (VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator)
+{
+       DE_UNREF(instance);
+       freeNonDispHandle<DebugReportCallbackEXT, VkDebugReportCallbackEXT>(callback, pAllocator);
+}
+
+VKAPI_ATTR void VKAPI_CALL destroyIndirectCommandsLayoutNV (VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator)
 {
        DE_UNREF(device);
-       freeNonDispHandle<DeferredOperationKHR, VkDeferredOperationKHR>(operation, pAllocator);
+       freeNonDispHandle<IndirectCommandsLayoutNV, VkIndirectCommandsLayoutNV>(indirectCommandsLayout, pAllocator);
 }
 
-VKAPI_ATTR void VKAPI_CALL destroyDebugReportCallbackEXT (VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator)
+VKAPI_ATTR void VKAPI_CALL destroyDescriptorUpdateTemplate (VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator)
 {
-       DE_UNREF(instance);
-       freeNonDispHandle<DebugReportCallbackEXT, VkDebugReportCallbackEXT>(callback, pAllocator);
+       DE_UNREF(device);
+       freeNonDispHandle<DescriptorUpdateTemplate, VkDescriptorUpdateTemplate>(descriptorUpdateTemplate, pAllocator);
 }
 
-VKAPI_ATTR void VKAPI_CALL destroyCuModuleNVX (VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator)
+VKAPI_ATTR void VKAPI_CALL destroySamplerYcbcrConversion (VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator)
 {
        DE_UNREF(device);
-       freeNonDispHandle<CuModuleNVX, VkCuModuleNVX>(module, pAllocator);
+       freeNonDispHandle<SamplerYcbcrConversion, VkSamplerYcbcrConversion>(ycbcrConversion, pAllocator);
 }
 
-VKAPI_ATTR void VKAPI_CALL destroyCuFunctionNVX (VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator)
+VKAPI_ATTR void VKAPI_CALL destroyValidationCacheEXT (VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator)
 {
        DE_UNREF(device);
-       freeNonDispHandle<CuFunctionNVX, VkCuFunctionNVX>(function, pAllocator);
+       freeNonDispHandle<ValidationCacheEXT, VkValidationCacheEXT>(validationCache, pAllocator);
 }
 
 VKAPI_ATTR void VKAPI_CALL destroyDebugUtilsMessengerEXT (VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator)
@@ -481,10 +475,10 @@ VKAPI_ATTR void VKAPI_CALL destroyDebugUtilsMessengerEXT (VkInstance instance, V
        freeNonDispHandle<DebugUtilsMessengerEXT, VkDebugUtilsMessengerEXT>(messenger, pAllocator);
 }
 
-VKAPI_ATTR void VKAPI_CALL destroyValidationCacheEXT (VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator)
+VKAPI_ATTR void VKAPI_CALL destroyAccelerationStructureKHR (VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator)
 {
        DE_UNREF(device);
-       freeNonDispHandle<ValidationCacheEXT, VkValidationCacheEXT>(validationCache, pAllocator);
+       freeNonDispHandle<AccelerationStructureKHR, VkAccelerationStructureKHR>(accelerationStructure, pAllocator);
 }
 
 VKAPI_ATTR void VKAPI_CALL destroyAccelerationStructureNV (VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator)
@@ -493,16 +487,16 @@ VKAPI_ATTR void VKAPI_CALL destroyAccelerationStructureNV (VkDevice device, VkAc
        freeNonDispHandle<AccelerationStructureNV, VkAccelerationStructureNV>(accelerationStructure, pAllocator);
 }
 
-VKAPI_ATTR void VKAPI_CALL destroyIndirectCommandsLayoutNV (VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator)
+VKAPI_ATTR void VKAPI_CALL destroyDeferredOperationKHR (VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator)
 {
        DE_UNREF(device);
-       freeNonDispHandle<IndirectCommandsLayoutNV, VkIndirectCommandsLayoutNV>(indirectCommandsLayout, pAllocator);
+       freeNonDispHandle<DeferredOperationKHR, VkDeferredOperationKHR>(operation, pAllocator);
 }
 
-VKAPI_ATTR void VKAPI_CALL destroyAccelerationStructureKHR (VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator)
+VKAPI_ATTR void VKAPI_CALL destroyPrivateDataSlot (VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator)
 {
        DE_UNREF(device);
-       freeNonDispHandle<AccelerationStructureKHR, VkAccelerationStructureKHR>(accelerationStructure, pAllocator);
+       freeNonDispHandle<PrivateDataSlot, VkPrivateDataSlot>(privateDataSlot, pAllocator);
 }
 
 VKAPI_ATTR void VKAPI_CALL destroyVideoSessionKHR (VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator)
@@ -517,12 +511,30 @@ VKAPI_ATTR void VKAPI_CALL destroyVideoSessionParametersKHR (VkDevice device, Vk
        freeNonDispHandle<VideoSessionParametersKHR, VkVideoSessionParametersKHR>(videoSessionParameters, pAllocator);
 }
 
+VKAPI_ATTR void VKAPI_CALL destroyCuModuleNVX (VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator)
+{
+       DE_UNREF(device);
+       freeNonDispHandle<CuModuleNVX, VkCuModuleNVX>(module, pAllocator);
+}
+
+VKAPI_ATTR void VKAPI_CALL destroyCuFunctionNVX (VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator)
+{
+       DE_UNREF(device);
+       freeNonDispHandle<CuFunctionNVX, VkCuFunctionNVX>(function, pAllocator);
+}
+
 VKAPI_ATTR void VKAPI_CALL destroyBufferCollectionFUCHSIA (VkDevice device, VkBufferCollectionFUCHSIA collection, const VkAllocationCallbacks* pAllocator)
 {
        DE_UNREF(device);
        freeNonDispHandle<BufferCollectionFUCHSIA, VkBufferCollectionFUCHSIA>(collection, pAllocator);
 }
 
+VKAPI_ATTR VkResult VKAPI_CALL enumerateInstanceVersion (uint32_t* pApiVersion)
+{
+       DE_UNREF(pApiVersion);
+       return VK_SUCCESS;
+}
+
 VKAPI_ATTR VkResult VKAPI_CALL enumerateInstanceLayerProperties (uint32_t* pPropertyCount, VkLayerProperties* pProperties)
 {
        DE_UNREF(pPropertyCount);
@@ -688,6 +700,14 @@ VKAPI_ATTR VkResult VKAPI_CALL getQueryPoolResults (VkDevice device, VkQueryPool
        return VK_SUCCESS;
 }
 
+VKAPI_ATTR void VKAPI_CALL resetQueryPool (VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount)
+{
+       DE_UNREF(device);
+       DE_UNREF(queryPool);
+       DE_UNREF(firstQuery);
+       DE_UNREF(queryCount);
+}
+
 VKAPI_ATTR void VKAPI_CALL getImageSubresourceLayout (VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout)
 {
        DE_UNREF(device);
@@ -714,6 +734,14 @@ VKAPI_ATTR VkResult VKAPI_CALL mergePipelineCaches (VkDevice device, VkPipelineC
        return VK_SUCCESS;
 }
 
+VKAPI_ATTR VkResult VKAPI_CALL getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI (VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize)
+{
+       DE_UNREF(device);
+       DE_UNREF(renderpass);
+       DE_UNREF(pMaxWorkgroupSize);
+       return VK_SUCCESS;
+}
+
 VKAPI_ATTR void VKAPI_CALL updateDescriptorSets (VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies)
 {
        DE_UNREF(device);
@@ -877,6 +905,27 @@ VKAPI_ATTR void VKAPI_CALL cmdDrawIndexed (VkCommandBuffer commandBuffer, uint32
        DE_UNREF(firstInstance);
 }
 
+VKAPI_ATTR void VKAPI_CALL cmdDrawMultiEXT (VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(drawCount);
+       DE_UNREF(pVertexInfo);
+       DE_UNREF(instanceCount);
+       DE_UNREF(firstInstance);
+       DE_UNREF(stride);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdDrawMultiIndexedEXT (VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawIndexedInfoEXT* pIndexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride, const int32_t* pVertexOffset)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(drawCount);
+       DE_UNREF(pIndexInfo);
+       DE_UNREF(instanceCount);
+       DE_UNREF(firstInstance);
+       DE_UNREF(stride);
+       DE_UNREF(pVertexOffset);
+}
+
 VKAPI_ATTR void VKAPI_CALL cmdDrawIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride)
 {
        DE_UNREF(commandBuffer);
@@ -910,6 +959,11 @@ VKAPI_ATTR void VKAPI_CALL cmdDispatchIndirect (VkCommandBuffer commandBuffer, V
        DE_UNREF(offset);
 }
 
+VKAPI_ATTR void VKAPI_CALL cmdSubpassShadingHUAWEI (VkCommandBuffer commandBuffer)
+{
+       DE_UNREF(commandBuffer);
+}
+
 VKAPI_ATTR void VKAPI_CALL cmdCopyBuffer (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions)
 {
        DE_UNREF(commandBuffer);
@@ -1078,6 +1132,17 @@ VKAPI_ATTR void VKAPI_CALL cmdEndQuery (VkCommandBuffer commandBuffer, VkQueryPo
        DE_UNREF(query);
 }
 
+VKAPI_ATTR void VKAPI_CALL cmdBeginConditionalRenderingEXT (VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pConditionalRenderingBegin);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdEndConditionalRenderingEXT (VkCommandBuffer commandBuffer)
+{
+       DE_UNREF(commandBuffer);
+}
+
 VKAPI_ATTR void VKAPI_CALL cmdResetQueryPool (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount)
 {
        DE_UNREF(commandBuffer);
@@ -1141,621 +1206,726 @@ VKAPI_ATTR void VKAPI_CALL cmdExecuteCommands (VkCommandBuffer commandBuffer, ui
        DE_UNREF(pCommandBuffers);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL enumerateInstanceVersion (uint32_t* pApiVersion)
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceDisplayPropertiesKHR (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties)
 {
-       DE_UNREF(pApiVersion);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pPropertyCount);
+       DE_UNREF(pProperties);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL bindBufferMemory2 (VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos)
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceDisplayPlanePropertiesKHR (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties)
 {
-       DE_UNREF(device);
-       DE_UNREF(bindInfoCount);
-       DE_UNREF(pBindInfos);
-       return VK_SUCCESS;
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pPropertyCount);
+       DE_UNREF(pProperties);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL bindImageMemory2 (VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos)
+VKAPI_ATTR VkResult VKAPI_CALL getDisplayPlaneSupportedDisplaysKHR (VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays)
 {
-       DE_UNREF(device);
-       DE_UNREF(bindInfoCount);
-       DE_UNREF(pBindInfos);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(planeIndex);
+       DE_UNREF(pDisplayCount);
+       DE_UNREF(pDisplays);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL getDeviceGroupPeerMemoryFeatures (VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
+VKAPI_ATTR VkResult VKAPI_CALL getDisplayModePropertiesKHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties)
 {
-       DE_UNREF(device);
-       DE_UNREF(heapIndex);
-       DE_UNREF(localDeviceIndex);
-       DE_UNREF(remoteDeviceIndex);
-       DE_UNREF(pPeerMemoryFeatures);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(display);
+       DE_UNREF(pPropertyCount);
+       DE_UNREF(pProperties);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetDeviceMask (VkCommandBuffer commandBuffer, uint32_t deviceMask)
+VKAPI_ATTR VkResult VKAPI_CALL getDisplayPlaneCapabilitiesKHR (VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(deviceMask);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(mode);
+       DE_UNREF(planeIndex);
+       DE_UNREF(pCapabilities);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdDispatchBase (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 getPhysicalDeviceSurfaceSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(baseGroupX);
-       DE_UNREF(baseGroupY);
-       DE_UNREF(baseGroupZ);
-       DE_UNREF(groupCountX);
-       DE_UNREF(groupCountY);
-       DE_UNREF(groupCountZ);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(queueFamilyIndex);
+       DE_UNREF(surface);
+       DE_UNREF(pSupported);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL enumeratePhysicalDeviceGroups (VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSurfaceCapabilitiesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities)
 {
-       DE_UNREF(instance);
-       DE_UNREF(pPhysicalDeviceGroupCount);
-       DE_UNREF(pPhysicalDeviceGroupProperties);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(surface);
+       DE_UNREF(pSurfaceCapabilities);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL getImageMemoryRequirements2 (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements)
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSurfaceFormatsKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats)
 {
-       DE_UNREF(device);
-       DE_UNREF(pInfo);
-       DE_UNREF(pMemoryRequirements);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(surface);
+       DE_UNREF(pSurfaceFormatCount);
+       DE_UNREF(pSurfaceFormats);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL getBufferMemoryRequirements2 (VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements)
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSurfacePresentModesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes)
 {
-       DE_UNREF(device);
-       DE_UNREF(pInfo);
-       DE_UNREF(pMemoryRequirements);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(surface);
+       DE_UNREF(pPresentModeCount);
+       DE_UNREF(pPresentModes);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL getImageSparseMemoryRequirements2 (VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
+VKAPI_ATTR VkResult VKAPI_CALL getSwapchainImagesKHR (VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages)
 {
        DE_UNREF(device);
-       DE_UNREF(pInfo);
-       DE_UNREF(pSparseMemoryRequirementCount);
-       DE_UNREF(pSparseMemoryRequirements);
+       DE_UNREF(swapchain);
+       DE_UNREF(pSwapchainImageCount);
+       DE_UNREF(pSwapchainImages);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceFeatures2 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures)
+VKAPI_ATTR VkResult VKAPI_CALL acquireNextImageKHR (VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(pFeatures);
+       DE_UNREF(device);
+       DE_UNREF(swapchain);
+       DE_UNREF(timeout);
+       DE_UNREF(semaphore);
+       DE_UNREF(fence);
+       DE_UNREF(pImageIndex);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceProperties2 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties)
+VKAPI_ATTR VkResult VKAPI_CALL queuePresentKHR (VkQueue queue, const VkPresentInfoKHR* pPresentInfo)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(pProperties);
+       DE_UNREF(queue);
+       DE_UNREF(pPresentInfo);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceFormatProperties2 (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties)
+VKAPI_ATTR VkBool32 VKAPI_CALL getPhysicalDeviceWaylandPresentationSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::WaylandDisplayPtr display)
 {
        DE_UNREF(physicalDevice);
-       DE_UNREF(format);
-       DE_UNREF(pFormatProperties);
+       DE_UNREF(queueFamilyIndex);
+       DE_UNREF(display);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceImageFormatProperties2 (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties)
+VKAPI_ATTR VkBool32 VKAPI_CALL getPhysicalDeviceWin32PresentationSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex)
 {
        DE_UNREF(physicalDevice);
-       DE_UNREF(pImageFormatInfo);
-       DE_UNREF(pImageFormatProperties);
+       DE_UNREF(queueFamilyIndex);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceQueueFamilyProperties2 (VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties)
+VKAPI_ATTR VkBool32 VKAPI_CALL getPhysicalDeviceXlibPresentationSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::XlibDisplayPtr dpy, pt::XlibVisualID visualID)
 {
        DE_UNREF(physicalDevice);
-       DE_UNREF(pQueueFamilyPropertyCount);
-       DE_UNREF(pQueueFamilyProperties);
+       DE_UNREF(queueFamilyIndex);
+       DE_UNREF(dpy);
+       DE_UNREF(visualID);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceMemoryProperties2 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
+VKAPI_ATTR VkBool32 VKAPI_CALL getPhysicalDeviceXcbPresentationSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::XcbConnectionPtr connection, pt::XcbVisualid visual_id)
 {
        DE_UNREF(physicalDevice);
-       DE_UNREF(pMemoryProperties);
+       DE_UNREF(queueFamilyIndex);
+       DE_UNREF(connection);
+       DE_UNREF(visual_id);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceSparseImageFormatProperties2 (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties)
+VKAPI_ATTR VkBool32 VKAPI_CALL getPhysicalDeviceScreenPresentationSupportQNX (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::QNXScreenWindowPtr window)
 {
        DE_UNREF(physicalDevice);
-       DE_UNREF(pFormatInfo);
-       DE_UNREF(pPropertyCount);
-       DE_UNREF(pProperties);
+       DE_UNREF(queueFamilyIndex);
+       DE_UNREF(window);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL trimCommandPool (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags)
+VKAPI_ATTR void VKAPI_CALL debugReportMessageEXT (VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage)
 {
-       DE_UNREF(device);
-       DE_UNREF(commandPool);
+       DE_UNREF(instance);
        DE_UNREF(flags);
+       DE_UNREF(objectType);
+       DE_UNREF(object);
+       DE_UNREF(location);
+       DE_UNREF(messageCode);
+       DE_UNREF(pLayerPrefix);
+       DE_UNREF(pMessage);
 }
 
-VKAPI_ATTR void VKAPI_CALL getDeviceQueue2 (VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue)
+VKAPI_ATTR VkResult VKAPI_CALL debugMarkerSetObjectNameEXT (VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo)
 {
        DE_UNREF(device);
-       DE_UNREF(pQueueInfo);
-       DE_UNREF(pQueue);
+       DE_UNREF(pNameInfo);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL updateDescriptorSetWithTemplate (VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData)
+VKAPI_ATTR VkResult VKAPI_CALL debugMarkerSetObjectTagEXT (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo)
 {
        DE_UNREF(device);
-       DE_UNREF(descriptorSet);
-       DE_UNREF(descriptorUpdateTemplate);
-       DE_UNREF(pData);
+       DE_UNREF(pTagInfo);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceExternalBufferProperties (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties)
+VKAPI_ATTR void VKAPI_CALL cmdDebugMarkerBeginEXT (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(pExternalBufferInfo);
-       DE_UNREF(pExternalBufferProperties);
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pMarkerInfo);
 }
 
-VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceExternalFenceProperties (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties)
+VKAPI_ATTR void VKAPI_CALL cmdDebugMarkerEndEXT (VkCommandBuffer commandBuffer)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(pExternalFenceInfo);
-       DE_UNREF(pExternalFenceProperties);
+       DE_UNREF(commandBuffer);
 }
 
-VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceExternalSemaphoreProperties (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
+VKAPI_ATTR void VKAPI_CALL cmdDebugMarkerInsertEXT (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pMarkerInfo);
+}
+
+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(pExternalSemaphoreInfo);
-       DE_UNREF(pExternalSemaphoreProperties);
+       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 void VKAPI_CALL getDescriptorSetLayoutSupport (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport)
+VKAPI_ATTR VkResult VKAPI_CALL getMemoryWin32HandleNV (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle)
 {
        DE_UNREF(device);
-       DE_UNREF(pCreateInfo);
-       DE_UNREF(pSupport);
+       DE_UNREF(memory);
+       DE_UNREF(handleType);
+       DE_UNREF(pHandle);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdDrawIndirectCount (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride)
+VKAPI_ATTR void VKAPI_CALL cmdExecuteGeneratedCommandsNV (VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(buffer);
-       DE_UNREF(offset);
-       DE_UNREF(countBuffer);
-       DE_UNREF(countBufferOffset);
-       DE_UNREF(maxDrawCount);
-       DE_UNREF(stride);
+       DE_UNREF(isPreprocessed);
+       DE_UNREF(pGeneratedCommandsInfo);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdDrawIndexedIndirectCount (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride)
+VKAPI_ATTR void VKAPI_CALL cmdPreprocessGeneratedCommandsNV (VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(buffer);
-       DE_UNREF(offset);
-       DE_UNREF(countBuffer);
-       DE_UNREF(countBufferOffset);
-       DE_UNREF(maxDrawCount);
-       DE_UNREF(stride);
+       DE_UNREF(pGeneratedCommandsInfo);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdBeginRenderPass2 (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo)
+VKAPI_ATTR void VKAPI_CALL cmdBindPipelineShaderGroupNV (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(pRenderPassBegin);
-       DE_UNREF(pSubpassBeginInfo);
+       DE_UNREF(pipelineBindPoint);
+       DE_UNREF(pipeline);
+       DE_UNREF(groupIndex);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdNextSubpass2 (VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo)
+VKAPI_ATTR void VKAPI_CALL getGeneratedCommandsMemoryRequirementsNV (VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(pSubpassBeginInfo);
-       DE_UNREF(pSubpassEndInfo);
+       DE_UNREF(device);
+       DE_UNREF(pInfo);
+       DE_UNREF(pMemoryRequirements);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdEndRenderPass2 (VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo)
+VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceFeatures2 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(pSubpassEndInfo);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pFeatures);
 }
 
-VKAPI_ATTR void VKAPI_CALL resetQueryPool (VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount)
+VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceProperties2 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties)
 {
-       DE_UNREF(device);
-       DE_UNREF(queryPool);
-       DE_UNREF(firstQuery);
-       DE_UNREF(queryCount);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pProperties);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getSemaphoreCounterValue (VkDevice device, VkSemaphore semaphore, uint64_t* pValue)
+VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceFormatProperties2 (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties)
 {
-       DE_UNREF(device);
-       DE_UNREF(semaphore);
-       DE_UNREF(pValue);
-       return VK_SUCCESS;
+       DE_UNREF(physicalDevice);
+       DE_UNREF(format);
+       DE_UNREF(pFormatProperties);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL waitSemaphores (VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout)
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceImageFormatProperties2 (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties)
 {
-       DE_UNREF(device);
-       DE_UNREF(pWaitInfo);
-       DE_UNREF(timeout);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pImageFormatInfo);
+       DE_UNREF(pImageFormatProperties);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL signalSemaphore (VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo)
+VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceQueueFamilyProperties2 (VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties)
 {
-       DE_UNREF(device);
-       DE_UNREF(pSignalInfo);
-       return VK_SUCCESS;
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pQueueFamilyPropertyCount);
+       DE_UNREF(pQueueFamilyProperties);
 }
 
-VKAPI_ATTR VkDeviceAddress VKAPI_CALL getBufferDeviceAddress (VkDevice device, const VkBufferDeviceAddressInfo* pInfo)
+VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceMemoryProperties2 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
 {
-       DE_UNREF(device);
-       DE_UNREF(pInfo);
-       return VK_SUCCESS;
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pMemoryProperties);
 }
 
-VKAPI_ATTR uint64_t VKAPI_CALL getBufferOpaqueCaptureAddress (VkDevice device, const VkBufferDeviceAddressInfo* pInfo)
+VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceSparseImageFormatProperties2 (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties)
 {
-       DE_UNREF(device);
-       DE_UNREF(pInfo);
-       return VK_SUCCESS;
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pFormatInfo);
+       DE_UNREF(pPropertyCount);
+       DE_UNREF(pProperties);
 }
 
-VKAPI_ATTR uint64_t VKAPI_CALL getDeviceMemoryOpaqueCaptureAddress (VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo)
+VKAPI_ATTR void VKAPI_CALL cmdPushDescriptorSetKHR (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pipelineBindPoint);
+       DE_UNREF(layout);
+       DE_UNREF(set);
+       DE_UNREF(descriptorWriteCount);
+       DE_UNREF(pDescriptorWrites);
+}
+
+VKAPI_ATTR void VKAPI_CALL trimCommandPool (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags)
 {
        DE_UNREF(device);
-       DE_UNREF(pInfo);
-       return VK_SUCCESS;
+       DE_UNREF(commandPool);
+       DE_UNREF(flags);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceToolProperties (VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties)
+VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceExternalBufferProperties (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties)
 {
        DE_UNREF(physicalDevice);
-       DE_UNREF(pToolCount);
-       DE_UNREF(pToolProperties);
+       DE_UNREF(pExternalBufferInfo);
+       DE_UNREF(pExternalBufferProperties);
+}
+
+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 setPrivateData (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data)
+VKAPI_ATTR VkResult VKAPI_CALL getMemoryWin32HandlePropertiesKHR (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties)
 {
        DE_UNREF(device);
-       DE_UNREF(objectType);
-       DE_UNREF(objectHandle);
-       DE_UNREF(privateDataSlot);
-       DE_UNREF(data);
+       DE_UNREF(handleType);
+       DE_UNREF(handle);
+       DE_UNREF(pMemoryWin32HandleProperties);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL getPrivateData (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData)
+VKAPI_ATTR VkResult VKAPI_CALL getMemoryFdKHR (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd)
 {
        DE_UNREF(device);
-       DE_UNREF(objectType);
-       DE_UNREF(objectHandle);
-       DE_UNREF(privateDataSlot);
-       DE_UNREF(pData);
+       DE_UNREF(pGetFdInfo);
+       DE_UNREF(pFd);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetEvent2 (VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo)
+VKAPI_ATTR VkResult VKAPI_CALL getMemoryFdPropertiesKHR (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(event);
-       DE_UNREF(pDependencyInfo);
+       DE_UNREF(device);
+       DE_UNREF(handleType);
+       DE_UNREF(fd);
+       DE_UNREF(pMemoryFdProperties);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdResetEvent2 (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask)
+VKAPI_ATTR VkResult VKAPI_CALL getMemoryZirconHandleFUCHSIA (VkDevice device, const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, pt::zx_handle_t* pZirconHandle)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(event);
-       DE_UNREF(stageMask);
+       DE_UNREF(device);
+       DE_UNREF(pGetZirconHandleInfo);
+       DE_UNREF(pZirconHandle);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdWaitEvents2 (VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos)
+VKAPI_ATTR VkResult VKAPI_CALL getMemoryZirconHandlePropertiesFUCHSIA (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(eventCount);
-       DE_UNREF(pEvents);
-       DE_UNREF(pDependencyInfos);
+       DE_UNREF(device);
+       DE_UNREF(handleType);
+       DE_UNREF(zirconHandle);
+       DE_UNREF(pMemoryZirconHandleProperties);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdPipelineBarrier2 (VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo)
+VKAPI_ATTR VkResult VKAPI_CALL getMemoryRemoteAddressNV (VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(pDependencyInfo);
+       DE_UNREF(device);
+       DE_UNREF(pMemoryGetRemoteAddressInfo);
+       DE_UNREF(pAddress);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdWriteTimestamp2 (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query)
+VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceExternalSemaphoreProperties (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(stage);
-       DE_UNREF(queryPool);
-       DE_UNREF(query);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pExternalSemaphoreInfo);
+       DE_UNREF(pExternalSemaphoreProperties);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL queueSubmit2 (VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence)
+VKAPI_ATTR VkResult VKAPI_CALL getSemaphoreWin32HandleKHR (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle)
 {
-       DE_UNREF(queue);
-       DE_UNREF(submitCount);
-       DE_UNREF(pSubmits);
-       DE_UNREF(fence);
+       DE_UNREF(device);
+       DE_UNREF(pGetWin32HandleInfo);
+       DE_UNREF(pHandle);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdCopyBuffer2 (VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo)
+VKAPI_ATTR VkResult VKAPI_CALL importSemaphoreWin32HandleKHR (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(pCopyBufferInfo);
+       DE_UNREF(device);
+       DE_UNREF(pImportSemaphoreWin32HandleInfo);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdCopyImage2 (VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo)
+VKAPI_ATTR VkResult VKAPI_CALL getSemaphoreFdKHR (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(pCopyImageInfo);
+       DE_UNREF(device);
+       DE_UNREF(pGetFdInfo);
+       DE_UNREF(pFd);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdCopyBufferToImage2 (VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo)
+VKAPI_ATTR VkResult VKAPI_CALL importSemaphoreFdKHR (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(pCopyBufferToImageInfo);
+       DE_UNREF(device);
+       DE_UNREF(pImportSemaphoreFdInfo);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdCopyImageToBuffer2 (VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo)
+VKAPI_ATTR VkResult VKAPI_CALL getSemaphoreZirconHandleFUCHSIA (VkDevice device, const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, pt::zx_handle_t* pZirconHandle)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(pCopyImageToBufferInfo);
+       DE_UNREF(device);
+       DE_UNREF(pGetZirconHandleInfo);
+       DE_UNREF(pZirconHandle);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdBlitImage2 (VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo)
+VKAPI_ATTR VkResult VKAPI_CALL importSemaphoreZirconHandleFUCHSIA (VkDevice device, const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(pBlitImageInfo);
+       DE_UNREF(device);
+       DE_UNREF(pImportSemaphoreZirconHandleInfo);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdResolveImage2 (VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo)
+VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceExternalFenceProperties (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(pResolveImageInfo);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pExternalFenceInfo);
+       DE_UNREF(pExternalFenceProperties);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdBeginRendering (VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo)
+VKAPI_ATTR VkResult VKAPI_CALL getFenceWin32HandleKHR (VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(pRenderingInfo);
+       DE_UNREF(device);
+       DE_UNREF(pGetWin32HandleInfo);
+       DE_UNREF(pHandle);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdEndRendering (VkCommandBuffer commandBuffer)
+VKAPI_ATTR VkResult VKAPI_CALL importFenceWin32HandleKHR (VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo)
 {
-       DE_UNREF(commandBuffer);
+       DE_UNREF(device);
+       DE_UNREF(pImportFenceWin32HandleInfo);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetCullMode (VkCommandBuffer commandBuffer, VkCullModeFlags cullMode)
+VKAPI_ATTR VkResult VKAPI_CALL getFenceFdKHR (VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(cullMode);
+       DE_UNREF(device);
+       DE_UNREF(pGetFdInfo);
+       DE_UNREF(pFd);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetFrontFace (VkCommandBuffer commandBuffer, VkFrontFace frontFace)
+VKAPI_ATTR VkResult VKAPI_CALL importFenceFdKHR (VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(frontFace);
+       DE_UNREF(device);
+       DE_UNREF(pImportFenceFdInfo);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetPrimitiveTopology (VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology)
+VKAPI_ATTR VkResult VKAPI_CALL releaseDisplayEXT (VkPhysicalDevice physicalDevice, VkDisplayKHR display)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(primitiveTopology);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(display);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetViewportWithCount (VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports)
+VKAPI_ATTR VkResult VKAPI_CALL acquireXlibDisplayEXT (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, VkDisplayKHR display)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(viewportCount);
-       DE_UNREF(pViewports);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(dpy);
+       DE_UNREF(display);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetScissorWithCount (VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors)
+VKAPI_ATTR VkResult VKAPI_CALL getRandROutputDisplayEXT (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, pt::RROutput rrOutput, VkDisplayKHR* pDisplay)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(scissorCount);
-       DE_UNREF(pScissors);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(dpy);
+       DE_UNREF(rrOutput);
+       DE_UNREF(pDisplay);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdBindVertexBuffers2 (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides)
+VKAPI_ATTR VkResult VKAPI_CALL acquireWinrtDisplayNV (VkPhysicalDevice physicalDevice, VkDisplayKHR display)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(firstBinding);
-       DE_UNREF(bindingCount);
-       DE_UNREF(pBuffers);
-       DE_UNREF(pOffsets);
-       DE_UNREF(pSizes);
-       DE_UNREF(pStrides);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(display);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetDepthTestEnable (VkCommandBuffer commandBuffer, VkBool32 depthTestEnable)
+VKAPI_ATTR VkResult VKAPI_CALL getWinrtDisplayNV (VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(depthTestEnable);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(deviceRelativeId);
+       DE_UNREF(pDisplay);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetDepthWriteEnable (VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable)
+VKAPI_ATTR VkResult VKAPI_CALL displayPowerControlEXT (VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(depthWriteEnable);
+       DE_UNREF(device);
+       DE_UNREF(display);
+       DE_UNREF(pDisplayPowerInfo);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetDepthCompareOp (VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp)
+VKAPI_ATTR VkResult VKAPI_CALL registerDeviceEventEXT (VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(depthCompareOp);
+       DE_UNREF(device);
+       DE_UNREF(pDeviceEventInfo);
+       DE_UNREF(pAllocator);
+       DE_UNREF(pFence);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetDepthBoundsTestEnable (VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable)
+VKAPI_ATTR VkResult VKAPI_CALL registerDisplayEventEXT (VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(depthBoundsTestEnable);
+       DE_UNREF(device);
+       DE_UNREF(display);
+       DE_UNREF(pDisplayEventInfo);
+       DE_UNREF(pAllocator);
+       DE_UNREF(pFence);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetStencilTestEnable (VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable)
+VKAPI_ATTR VkResult VKAPI_CALL getSwapchainCounterEXT (VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(stencilTestEnable);
+       DE_UNREF(device);
+       DE_UNREF(swapchain);
+       DE_UNREF(counter);
+       DE_UNREF(pCounterValue);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetStencilOp (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp)
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSurfaceCapabilities2EXT (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(faceMask);
-       DE_UNREF(failOp);
-       DE_UNREF(passOp);
-       DE_UNREF(depthFailOp);
-       DE_UNREF(compareOp);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(surface);
+       DE_UNREF(pSurfaceCapabilities);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetRasterizerDiscardEnable (VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable)
+VKAPI_ATTR VkResult VKAPI_CALL enumeratePhysicalDeviceGroups (VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(rasterizerDiscardEnable);
+       DE_UNREF(instance);
+       DE_UNREF(pPhysicalDeviceGroupCount);
+       DE_UNREF(pPhysicalDeviceGroupProperties);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetDepthBiasEnable (VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable)
+VKAPI_ATTR void VKAPI_CALL getDeviceGroupPeerMemoryFeatures (VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(depthBiasEnable);
+       DE_UNREF(device);
+       DE_UNREF(heapIndex);
+       DE_UNREF(localDeviceIndex);
+       DE_UNREF(remoteDeviceIndex);
+       DE_UNREF(pPeerMemoryFeatures);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetPrimitiveRestartEnable (VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable)
+VKAPI_ATTR VkResult VKAPI_CALL bindBufferMemory2 (VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(primitiveRestartEnable);
+       DE_UNREF(device);
+       DE_UNREF(bindInfoCount);
+       DE_UNREF(pBindInfos);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL getDeviceBufferMemoryRequirements (VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements)
+VKAPI_ATTR VkResult VKAPI_CALL bindImageMemory2 (VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos)
 {
        DE_UNREF(device);
-       DE_UNREF(pInfo);
-       DE_UNREF(pMemoryRequirements);
+       DE_UNREF(bindInfoCount);
+       DE_UNREF(pBindInfos);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL getDeviceImageMemoryRequirements (VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements)
+VKAPI_ATTR void VKAPI_CALL cmdSetDeviceMask (VkCommandBuffer commandBuffer, uint32_t deviceMask)
 {
-       DE_UNREF(device);
-       DE_UNREF(pInfo);
-       DE_UNREF(pMemoryRequirements);
+       DE_UNREF(commandBuffer);
+       DE_UNREF(deviceMask);
 }
 
-VKAPI_ATTR void VKAPI_CALL getDeviceImageSparseMemoryRequirements (VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
+VKAPI_ATTR VkResult VKAPI_CALL getDeviceGroupPresentCapabilitiesKHR (VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities)
 {
        DE_UNREF(device);
-       DE_UNREF(pInfo);
-       DE_UNREF(pSparseMemoryRequirementCount);
-       DE_UNREF(pSparseMemoryRequirements);
+       DE_UNREF(pDeviceGroupPresentCapabilities);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSurfaceSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported)
+VKAPI_ATTR VkResult VKAPI_CALL getDeviceGroupSurfacePresentModesKHR (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(queueFamilyIndex);
+       DE_UNREF(device);
        DE_UNREF(surface);
-       DE_UNREF(pSupported);
+       DE_UNREF(pModes);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSurfaceCapabilitiesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities)
+VKAPI_ATTR VkResult VKAPI_CALL acquireNextImage2KHR (VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(surface);
-       DE_UNREF(pSurfaceCapabilities);
+       DE_UNREF(device);
+       DE_UNREF(pAcquireInfo);
+       DE_UNREF(pImageIndex);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSurfaceFormatsKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats)
+VKAPI_ATTR void VKAPI_CALL cmdDispatchBase (VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(surface);
-       DE_UNREF(pSurfaceFormatCount);
-       DE_UNREF(pSurfaceFormats);
-       return VK_SUCCESS;
+       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 getPhysicalDeviceSurfacePresentModesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes)
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDevicePresentRectanglesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects)
 {
        DE_UNREF(physicalDevice);
        DE_UNREF(surface);
-       DE_UNREF(pPresentModeCount);
-       DE_UNREF(pPresentModes);
+       DE_UNREF(pRectCount);
+       DE_UNREF(pRects);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getSwapchainImagesKHR (VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages)
+VKAPI_ATTR void VKAPI_CALL updateDescriptorSetWithTemplate (VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData)
 {
        DE_UNREF(device);
-       DE_UNREF(swapchain);
-       DE_UNREF(pSwapchainImageCount);
-       DE_UNREF(pSwapchainImages);
-       return VK_SUCCESS;
+       DE_UNREF(descriptorSet);
+       DE_UNREF(descriptorUpdateTemplate);
+       DE_UNREF(pData);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL acquireNextImageKHR (VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex)
+VKAPI_ATTR void VKAPI_CALL cmdPushDescriptorSetWithTemplateKHR (VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(descriptorUpdateTemplate);
+       DE_UNREF(layout);
+       DE_UNREF(set);
+       DE_UNREF(pData);
+}
+
+VKAPI_ATTR void VKAPI_CALL setHdrMetadataEXT (VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata)
 {
        DE_UNREF(device);
-       DE_UNREF(swapchain);
-       DE_UNREF(timeout);
-       DE_UNREF(semaphore);
-       DE_UNREF(fence);
-       DE_UNREF(pImageIndex);
-       return VK_SUCCESS;
+       DE_UNREF(swapchainCount);
+       DE_UNREF(pSwapchains);
+       DE_UNREF(pMetadata);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL queuePresentKHR (VkQueue queue, const VkPresentInfoKHR* pPresentInfo)
+VKAPI_ATTR VkResult VKAPI_CALL getSwapchainStatusKHR (VkDevice device, VkSwapchainKHR swapchain)
 {
-       DE_UNREF(queue);
-       DE_UNREF(pPresentInfo);
+       DE_UNREF(device);
+       DE_UNREF(swapchain);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getDeviceGroupPresentCapabilitiesKHR (VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities)
+VKAPI_ATTR VkResult VKAPI_CALL getRefreshCycleDurationGOOGLE (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties)
 {
        DE_UNREF(device);
-       DE_UNREF(pDeviceGroupPresentCapabilities);
+       DE_UNREF(swapchain);
+       DE_UNREF(pDisplayTimingProperties);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getDeviceGroupSurfacePresentModesKHR (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes)
+VKAPI_ATTR VkResult VKAPI_CALL getPastPresentationTimingGOOGLE (VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings)
 {
        DE_UNREF(device);
-       DE_UNREF(surface);
-       DE_UNREF(pModes);
+       DE_UNREF(swapchain);
+       DE_UNREF(pPresentationTimingCount);
+       DE_UNREF(pPresentationTimings);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDevicePresentRectanglesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects)
+VKAPI_ATTR void VKAPI_CALL cmdSetViewportWScalingNV (VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(firstViewport);
+       DE_UNREF(viewportCount);
+       DE_UNREF(pViewportWScalings);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdSetDiscardRectangleEXT (VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(firstDiscardRectangle);
+       DE_UNREF(discardRectangleCount);
+       DE_UNREF(pDiscardRectangles);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdSetSampleLocationsEXT (VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pSampleLocationsInfo);
+}
+
+VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceMultisamplePropertiesEXT (VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties)
 {
        DE_UNREF(physicalDevice);
-       DE_UNREF(surface);
-       DE_UNREF(pRectCount);
-       DE_UNREF(pRects);
-       return VK_SUCCESS;
+       DE_UNREF(samples);
+       DE_UNREF(pMultisampleProperties);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL acquireNextImage2KHR (VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex)
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSurfaceCapabilities2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities)
 {
-       DE_UNREF(device);
-       DE_UNREF(pAcquireInfo);
-       DE_UNREF(pImageIndex);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pSurfaceInfo);
+       DE_UNREF(pSurfaceCapabilities);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceDisplayPropertiesKHR (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties)
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSurfaceFormats2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats)
 {
        DE_UNREF(physicalDevice);
-       DE_UNREF(pPropertyCount);
-       DE_UNREF(pProperties);
+       DE_UNREF(pSurfaceInfo);
+       DE_UNREF(pSurfaceFormatCount);
+       DE_UNREF(pSurfaceFormats);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceDisplayPlanePropertiesKHR (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties)
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceDisplayProperties2KHR (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties)
 {
        DE_UNREF(physicalDevice);
        DE_UNREF(pPropertyCount);
@@ -1763,16 +1933,15 @@ VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceDisplayPlanePropertiesKHR (VkPhy
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getDisplayPlaneSupportedDisplaysKHR (VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays)
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceDisplayPlaneProperties2KHR (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties)
 {
        DE_UNREF(physicalDevice);
-       DE_UNREF(planeIndex);
-       DE_UNREF(pDisplayCount);
-       DE_UNREF(pDisplays);
+       DE_UNREF(pPropertyCount);
+       DE_UNREF(pProperties);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getDisplayModePropertiesKHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties)
+VKAPI_ATTR VkResult VKAPI_CALL getDisplayModeProperties2KHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties)
 {
        DE_UNREF(physicalDevice);
        DE_UNREF(display);
@@ -1781,306 +1950,288 @@ VKAPI_ATTR VkResult VKAPI_CALL getDisplayModePropertiesKHR (VkPhysicalDevice phy
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getDisplayPlaneCapabilitiesKHR (VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities)
+VKAPI_ATTR VkResult VKAPI_CALL getDisplayPlaneCapabilities2KHR (VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities)
 {
        DE_UNREF(physicalDevice);
-       DE_UNREF(mode);
-       DE_UNREF(planeIndex);
+       DE_UNREF(pDisplayPlaneInfo);
        DE_UNREF(pCapabilities);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getMemoryFdKHR (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd)
+VKAPI_ATTR void VKAPI_CALL getBufferMemoryRequirements2 (VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements)
 {
        DE_UNREF(device);
-       DE_UNREF(pGetFdInfo);
-       DE_UNREF(pFd);
-       return VK_SUCCESS;
+       DE_UNREF(pInfo);
+       DE_UNREF(pMemoryRequirements);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getMemoryFdPropertiesKHR (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties)
+VKAPI_ATTR void VKAPI_CALL getImageMemoryRequirements2 (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements)
 {
        DE_UNREF(device);
-       DE_UNREF(handleType);
-       DE_UNREF(fd);
-       DE_UNREF(pMemoryFdProperties);
-       return VK_SUCCESS;
+       DE_UNREF(pInfo);
+       DE_UNREF(pMemoryRequirements);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL importSemaphoreFdKHR (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo)
+VKAPI_ATTR void VKAPI_CALL getImageSparseMemoryRequirements2 (VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
 {
        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;
+       DE_UNREF(pInfo);
+       DE_UNREF(pSparseMemoryRequirementCount);
+       DE_UNREF(pSparseMemoryRequirements);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdPushDescriptorSetKHR (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites)
+VKAPI_ATTR void VKAPI_CALL getDeviceBufferMemoryRequirements (VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(pipelineBindPoint);
-       DE_UNREF(layout);
-       DE_UNREF(set);
-       DE_UNREF(descriptorWriteCount);
-       DE_UNREF(pDescriptorWrites);
+       DE_UNREF(device);
+       DE_UNREF(pInfo);
+       DE_UNREF(pMemoryRequirements);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdPushDescriptorSetWithTemplateKHR (VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData)
+VKAPI_ATTR void VKAPI_CALL getDeviceImageMemoryRequirements (VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(descriptorUpdateTemplate);
-       DE_UNREF(layout);
-       DE_UNREF(set);
-       DE_UNREF(pData);
+       DE_UNREF(device);
+       DE_UNREF(pInfo);
+       DE_UNREF(pMemoryRequirements);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getSwapchainStatusKHR (VkDevice device, VkSwapchainKHR swapchain)
+VKAPI_ATTR void VKAPI_CALL getDeviceImageSparseMemoryRequirements (VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
 {
        DE_UNREF(device);
-       DE_UNREF(swapchain);
-       return VK_SUCCESS;
+       DE_UNREF(pInfo);
+       DE_UNREF(pSparseMemoryRequirementCount);
+       DE_UNREF(pSparseMemoryRequirements);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL importFenceFdKHR (VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo)
+VKAPI_ATTR void VKAPI_CALL getDeviceQueue2 (VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue)
 {
        DE_UNREF(device);
-       DE_UNREF(pImportFenceFdInfo);
-       return VK_SUCCESS;
+       DE_UNREF(pQueueInfo);
+       DE_UNREF(pQueue);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getFenceFdKHR (VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd)
+VKAPI_ATTR VkResult VKAPI_CALL getValidationCacheDataEXT (VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData)
 {
        DE_UNREF(device);
-       DE_UNREF(pGetFdInfo);
-       DE_UNREF(pFd);
+       DE_UNREF(validationCache);
+       DE_UNREF(pDataSize);
+       DE_UNREF(pData);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions)
+VKAPI_ATTR VkResult VKAPI_CALL mergeValidationCachesEXT (VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(queueFamilyIndex);
-       DE_UNREF(pCounterCount);
-       DE_UNREF(pCounters);
-       DE_UNREF(pCounterDescriptions);
+       DE_UNREF(device);
+       DE_UNREF(dstCache);
+       DE_UNREF(srcCacheCount);
+       DE_UNREF(pSrcCaches);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR (VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses)
+VKAPI_ATTR void VKAPI_CALL getDescriptorSetLayoutSupport (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(pPerformanceQueryCreateInfo);
-       DE_UNREF(pNumPasses);
+       DE_UNREF(device);
+       DE_UNREF(pCreateInfo);
+       DE_UNREF(pSupport);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL acquireProfilingLockKHR (VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo)
+VKAPI_ATTR VkResult VKAPI_CALL getShaderInfoAMD (VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo)
 {
        DE_UNREF(device);
+       DE_UNREF(pipeline);
+       DE_UNREF(shaderStage);
+       DE_UNREF(infoType);
+       DE_UNREF(pInfoSize);
        DE_UNREF(pInfo);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL releaseProfilingLockKHR (VkDevice device)
+VKAPI_ATTR void VKAPI_CALL setLocalDimmingAMD (VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable)
 {
        DE_UNREF(device);
+       DE_UNREF(swapChain);
+       DE_UNREF(localDimmingEnable);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSurfaceCapabilities2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities)
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceCalibrateableTimeDomainsEXT (VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains)
 {
        DE_UNREF(physicalDevice);
-       DE_UNREF(pSurfaceInfo);
-       DE_UNREF(pSurfaceCapabilities);
+       DE_UNREF(pTimeDomainCount);
+       DE_UNREF(pTimeDomains);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSurfaceFormats2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats)
+VKAPI_ATTR VkResult VKAPI_CALL getCalibratedTimestampsEXT (VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(pSurfaceInfo);
-       DE_UNREF(pSurfaceFormatCount);
-       DE_UNREF(pSurfaceFormats);
+       DE_UNREF(device);
+       DE_UNREF(timestampCount);
+       DE_UNREF(pTimestampInfos);
+       DE_UNREF(pTimestamps);
+       DE_UNREF(pMaxDeviation);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceDisplayProperties2KHR (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties)
+VKAPI_ATTR VkResult VKAPI_CALL setDebugUtilsObjectNameEXT (VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(pPropertyCount);
-       DE_UNREF(pProperties);
+       DE_UNREF(device);
+       DE_UNREF(pNameInfo);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceDisplayPlaneProperties2KHR (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties)
+VKAPI_ATTR VkResult VKAPI_CALL setDebugUtilsObjectTagEXT (VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(pPropertyCount);
-       DE_UNREF(pProperties);
+       DE_UNREF(device);
+       DE_UNREF(pTagInfo);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getDisplayModeProperties2KHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties)
+VKAPI_ATTR void VKAPI_CALL queueBeginDebugUtilsLabelEXT (VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(display);
-       DE_UNREF(pPropertyCount);
-       DE_UNREF(pProperties);
-       return VK_SUCCESS;
+       DE_UNREF(queue);
+       DE_UNREF(pLabelInfo);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getDisplayPlaneCapabilities2KHR (VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities)
+VKAPI_ATTR void VKAPI_CALL queueEndDebugUtilsLabelEXT (VkQueue queue)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(pDisplayPlaneInfo);
-       DE_UNREF(pCapabilities);
-       return VK_SUCCESS;
+       DE_UNREF(queue);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceFragmentShadingRatesKHR (VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates)
+VKAPI_ATTR void VKAPI_CALL queueInsertDebugUtilsLabelEXT (VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(pFragmentShadingRateCount);
-       DE_UNREF(pFragmentShadingRates);
-       return VK_SUCCESS;
+       DE_UNREF(queue);
+       DE_UNREF(pLabelInfo);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetFragmentShadingRateKHR (VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2])
+VKAPI_ATTR void VKAPI_CALL cmdBeginDebugUtilsLabelEXT (VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(pFragmentSize);
-       DE_UNREF(combinerOps);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL waitForPresentKHR (VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout)
-{
-       DE_UNREF(device);
-       DE_UNREF(swapchain);
-       DE_UNREF(presentId);
-       DE_UNREF(timeout);
-       return VK_SUCCESS;
-}
-
-VKAPI_ATTR uint32_t VKAPI_CALL getDeferredOperationMaxConcurrencyKHR (VkDevice device, VkDeferredOperationKHR operation)
-{
-       DE_UNREF(device);
-       DE_UNREF(operation);
-       return VK_SUCCESS;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL getDeferredOperationResultKHR (VkDevice device, VkDeferredOperationKHR operation)
-{
-       DE_UNREF(device);
-       DE_UNREF(operation);
-       return VK_SUCCESS;
+       DE_UNREF(pLabelInfo);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL deferredOperationJoinKHR (VkDevice device, VkDeferredOperationKHR operation)
+VKAPI_ATTR void VKAPI_CALL cmdEndDebugUtilsLabelEXT (VkCommandBuffer commandBuffer)
 {
-       DE_UNREF(device);
-       DE_UNREF(operation);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPipelineExecutablePropertiesKHR (VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties)
+VKAPI_ATTR void VKAPI_CALL cmdInsertDebugUtilsLabelEXT (VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo)
 {
-       DE_UNREF(device);
-       DE_UNREF(pPipelineInfo);
-       DE_UNREF(pExecutableCount);
-       DE_UNREF(pProperties);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pLabelInfo);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPipelineExecutableStatisticsKHR (VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics)
+VKAPI_ATTR void VKAPI_CALL submitDebugUtilsMessageEXT (VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData)
 {
-       DE_UNREF(device);
-       DE_UNREF(pExecutableInfo);
-       DE_UNREF(pStatisticCount);
-       DE_UNREF(pStatistics);
-       return VK_SUCCESS;
+       DE_UNREF(instance);
+       DE_UNREF(messageSeverity);
+       DE_UNREF(messageTypes);
+       DE_UNREF(pCallbackData);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPipelineExecutableInternalRepresentationsKHR (VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations)
+VKAPI_ATTR VkResult VKAPI_CALL getMemoryHostPointerPropertiesEXT (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties)
 {
        DE_UNREF(device);
-       DE_UNREF(pExecutableInfo);
-       DE_UNREF(pInternalRepresentationCount);
-       DE_UNREF(pInternalRepresentations);
+       DE_UNREF(handleType);
+       DE_UNREF(pHostPointer);
+       DE_UNREF(pMemoryHostPointerProperties);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdWriteBufferMarker2AMD (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker)
+VKAPI_ATTR void VKAPI_CALL cmdWriteBufferMarkerAMD (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(stage);
+       DE_UNREF(pipelineStage);
        DE_UNREF(dstBuffer);
        DE_UNREF(dstOffset);
        DE_UNREF(marker);
 }
 
-VKAPI_ATTR void VKAPI_CALL getQueueCheckpointData2NV (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData)
+VKAPI_ATTR void VKAPI_CALL cmdBeginRenderPass2 (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo)
 {
-       DE_UNREF(queue);
-       DE_UNREF(pCheckpointDataCount);
-       DE_UNREF(pCheckpointData);
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pRenderPassBegin);
+       DE_UNREF(pSubpassBeginInfo);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdTraceRaysIndirect2KHR (VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress)
+VKAPI_ATTR void VKAPI_CALL cmdNextSubpass2 (VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(indirectDeviceAddress);
+       DE_UNREF(pSubpassBeginInfo);
+       DE_UNREF(pSubpassEndInfo);
 }
 
-VKAPI_ATTR void VKAPI_CALL debugReportMessageEXT (VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage)
+VKAPI_ATTR void VKAPI_CALL cmdEndRenderPass2 (VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo)
 {
-       DE_UNREF(instance);
-       DE_UNREF(flags);
-       DE_UNREF(objectType);
-       DE_UNREF(object);
-       DE_UNREF(location);
-       DE_UNREF(messageCode);
-       DE_UNREF(pLayerPrefix);
-       DE_UNREF(pMessage);
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pSubpassEndInfo);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL debugMarkerSetObjectTagEXT (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo)
+VKAPI_ATTR VkResult VKAPI_CALL getSemaphoreCounterValue (VkDevice device, VkSemaphore semaphore, uint64_t* pValue)
 {
        DE_UNREF(device);
-       DE_UNREF(pTagInfo);
+       DE_UNREF(semaphore);
+       DE_UNREF(pValue);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL debugMarkerSetObjectNameEXT (VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo)
+VKAPI_ATTR VkResult VKAPI_CALL waitSemaphores (VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout)
 {
        DE_UNREF(device);
-       DE_UNREF(pNameInfo);
+       DE_UNREF(pWaitInfo);
+       DE_UNREF(timeout);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdDebugMarkerBeginEXT (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
+VKAPI_ATTR VkResult VKAPI_CALL signalSemaphore (VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(pMarkerInfo);
+       DE_UNREF(device);
+       DE_UNREF(pSignalInfo);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdDebugMarkerEndEXT (VkCommandBuffer commandBuffer)
+VKAPI_ATTR VkResult VKAPI_CALL getAndroidHardwareBufferPropertiesANDROID (VkDevice device, const struct pt::AndroidHardwareBufferPtr buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties)
 {
-       DE_UNREF(commandBuffer);
+       DE_UNREF(device);
+       DE_UNREF(buffer);
+       DE_UNREF(pProperties);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdDebugMarkerInsertEXT (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
+VKAPI_ATTR void VKAPI_CALL cmdDrawIndirectCount (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(pMarkerInfo);
-}
-
-VKAPI_ATTR void VKAPI_CALL cmdBindTransformFeedbackBuffersEXT (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes)
-{
+       DE_UNREF(buffer);
+       DE_UNREF(offset);
+       DE_UNREF(countBuffer);
+       DE_UNREF(countBufferOffset);
+       DE_UNREF(maxDrawCount);
+       DE_UNREF(stride);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdDrawIndexedIndirectCount (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride)
+{
+       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 cmdSetCheckpointNV (VkCommandBuffer commandBuffer, const void* pCheckpointMarker)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pCheckpointMarker);
+}
+
+VKAPI_ATTR void VKAPI_CALL getQueueCheckpointDataNV (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData)
+{
+       DE_UNREF(queue);
+       DE_UNREF(pCheckpointDataCount);
+       DE_UNREF(pCheckpointData);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdBindTransformFeedbackBuffersEXT (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes)
+{
        DE_UNREF(commandBuffer);
        DE_UNREF(firstBinding);
        DE_UNREF(bindingCount);
@@ -2135,39 +2286,54 @@ VKAPI_ATTR void VKAPI_CALL cmdDrawIndirectByteCountEXT (VkCommandBuffer commandB
        DE_UNREF(vertexStride);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdCuLaunchKernelNVX (VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo)
+VKAPI_ATTR void VKAPI_CALL cmdSetExclusiveScissorNV (VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(pLaunchInfo);
+       DE_UNREF(firstExclusiveScissor);
+       DE_UNREF(exclusiveScissorCount);
+       DE_UNREF(pExclusiveScissors);
 }
 
-VKAPI_ATTR uint32_t VKAPI_CALL getImageViewHandleNVX (VkDevice device, const VkImageViewHandleInfoNVX* pInfo)
+VKAPI_ATTR void VKAPI_CALL cmdBindShadingRateImageNV (VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout)
 {
-       DE_UNREF(device);
-       DE_UNREF(pInfo);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(imageView);
+       DE_UNREF(imageLayout);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getImageViewAddressNVX (VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties)
+VKAPI_ATTR void VKAPI_CALL cmdSetViewportShadingRatePaletteNV (VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes)
 {
-       DE_UNREF(device);
-       DE_UNREF(imageView);
-       DE_UNREF(pProperties);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(firstViewport);
+       DE_UNREF(viewportCount);
+       DE_UNREF(pShadingRatePalettes);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdSetCoarseSampleOrderNV (VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(sampleOrderType);
+       DE_UNREF(customSampleOrderCount);
+       DE_UNREF(pCustomSampleOrders);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdDrawMeshTasksNV (VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(taskCount);
+       DE_UNREF(firstTask);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdDrawIndirectCountAMD (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride)
+VKAPI_ATTR void VKAPI_CALL cmdDrawMeshTasksIndirectNV (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride)
 {
        DE_UNREF(commandBuffer);
        DE_UNREF(buffer);
        DE_UNREF(offset);
-       DE_UNREF(countBuffer);
-       DE_UNREF(countBufferOffset);
-       DE_UNREF(maxDrawCount);
+       DE_UNREF(drawCount);
        DE_UNREF(stride);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdDrawIndexedIndirectCountAMD (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride)
+VKAPI_ATTR void VKAPI_CALL cmdDrawMeshTasksIndirectCountNV (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride)
 {
        DE_UNREF(commandBuffer);
        DE_UNREF(buffer);
@@ -2178,288 +2344,144 @@ VKAPI_ATTR void VKAPI_CALL cmdDrawIndexedIndirectCountAMD (VkCommandBuffer comma
        DE_UNREF(stride);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getShaderInfoAMD (VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo)
+VKAPI_ATTR VkResult VKAPI_CALL compileDeferredNV (VkDevice device, VkPipeline pipeline, uint32_t shader)
 {
        DE_UNREF(device);
        DE_UNREF(pipeline);
-       DE_UNREF(shaderStage);
-       DE_UNREF(infoType);
-       DE_UNREF(pInfoSize);
-       DE_UNREF(pInfo);
-       return VK_SUCCESS;
-}
-
-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);
+       DE_UNREF(shader);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdBeginConditionalRenderingEXT (VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin)
-{
-       DE_UNREF(commandBuffer);
-       DE_UNREF(pConditionalRenderingBegin);
-}
-
-VKAPI_ATTR void VKAPI_CALL cmdEndConditionalRenderingEXT (VkCommandBuffer commandBuffer)
+VKAPI_ATTR void VKAPI_CALL cmdBindInvocationMaskHUAWEI (VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout)
 {
        DE_UNREF(commandBuffer);
+       DE_UNREF(imageView);
+       DE_UNREF(imageLayout);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetViewportWScalingNV (VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings)
+VKAPI_ATTR void VKAPI_CALL getAccelerationStructureMemoryRequirementsNV (VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(firstViewport);
-       DE_UNREF(viewportCount);
-       DE_UNREF(pViewportWScalings);
+       DE_UNREF(device);
+       DE_UNREF(pInfo);
+       DE_UNREF(pMemoryRequirements);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL releaseDisplayEXT (VkPhysicalDevice physicalDevice, VkDisplayKHR display)
+VKAPI_ATTR VkResult VKAPI_CALL bindAccelerationStructureMemoryNV (VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(display);
+       DE_UNREF(device);
+       DE_UNREF(bindInfoCount);
+       DE_UNREF(pBindInfos);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSurfaceCapabilities2EXT (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities)
+VKAPI_ATTR void VKAPI_CALL cmdCopyAccelerationStructureNV (VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(surface);
-       DE_UNREF(pSurfaceCapabilities);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(dst);
+       DE_UNREF(src);
+       DE_UNREF(mode);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL displayPowerControlEXT (VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo)
+VKAPI_ATTR void VKAPI_CALL cmdCopyAccelerationStructureKHR (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo)
 {
-       DE_UNREF(device);
-       DE_UNREF(display);
-       DE_UNREF(pDisplayPowerInfo);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pInfo);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL registerDeviceEventEXT (VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence)
+VKAPI_ATTR VkResult VKAPI_CALL copyAccelerationStructureKHR (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo)
 {
        DE_UNREF(device);
-       DE_UNREF(pDeviceEventInfo);
-       DE_UNREF(pAllocator);
-       DE_UNREF(pFence);
+       DE_UNREF(deferredOperation);
+       DE_UNREF(pInfo);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL registerDisplayEventEXT (VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence)
+VKAPI_ATTR void VKAPI_CALL cmdCopyAccelerationStructureToMemoryKHR (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo)
 {
-       DE_UNREF(device);
-       DE_UNREF(display);
-       DE_UNREF(pDisplayEventInfo);
-       DE_UNREF(pAllocator);
-       DE_UNREF(pFence);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pInfo);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getSwapchainCounterEXT (VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue)
+VKAPI_ATTR VkResult VKAPI_CALL copyAccelerationStructureToMemoryKHR (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo)
 {
        DE_UNREF(device);
-       DE_UNREF(swapchain);
-       DE_UNREF(counter);
-       DE_UNREF(pCounterValue);
+       DE_UNREF(deferredOperation);
+       DE_UNREF(pInfo);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getRefreshCycleDurationGOOGLE (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties)
+VKAPI_ATTR void VKAPI_CALL cmdCopyMemoryToAccelerationStructureKHR (VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo)
 {
-       DE_UNREF(device);
-       DE_UNREF(swapchain);
-       DE_UNREF(pDisplayTimingProperties);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pInfo);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPastPresentationTimingGOOGLE (VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings)
+VKAPI_ATTR VkResult VKAPI_CALL copyMemoryToAccelerationStructureKHR (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo)
 {
        DE_UNREF(device);
-       DE_UNREF(swapchain);
-       DE_UNREF(pPresentationTimingCount);
-       DE_UNREF(pPresentationTimings);
+       DE_UNREF(deferredOperation);
+       DE_UNREF(pInfo);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetDiscardRectangleEXT (VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles)
+VKAPI_ATTR void VKAPI_CALL cmdWriteAccelerationStructuresPropertiesKHR (VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(firstDiscardRectangle);
-       DE_UNREF(discardRectangleCount);
-       DE_UNREF(pDiscardRectangles);
+       DE_UNREF(accelerationStructureCount);
+       DE_UNREF(pAccelerationStructures);
+       DE_UNREF(queryType);
+       DE_UNREF(queryPool);
+       DE_UNREF(firstQuery);
 }
 
-VKAPI_ATTR void VKAPI_CALL setHdrMetadataEXT (VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata)
+VKAPI_ATTR void VKAPI_CALL cmdWriteAccelerationStructuresPropertiesNV (VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery)
 {
-       DE_UNREF(device);
-       DE_UNREF(swapchainCount);
-       DE_UNREF(pSwapchains);
-       DE_UNREF(pMetadata);
+       DE_UNREF(commandBuffer);
+       DE_UNREF(accelerationStructureCount);
+       DE_UNREF(pAccelerationStructures);
+       DE_UNREF(queryType);
+       DE_UNREF(queryPool);
+       DE_UNREF(firstQuery);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL setDebugUtilsObjectNameEXT (VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo)
+VKAPI_ATTR void VKAPI_CALL cmdBuildAccelerationStructureNV (VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset)
 {
-       DE_UNREF(device);
-       DE_UNREF(pNameInfo);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pInfo);
+       DE_UNREF(instanceData);
+       DE_UNREF(instanceOffset);
+       DE_UNREF(update);
+       DE_UNREF(dst);
+       DE_UNREF(src);
+       DE_UNREF(scratch);
+       DE_UNREF(scratchOffset);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL setDebugUtilsObjectTagEXT (VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo)
+VKAPI_ATTR VkResult VKAPI_CALL writeAccelerationStructuresPropertiesKHR (VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride)
 {
        DE_UNREF(device);
-       DE_UNREF(pTagInfo);
+       DE_UNREF(accelerationStructureCount);
+       DE_UNREF(pAccelerationStructures);
+       DE_UNREF(queryType);
+       DE_UNREF(dataSize);
+       DE_UNREF(pData);
+       DE_UNREF(stride);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL queueBeginDebugUtilsLabelEXT (VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo)
-{
-       DE_UNREF(queue);
-       DE_UNREF(pLabelInfo);
-}
-
-VKAPI_ATTR void VKAPI_CALL queueEndDebugUtilsLabelEXT (VkQueue queue)
-{
-       DE_UNREF(queue);
-}
-
-VKAPI_ATTR void VKAPI_CALL queueInsertDebugUtilsLabelEXT (VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo)
-{
-       DE_UNREF(queue);
-       DE_UNREF(pLabelInfo);
-}
-
-VKAPI_ATTR void VKAPI_CALL cmdBeginDebugUtilsLabelEXT (VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo)
+VKAPI_ATTR void VKAPI_CALL cmdTraceRaysKHR (VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(pLabelInfo);
+       DE_UNREF(pRaygenShaderBindingTable);
+       DE_UNREF(pMissShaderBindingTable);
+       DE_UNREF(pHitShaderBindingTable);
+       DE_UNREF(pCallableShaderBindingTable);
+       DE_UNREF(width);
+       DE_UNREF(height);
+       DE_UNREF(depth);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdEndDebugUtilsLabelEXT (VkCommandBuffer commandBuffer)
-{
-       DE_UNREF(commandBuffer);
-}
-
-VKAPI_ATTR void VKAPI_CALL cmdInsertDebugUtilsLabelEXT (VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo)
-{
-       DE_UNREF(commandBuffer);
-       DE_UNREF(pLabelInfo);
-}
-
-VKAPI_ATTR void VKAPI_CALL submitDebugUtilsMessageEXT (VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData)
-{
-       DE_UNREF(instance);
-       DE_UNREF(messageSeverity);
-       DE_UNREF(messageTypes);
-       DE_UNREF(pCallbackData);
-}
-
-VKAPI_ATTR void VKAPI_CALL cmdSetSampleLocationsEXT (VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo)
-{
-       DE_UNREF(commandBuffer);
-       DE_UNREF(pSampleLocationsInfo);
-}
-
-VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceMultisamplePropertiesEXT (VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties)
-{
-       DE_UNREF(physicalDevice);
-       DE_UNREF(samples);
-       DE_UNREF(pMultisampleProperties);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL getImageDrmFormatModifierPropertiesEXT (VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties)
-{
-       DE_UNREF(device);
-       DE_UNREF(image);
-       DE_UNREF(pProperties);
-       return VK_SUCCESS;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL mergeValidationCachesEXT (VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches)
-{
-       DE_UNREF(device);
-       DE_UNREF(dstCache);
-       DE_UNREF(srcCacheCount);
-       DE_UNREF(pSrcCaches);
-       return VK_SUCCESS;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL getValidationCacheDataEXT (VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData)
-{
-       DE_UNREF(device);
-       DE_UNREF(validationCache);
-       DE_UNREF(pDataSize);
-       DE_UNREF(pData);
-       return VK_SUCCESS;
-}
-
-VKAPI_ATTR void VKAPI_CALL cmdBindShadingRateImageNV (VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout)
-{
-       DE_UNREF(commandBuffer);
-       DE_UNREF(imageView);
-       DE_UNREF(imageLayout);
-}
-
-VKAPI_ATTR void VKAPI_CALL cmdSetViewportShadingRatePaletteNV (VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes)
-{
-       DE_UNREF(commandBuffer);
-       DE_UNREF(firstViewport);
-       DE_UNREF(viewportCount);
-       DE_UNREF(pShadingRatePalettes);
-}
-
-VKAPI_ATTR void VKAPI_CALL cmdSetCoarseSampleOrderNV (VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders)
-{
-       DE_UNREF(commandBuffer);
-       DE_UNREF(sampleOrderType);
-       DE_UNREF(customSampleOrderCount);
-       DE_UNREF(pCustomSampleOrders);
-}
-
-VKAPI_ATTR void VKAPI_CALL getAccelerationStructureMemoryRequirementsNV (VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements)
-{
-       DE_UNREF(device);
-       DE_UNREF(pInfo);
-       DE_UNREF(pMemoryRequirements);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL bindAccelerationStructureMemoryNV (VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos)
-{
-       DE_UNREF(device);
-       DE_UNREF(bindInfoCount);
-       DE_UNREF(pBindInfos);
-       return VK_SUCCESS;
-}
-
-VKAPI_ATTR void VKAPI_CALL cmdBuildAccelerationStructureNV (VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset)
-{
-       DE_UNREF(commandBuffer);
-       DE_UNREF(pInfo);
-       DE_UNREF(instanceData);
-       DE_UNREF(instanceOffset);
-       DE_UNREF(update);
-       DE_UNREF(dst);
-       DE_UNREF(src);
-       DE_UNREF(scratch);
-       DE_UNREF(scratchOffset);
-}
-
-VKAPI_ATTR void VKAPI_CALL cmdCopyAccelerationStructureNV (VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode)
-{
-       DE_UNREF(commandBuffer);
-       DE_UNREF(dst);
-       DE_UNREF(src);
-       DE_UNREF(mode);
-}
-
-VKAPI_ATTR void VKAPI_CALL cmdTraceRaysNV (VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth)
+VKAPI_ATTR void VKAPI_CALL cmdTraceRaysNV (VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth)
 {
        DE_UNREF(commandBuffer);
        DE_UNREF(raygenShaderBindingTableBuffer);
@@ -2489,7 +2511,7 @@ VKAPI_ATTR VkResult VKAPI_CALL getRayTracingShaderGroupHandlesKHR (VkDevice devi
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getRayTracingShaderGroupHandlesNV (VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData)
+VKAPI_ATTR VkResult VKAPI_CALL getRayTracingCaptureReplayShaderGroupHandlesKHR (VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData)
 {
        DE_UNREF(device);
        DE_UNREF(pipeline);
@@ -2509,128 +2531,177 @@ VKAPI_ATTR VkResult VKAPI_CALL getAccelerationStructureHandleNV (VkDevice device
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdWriteAccelerationStructuresPropertiesNV (VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery)
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceCooperativeMatrixPropertiesNV (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties)
+{
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pPropertyCount);
+       DE_UNREF(pProperties);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdTraceRaysIndirectKHR (VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(accelerationStructureCount);
-       DE_UNREF(pAccelerationStructures);
-       DE_UNREF(queryType);
-       DE_UNREF(queryPool);
-       DE_UNREF(firstQuery);
+       DE_UNREF(pRaygenShaderBindingTable);
+       DE_UNREF(pMissShaderBindingTable);
+       DE_UNREF(pHitShaderBindingTable);
+       DE_UNREF(pCallableShaderBindingTable);
+       DE_UNREF(indirectDeviceAddress);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL compileDeferredNV (VkDevice device, VkPipeline pipeline, uint32_t shader)
+VKAPI_ATTR void VKAPI_CALL cmdTraceRaysIndirect2KHR (VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(indirectDeviceAddress);
+}
+
+VKAPI_ATTR void VKAPI_CALL getDeviceAccelerationStructureCompatibilityKHR (VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility)
 {
        DE_UNREF(device);
-       DE_UNREF(pipeline);
-       DE_UNREF(shader);
-       return VK_SUCCESS;
+       DE_UNREF(pVersionInfo);
+       DE_UNREF(pCompatibility);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getMemoryHostPointerPropertiesEXT (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties)
+VKAPI_ATTR VkDeviceSize VKAPI_CALL getRayTracingShaderGroupStackSizeKHR (VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader)
 {
        DE_UNREF(device);
-       DE_UNREF(handleType);
-       DE_UNREF(pHostPointer);
-       DE_UNREF(pMemoryHostPointerProperties);
+       DE_UNREF(pipeline);
+       DE_UNREF(group);
+       DE_UNREF(groupShader);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdWriteBufferMarkerAMD (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker)
+VKAPI_ATTR void VKAPI_CALL cmdSetRayTracingPipelineStackSizeKHR (VkCommandBuffer commandBuffer, uint32_t pipelineStackSize)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(pipelineStage);
-       DE_UNREF(dstBuffer);
-       DE_UNREF(dstOffset);
-       DE_UNREF(marker);
+       DE_UNREF(pipelineStackSize);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceCalibrateableTimeDomainsEXT (VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains)
+VKAPI_ATTR uint32_t VKAPI_CALL getImageViewHandleNVX (VkDevice device, const VkImageViewHandleInfoNVX* pInfo)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(pTimeDomainCount);
-       DE_UNREF(pTimeDomains);
+       DE_UNREF(device);
+       DE_UNREF(pInfo);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getCalibratedTimestampsEXT (VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation)
+VKAPI_ATTR VkResult VKAPI_CALL getImageViewAddressNVX (VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties)
 {
        DE_UNREF(device);
-       DE_UNREF(timestampCount);
-       DE_UNREF(pTimestampInfos);
-       DE_UNREF(pTimestamps);
-       DE_UNREF(pMaxDeviation);
+       DE_UNREF(imageView);
+       DE_UNREF(pProperties);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdDrawMeshTasksNV (VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask)
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSurfacePresentModes2EXT (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(taskCount);
-       DE_UNREF(firstTask);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pSurfaceInfo);
+       DE_UNREF(pPresentModeCount);
+       DE_UNREF(pPresentModes);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdDrawMeshTasksIndirectNV (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride)
+VKAPI_ATTR VkResult VKAPI_CALL getDeviceGroupSurfacePresentModes2EXT (VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(buffer);
-       DE_UNREF(offset);
-       DE_UNREF(drawCount);
-       DE_UNREF(stride);
+       DE_UNREF(device);
+       DE_UNREF(pSurfaceInfo);
+       DE_UNREF(pModes);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdDrawMeshTasksIndirectCountNV (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride)
+VKAPI_ATTR VkResult VKAPI_CALL acquireFullScreenExclusiveModeEXT (VkDevice device, VkSwapchainKHR swapchain)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(buffer);
-       DE_UNREF(offset);
-       DE_UNREF(countBuffer);
-       DE_UNREF(countBufferOffset);
-       DE_UNREF(maxDrawCount);
-       DE_UNREF(stride);
+       DE_UNREF(device);
+       DE_UNREF(swapchain);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetExclusiveScissorNV (VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors)
+VKAPI_ATTR VkResult VKAPI_CALL releaseFullScreenExclusiveModeEXT (VkDevice device, VkSwapchainKHR swapchain)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(firstExclusiveScissor);
-       DE_UNREF(exclusiveScissorCount);
-       DE_UNREF(pExclusiveScissors);
+       DE_UNREF(device);
+       DE_UNREF(swapchain);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetCheckpointNV (VkCommandBuffer commandBuffer, const void* pCheckpointMarker)
+VKAPI_ATTR VkResult VKAPI_CALL enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(pCheckpointMarker);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(queueFamilyIndex);
+       DE_UNREF(pCounterCount);
+       DE_UNREF(pCounters);
+       DE_UNREF(pCounterDescriptions);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL getQueueCheckpointDataNV (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData)
+VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR (VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses)
 {
-       DE_UNREF(queue);
-       DE_UNREF(pCheckpointDataCount);
-       DE_UNREF(pCheckpointData);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pPerformanceQueryCreateInfo);
+       DE_UNREF(pNumPasses);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL initializePerformanceApiINTEL (VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo)
+VKAPI_ATTR VkResult VKAPI_CALL acquireProfilingLockKHR (VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo)
 {
        DE_UNREF(device);
-       DE_UNREF(pInitializeInfo);
+       DE_UNREF(pInfo);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL uninitializePerformanceApiINTEL (VkDevice device)
+VKAPI_ATTR void VKAPI_CALL releaseProfilingLockKHR (VkDevice device)
 {
        DE_UNREF(device);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL cmdSetPerformanceMarkerINTEL (VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo)
+VKAPI_ATTR VkResult VKAPI_CALL getImageDrmFormatModifierPropertiesEXT (VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(pMarkerInfo);
+       DE_UNREF(device);
+       DE_UNREF(image);
+       DE_UNREF(pProperties);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL cmdSetPerformanceStreamMarkerINTEL (VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo)
+VKAPI_ATTR uint64_t VKAPI_CALL getBufferOpaqueCaptureAddress (VkDevice device, const VkBufferDeviceAddressInfo* pInfo)
+{
+       DE_UNREF(device);
+       DE_UNREF(pInfo);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkDeviceAddress VKAPI_CALL getBufferDeviceAddress (VkDevice device, const VkBufferDeviceAddressInfo* pInfo)
+{
+       DE_UNREF(device);
+       DE_UNREF(pInfo);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV (VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations)
+{
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pCombinationCount);
+       DE_UNREF(pCombinations);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL initializePerformanceApiINTEL (VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo)
+{
+       DE_UNREF(device);
+       DE_UNREF(pInitializeInfo);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR void VKAPI_CALL uninitializePerformanceApiINTEL (VkDevice device)
+{
+       DE_UNREF(device);
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL cmdSetPerformanceMarkerINTEL (VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo)
+{
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pMarkerInfo);
+       return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL cmdSetPerformanceStreamMarkerINTEL (VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo)
 {
        DE_UNREF(commandBuffer);
        DE_UNREF(pMarkerInfo);
@@ -2674,33 +2745,37 @@ VKAPI_ATTR VkResult VKAPI_CALL getPerformanceParameterINTEL (VkDevice device, Vk
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL setLocalDimmingAMD (VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable)
+VKAPI_ATTR uint64_t VKAPI_CALL getDeviceMemoryOpaqueCaptureAddress (VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo)
 {
        DE_UNREF(device);
-       DE_UNREF(swapChain);
-       DE_UNREF(localDimmingEnable);
+       DE_UNREF(pInfo);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkDeviceAddress VKAPI_CALL getBufferDeviceAddressEXT (VkDevice device, const VkBufferDeviceAddressInfo* pInfo)
+VKAPI_ATTR VkResult VKAPI_CALL getPipelineExecutablePropertiesKHR (VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties)
 {
        DE_UNREF(device);
-       DE_UNREF(pInfo);
+       DE_UNREF(pPipelineInfo);
+       DE_UNREF(pExecutableCount);
+       DE_UNREF(pProperties);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceCooperativeMatrixPropertiesNV (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties)
+VKAPI_ATTR VkResult VKAPI_CALL getPipelineExecutableStatisticsKHR (VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(pPropertyCount);
-       DE_UNREF(pProperties);
+       DE_UNREF(device);
+       DE_UNREF(pExecutableInfo);
+       DE_UNREF(pStatisticCount);
+       DE_UNREF(pStatistics);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV (VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations)
+VKAPI_ATTR VkResult VKAPI_CALL getPipelineExecutableInternalRepresentationsKHR (VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(pCombinationCount);
-       DE_UNREF(pCombinations);
+       DE_UNREF(device);
+       DE_UNREF(pExecutableInfo);
+       DE_UNREF(pInternalRepresentationCount);
+       DE_UNREF(pInternalRepresentations);
        return VK_SUCCESS;
 }
 
@@ -2711,387 +2786,344 @@ VKAPI_ATTR void VKAPI_CALL cmdSetLineStippleEXT (VkCommandBuffer commandBuffer,
        DE_UNREF(lineStipplePattern);
 }
 
-VKAPI_ATTR void VKAPI_CALL getGeneratedCommandsMemoryRequirementsNV (VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements)
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceToolProperties (VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties)
 {
-       DE_UNREF(device);
-       DE_UNREF(pInfo);
-       DE_UNREF(pMemoryRequirements);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pToolCount);
+       DE_UNREF(pToolProperties);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdPreprocessGeneratedCommandsNV (VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo)
+VKAPI_ATTR void VKAPI_CALL cmdBuildAccelerationStructuresKHR (VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(pGeneratedCommandsInfo);
+       DE_UNREF(infoCount);
+       DE_UNREF(pInfos);
+       DE_UNREF(ppBuildRangeInfos);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdExecuteGeneratedCommandsNV (VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo)
+VKAPI_ATTR void VKAPI_CALL cmdBuildAccelerationStructuresIndirectKHR (VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const* ppMaxPrimitiveCounts)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(isPreprocessed);
-       DE_UNREF(pGeneratedCommandsInfo);
+       DE_UNREF(infoCount);
+       DE_UNREF(pInfos);
+       DE_UNREF(pIndirectDeviceAddresses);
+       DE_UNREF(pIndirectStrides);
+       DE_UNREF(ppMaxPrimitiveCounts);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdBindPipelineShaderGroupNV (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex)
+VKAPI_ATTR VkResult VKAPI_CALL buildAccelerationStructuresKHR (VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(pipelineBindPoint);
-       DE_UNREF(pipeline);
-       DE_UNREF(groupIndex);
+       DE_UNREF(device);
+       DE_UNREF(deferredOperation);
+       DE_UNREF(infoCount);
+       DE_UNREF(pInfos);
+       DE_UNREF(ppBuildRangeInfos);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL acquireDrmDisplayEXT (VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display)
+VKAPI_ATTR VkDeviceAddress VKAPI_CALL getAccelerationStructureDeviceAddressKHR (VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(drmFd);
-       DE_UNREF(display);
+       DE_UNREF(device);
+       DE_UNREF(pInfo);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getDrmDisplayEXT (VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display)
+VKAPI_ATTR uint32_t VKAPI_CALL getDeferredOperationMaxConcurrencyKHR (VkDevice device, VkDeferredOperationKHR operation)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(drmFd);
-       DE_UNREF(connectorId);
-       DE_UNREF(display);
+       DE_UNREF(device);
+       DE_UNREF(operation);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetFragmentShadingRateEnumNV (VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2])
+VKAPI_ATTR VkResult VKAPI_CALL getDeferredOperationResultKHR (VkDevice device, VkDeferredOperationKHR operation)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(shadingRate);
-       DE_UNREF(combinerOps);
+       DE_UNREF(device);
+       DE_UNREF(operation);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL getImageSubresourceLayout2EXT (VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout)
+VKAPI_ATTR VkResult VKAPI_CALL deferredOperationJoinKHR (VkDevice device, VkDeferredOperationKHR operation)
 {
        DE_UNREF(device);
-       DE_UNREF(image);
-       DE_UNREF(pSubresource);
-       DE_UNREF(pLayout);
+       DE_UNREF(operation);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL acquireWinrtDisplayNV (VkPhysicalDevice physicalDevice, VkDisplayKHR display)
+VKAPI_ATTR void VKAPI_CALL cmdSetCullMode (VkCommandBuffer commandBuffer, VkCullModeFlags cullMode)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(display);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(cullMode);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getWinrtDisplayNV (VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay)
+VKAPI_ATTR void VKAPI_CALL cmdSetFrontFace (VkCommandBuffer commandBuffer, VkFrontFace frontFace)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(deviceRelativeId);
-       DE_UNREF(pDisplay);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(frontFace);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetVertexInputEXT (VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions)
+VKAPI_ATTR void VKAPI_CALL cmdSetPrimitiveTopology (VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(vertexBindingDescriptionCount);
-       DE_UNREF(pVertexBindingDescriptions);
-       DE_UNREF(vertexAttributeDescriptionCount);
-       DE_UNREF(pVertexAttributeDescriptions);
+       DE_UNREF(primitiveTopology);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI (VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize)
+VKAPI_ATTR void VKAPI_CALL cmdSetViewportWithCount (VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports)
 {
-       DE_UNREF(device);
-       DE_UNREF(renderpass);
-       DE_UNREF(pMaxWorkgroupSize);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(viewportCount);
+       DE_UNREF(pViewports);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSubpassShadingHUAWEI (VkCommandBuffer commandBuffer)
+VKAPI_ATTR void VKAPI_CALL cmdSetScissorWithCount (VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors)
 {
        DE_UNREF(commandBuffer);
+       DE_UNREF(scissorCount);
+       DE_UNREF(pScissors);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdBindInvocationMaskHUAWEI (VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout)
+VKAPI_ATTR void VKAPI_CALL cmdBindVertexBuffers2 (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(imageView);
-       DE_UNREF(imageLayout);
+       DE_UNREF(firstBinding);
+       DE_UNREF(bindingCount);
+       DE_UNREF(pBuffers);
+       DE_UNREF(pOffsets);
+       DE_UNREF(pSizes);
+       DE_UNREF(pStrides);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getMemoryRemoteAddressNV (VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress)
+VKAPI_ATTR void VKAPI_CALL cmdSetDepthTestEnable (VkCommandBuffer commandBuffer, VkBool32 depthTestEnable)
 {
-       DE_UNREF(device);
-       DE_UNREF(pMemoryGetRemoteAddressInfo);
-       DE_UNREF(pAddress);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(depthTestEnable);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getPipelinePropertiesEXT (VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties)
+VKAPI_ATTR void VKAPI_CALL cmdSetDepthWriteEnable (VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable)
 {
-       DE_UNREF(device);
-       DE_UNREF(pPipelineInfo);
-       DE_UNREF(pPipelineProperties);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(depthWriteEnable);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetPatchControlPointsEXT (VkCommandBuffer commandBuffer, uint32_t patchControlPoints)
+VKAPI_ATTR void VKAPI_CALL cmdSetDepthCompareOp (VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(patchControlPoints);
+       DE_UNREF(depthCompareOp);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetLogicOpEXT (VkCommandBuffer commandBuffer, VkLogicOp logicOp)
+VKAPI_ATTR void VKAPI_CALL cmdSetDepthBoundsTestEnable (VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(logicOp);
+       DE_UNREF(depthBoundsTestEnable);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetColorWriteEnableEXT (VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables)
+VKAPI_ATTR void VKAPI_CALL cmdSetStencilTestEnable (VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(attachmentCount);
-       DE_UNREF(pColorWriteEnables);
+       DE_UNREF(stencilTestEnable);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdDrawMultiEXT (VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride)
+VKAPI_ATTR void VKAPI_CALL cmdSetStencilOp (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(drawCount);
-       DE_UNREF(pVertexInfo);
-       DE_UNREF(instanceCount);
-       DE_UNREF(firstInstance);
-       DE_UNREF(stride);
+       DE_UNREF(faceMask);
+       DE_UNREF(failOp);
+       DE_UNREF(passOp);
+       DE_UNREF(depthFailOp);
+       DE_UNREF(compareOp);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdDrawMultiIndexedEXT (VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawIndexedInfoEXT* pIndexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride, const int32_t* pVertexOffset)
+VKAPI_ATTR void VKAPI_CALL cmdSetPatchControlPointsEXT (VkCommandBuffer commandBuffer, uint32_t patchControlPoints)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(drawCount);
-       DE_UNREF(pIndexInfo);
-       DE_UNREF(instanceCount);
-       DE_UNREF(firstInstance);
-       DE_UNREF(stride);
-       DE_UNREF(pVertexOffset);
+       DE_UNREF(patchControlPoints);
 }
 
-VKAPI_ATTR void VKAPI_CALL setDeviceMemoryPriorityEXT (VkDevice device, VkDeviceMemory memory, float priority)
+VKAPI_ATTR void VKAPI_CALL cmdSetRasterizerDiscardEnable (VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable)
 {
-       DE_UNREF(device);
-       DE_UNREF(memory);
-       DE_UNREF(priority);
+       DE_UNREF(commandBuffer);
+       DE_UNREF(rasterizerDiscardEnable);
 }
 
-VKAPI_ATTR void VKAPI_CALL getDescriptorSetLayoutHostMappingInfoVALVE (VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping)
+VKAPI_ATTR void VKAPI_CALL cmdSetDepthBiasEnable (VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable)
 {
-       DE_UNREF(device);
-       DE_UNREF(pBindingReference);
-       DE_UNREF(pHostMapping);
+       DE_UNREF(commandBuffer);
+       DE_UNREF(depthBiasEnable);
 }
 
-VKAPI_ATTR void VKAPI_CALL getDescriptorSetHostMappingVALVE (VkDevice device, VkDescriptorSet descriptorSet, void** ppData)
+VKAPI_ATTR void VKAPI_CALL cmdSetLogicOpEXT (VkCommandBuffer commandBuffer, VkLogicOp logicOp)
 {
-       DE_UNREF(device);
-       DE_UNREF(descriptorSet);
-       DE_UNREF(ppData);
+       DE_UNREF(commandBuffer);
+       DE_UNREF(logicOp);
 }
 
-VKAPI_ATTR void VKAPI_CALL getShaderModuleIdentifierEXT (VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier)
+VKAPI_ATTR void VKAPI_CALL cmdSetPrimitiveRestartEnable (VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable)
 {
-       DE_UNREF(device);
-       DE_UNREF(shaderModule);
-       DE_UNREF(pIdentifier);
+       DE_UNREF(commandBuffer);
+       DE_UNREF(primitiveRestartEnable);
 }
 
-VKAPI_ATTR void VKAPI_CALL getShaderModuleCreateInfoIdentifierEXT (VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier)
+VKAPI_ATTR VkResult VKAPI_CALL setPrivateData (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data)
 {
        DE_UNREF(device);
-       DE_UNREF(pCreateInfo);
-       DE_UNREF(pIdentifier);
+       DE_UNREF(objectType);
+       DE_UNREF(objectHandle);
+       DE_UNREF(privateDataSlot);
+       DE_UNREF(data);
+       return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getFramebufferTilePropertiesQCOM (VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties)
+VKAPI_ATTR void VKAPI_CALL getPrivateData (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData)
 {
        DE_UNREF(device);
-       DE_UNREF(framebuffer);
-       DE_UNREF(pPropertiesCount);
-       DE_UNREF(pProperties);
-       return VK_SUCCESS;
+       DE_UNREF(objectType);
+       DE_UNREF(objectHandle);
+       DE_UNREF(privateDataSlot);
+       DE_UNREF(pData);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getDynamicRenderingTilePropertiesQCOM (VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties)
+VKAPI_ATTR void VKAPI_CALL cmdCopyBuffer2 (VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo)
 {
-       DE_UNREF(device);
-       DE_UNREF(pRenderingInfo);
-       DE_UNREF(pProperties);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pCopyBufferInfo);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdBuildAccelerationStructuresKHR (VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos)
+VKAPI_ATTR void VKAPI_CALL cmdCopyImage2 (VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(infoCount);
-       DE_UNREF(pInfos);
-       DE_UNREF(ppBuildRangeInfos);
+       DE_UNREF(pCopyImageInfo);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdBuildAccelerationStructuresIndirectKHR (VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const* ppMaxPrimitiveCounts)
+VKAPI_ATTR void VKAPI_CALL cmdBlitImage2 (VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(infoCount);
-       DE_UNREF(pInfos);
-       DE_UNREF(pIndirectDeviceAddresses);
-       DE_UNREF(pIndirectStrides);
-       DE_UNREF(ppMaxPrimitiveCounts);
+       DE_UNREF(pBlitImageInfo);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL buildAccelerationStructuresKHR (VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos)
+VKAPI_ATTR void VKAPI_CALL cmdCopyBufferToImage2 (VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo)
 {
-       DE_UNREF(device);
-       DE_UNREF(deferredOperation);
-       DE_UNREF(infoCount);
-       DE_UNREF(pInfos);
-       DE_UNREF(ppBuildRangeInfos);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pCopyBufferToImageInfo);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL copyAccelerationStructureKHR (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo)
+VKAPI_ATTR void VKAPI_CALL cmdCopyImageToBuffer2 (VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo)
 {
-       DE_UNREF(device);
-       DE_UNREF(deferredOperation);
-       DE_UNREF(pInfo);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pCopyImageToBufferInfo);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL copyAccelerationStructureToMemoryKHR (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo)
+VKAPI_ATTR void VKAPI_CALL cmdResolveImage2 (VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo)
 {
-       DE_UNREF(device);
-       DE_UNREF(deferredOperation);
-       DE_UNREF(pInfo);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pResolveImageInfo);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL copyMemoryToAccelerationStructureKHR (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo)
+VKAPI_ATTR void VKAPI_CALL cmdSetFragmentShadingRateKHR (VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2])
 {
-       DE_UNREF(device);
-       DE_UNREF(deferredOperation);
-       DE_UNREF(pInfo);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pFragmentSize);
+       DE_UNREF(combinerOps);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL writeAccelerationStructuresPropertiesKHR (VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride)
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceFragmentShadingRatesKHR (VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates)
 {
-       DE_UNREF(device);
-       DE_UNREF(accelerationStructureCount);
-       DE_UNREF(pAccelerationStructures);
-       DE_UNREF(queryType);
-       DE_UNREF(dataSize);
-       DE_UNREF(pData);
-       DE_UNREF(stride);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pFragmentShadingRateCount);
+       DE_UNREF(pFragmentShadingRates);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdCopyAccelerationStructureKHR (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo)
+VKAPI_ATTR void VKAPI_CALL cmdSetFragmentShadingRateEnumNV (VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2])
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(pInfo);
+       DE_UNREF(shadingRate);
+       DE_UNREF(combinerOps);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdCopyAccelerationStructureToMemoryKHR (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo)
+VKAPI_ATTR void VKAPI_CALL getAccelerationStructureBuildSizesKHR (VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo)
 {
-       DE_UNREF(commandBuffer);
-       DE_UNREF(pInfo);
+       DE_UNREF(device);
+       DE_UNREF(buildType);
+       DE_UNREF(pBuildInfo);
+       DE_UNREF(pMaxPrimitiveCounts);
+       DE_UNREF(pSizeInfo);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdCopyMemoryToAccelerationStructureKHR (VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo)
+VKAPI_ATTR void VKAPI_CALL cmdSetVertexInputEXT (VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(pInfo);
+       DE_UNREF(vertexBindingDescriptionCount);
+       DE_UNREF(pVertexBindingDescriptions);
+       DE_UNREF(vertexAttributeDescriptionCount);
+       DE_UNREF(pVertexAttributeDescriptions);
 }
 
-VKAPI_ATTR VkDeviceAddress VKAPI_CALL getAccelerationStructureDeviceAddressKHR (VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo)
+VKAPI_ATTR void VKAPI_CALL cmdSetColorWriteEnableEXT (VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables)
 {
-       DE_UNREF(device);
-       DE_UNREF(pInfo);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(attachmentCount);
+       DE_UNREF(pColorWriteEnables);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdWriteAccelerationStructuresPropertiesKHR (VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery)
+VKAPI_ATTR void VKAPI_CALL cmdSetEvent2 (VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(accelerationStructureCount);
-       DE_UNREF(pAccelerationStructures);
-       DE_UNREF(queryType);
-       DE_UNREF(queryPool);
-       DE_UNREF(firstQuery);
+       DE_UNREF(event);
+       DE_UNREF(pDependencyInfo);
 }
 
-VKAPI_ATTR void VKAPI_CALL getDeviceAccelerationStructureCompatibilityKHR (VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility)
+VKAPI_ATTR void VKAPI_CALL cmdResetEvent2 (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask)
 {
-       DE_UNREF(device);
-       DE_UNREF(pVersionInfo);
-       DE_UNREF(pCompatibility);
+       DE_UNREF(commandBuffer);
+       DE_UNREF(event);
+       DE_UNREF(stageMask);
 }
 
-VKAPI_ATTR void VKAPI_CALL getAccelerationStructureBuildSizesKHR (VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo)
+VKAPI_ATTR void VKAPI_CALL cmdWaitEvents2 (VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos)
 {
-       DE_UNREF(device);
-       DE_UNREF(buildType);
-       DE_UNREF(pBuildInfo);
-       DE_UNREF(pMaxPrimitiveCounts);
-       DE_UNREF(pSizeInfo);
+       DE_UNREF(commandBuffer);
+       DE_UNREF(eventCount);
+       DE_UNREF(pEvents);
+       DE_UNREF(pDependencyInfos);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdTraceRaysKHR (VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth)
+VKAPI_ATTR void VKAPI_CALL cmdPipelineBarrier2 (VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(pRaygenShaderBindingTable);
-       DE_UNREF(pMissShaderBindingTable);
-       DE_UNREF(pHitShaderBindingTable);
-       DE_UNREF(pCallableShaderBindingTable);
-       DE_UNREF(width);
-       DE_UNREF(height);
-       DE_UNREF(depth);
+       DE_UNREF(pDependencyInfo);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getRayTracingCaptureReplayShaderGroupHandlesKHR (VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData)
+VKAPI_ATTR VkResult VKAPI_CALL queueSubmit2 (VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence)
 {
-       DE_UNREF(device);
-       DE_UNREF(pipeline);
-       DE_UNREF(firstGroup);
-       DE_UNREF(groupCount);
-       DE_UNREF(dataSize);
-       DE_UNREF(pData);
+       DE_UNREF(queue);
+       DE_UNREF(submitCount);
+       DE_UNREF(pSubmits);
+       DE_UNREF(fence);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdTraceRaysIndirectKHR (VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress)
+VKAPI_ATTR void VKAPI_CALL cmdWriteTimestamp2 (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(pRaygenShaderBindingTable);
-       DE_UNREF(pMissShaderBindingTable);
-       DE_UNREF(pHitShaderBindingTable);
-       DE_UNREF(pCallableShaderBindingTable);
-       DE_UNREF(indirectDeviceAddress);
-}
-
-VKAPI_ATTR VkDeviceSize VKAPI_CALL getRayTracingShaderGroupStackSizeKHR (VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader)
-{
-       DE_UNREF(device);
-       DE_UNREF(pipeline);
-       DE_UNREF(group);
-       DE_UNREF(groupShader);
-       return VK_SUCCESS;
+       DE_UNREF(stage);
+       DE_UNREF(queryPool);
+       DE_UNREF(query);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdSetRayTracingPipelineStackSizeKHR (VkCommandBuffer commandBuffer, uint32_t pipelineStackSize)
+VKAPI_ATTR void VKAPI_CALL cmdWriteBufferMarker2AMD (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(pipelineStackSize);
+       DE_UNREF(stage);
+       DE_UNREF(dstBuffer);
+       DE_UNREF(dstOffset);
+       DE_UNREF(marker);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getAndroidHardwareBufferPropertiesANDROID (VkDevice device, const struct pt::AndroidHardwareBufferPtr buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties)
+VKAPI_ATTR void VKAPI_CALL getQueueCheckpointData2NV (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData)
 {
-       DE_UNREF(device);
-       DE_UNREF(buffer);
-       DE_UNREF(pProperties);
-       return VK_SUCCESS;
+       DE_UNREF(queue);
+       DE_UNREF(pCheckpointDataCount);
+       DE_UNREF(pCheckpointData);
 }
 
 VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceVideoCapabilitiesKHR (VkPhysicalDevice physicalDevice, const VkVideoProfileKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities)
@@ -3111,6 +3143,14 @@ VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceVideoFormatPropertiesKHR (VkPhys
        return VK_SUCCESS;
 }
 
+VKAPI_ATTR VkResult VKAPI_CALL updateVideoSessionParametersKHR (VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo)
+{
+       DE_UNREF(device);
+       DE_UNREF(videoSessionParameters);
+       DE_UNREF(pUpdateInfo);
+       return VK_SUCCESS;
+}
+
 VKAPI_ATTR VkResult VKAPI_CALL getVideoSessionMemoryRequirementsKHR (VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pVideoSessionMemoryRequirementsCount, VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements)
 {
        DE_UNREF(device);
@@ -3129,12 +3169,10 @@ VKAPI_ATTR VkResult VKAPI_CALL bindVideoSessionMemoryKHR (VkDevice device, VkVid
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL updateVideoSessionParametersKHR (VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo)
+VKAPI_ATTR void VKAPI_CALL cmdDecodeVideoKHR (VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pFrameInfo)
 {
-       DE_UNREF(device);
-       DE_UNREF(videoSessionParameters);
-       DE_UNREF(pUpdateInfo);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pFrameInfo);
 }
 
 VKAPI_ATTR void VKAPI_CALL cmdBeginVideoCodingKHR (VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo)
@@ -3143,22 +3181,16 @@ VKAPI_ATTR void VKAPI_CALL cmdBeginVideoCodingKHR (VkCommandBuffer commandBuffer
        DE_UNREF(pBeginInfo);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdEndVideoCodingKHR (VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo)
-{
-       DE_UNREF(commandBuffer);
-       DE_UNREF(pEndCodingInfo);
-}
-
 VKAPI_ATTR void VKAPI_CALL cmdControlVideoCodingKHR (VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo)
 {
        DE_UNREF(commandBuffer);
        DE_UNREF(pCodingControlInfo);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdDecodeVideoKHR (VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pFrameInfo)
+VKAPI_ATTR void VKAPI_CALL cmdEndVideoCodingKHR (VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo)
 {
        DE_UNREF(commandBuffer);
-       DE_UNREF(pFrameInfo);
+       DE_UNREF(pEndCodingInfo);
 }
 
 VKAPI_ATTR void VKAPI_CALL cmdEncodeVideoKHR (VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo)
@@ -3167,43 +3199,42 @@ VKAPI_ATTR void VKAPI_CALL cmdEncodeVideoKHR (VkCommandBuffer commandBuffer, con
        DE_UNREF(pEncodeInfo);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getMemoryZirconHandleFUCHSIA (VkDevice device, const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, pt::zx_handle_t* pZirconHandle)
+VKAPI_ATTR void VKAPI_CALL cmdCuLaunchKernelNVX (VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo)
 {
-       DE_UNREF(device);
-       DE_UNREF(pGetZirconHandleInfo);
-       DE_UNREF(pZirconHandle);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pLaunchInfo);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getMemoryZirconHandlePropertiesFUCHSIA (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties)
+VKAPI_ATTR void VKAPI_CALL setDeviceMemoryPriorityEXT (VkDevice device, VkDeviceMemory memory, float priority)
 {
        DE_UNREF(device);
-       DE_UNREF(handleType);
-       DE_UNREF(zirconHandle);
-       DE_UNREF(pMemoryZirconHandleProperties);
-       return VK_SUCCESS;
+       DE_UNREF(memory);
+       DE_UNREF(priority);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL importSemaphoreZirconHandleFUCHSIA (VkDevice device, const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo)
+VKAPI_ATTR VkResult VKAPI_CALL acquireDrmDisplayEXT (VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display)
 {
-       DE_UNREF(device);
-       DE_UNREF(pImportSemaphoreZirconHandleInfo);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(drmFd);
+       DE_UNREF(display);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getSemaphoreZirconHandleFUCHSIA (VkDevice device, const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, pt::zx_handle_t* pZirconHandle)
+VKAPI_ATTR VkResult VKAPI_CALL getDrmDisplayEXT (VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display)
 {
-       DE_UNREF(device);
-       DE_UNREF(pGetZirconHandleInfo);
-       DE_UNREF(pZirconHandle);
+       DE_UNREF(physicalDevice);
+       DE_UNREF(drmFd);
+       DE_UNREF(connectorId);
+       DE_UNREF(display);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL setBufferCollectionImageConstraintsFUCHSIA (VkDevice device, VkBufferCollectionFUCHSIA collection, const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo)
+VKAPI_ATTR VkResult VKAPI_CALL waitForPresentKHR (VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout)
 {
        DE_UNREF(device);
-       DE_UNREF(collection);
-       DE_UNREF(pImageConstraintsInfo);
+       DE_UNREF(swapchain);
+       DE_UNREF(presentId);
+       DE_UNREF(timeout);
        return VK_SUCCESS;
 }
 
@@ -3215,154 +3246,97 @@ VKAPI_ATTR VkResult VKAPI_CALL setBufferCollectionBufferConstraintsFUCHSIA (VkDe
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getBufferCollectionPropertiesFUCHSIA (VkDevice device, VkBufferCollectionFUCHSIA collection, VkBufferCollectionPropertiesFUCHSIA* pProperties)
+VKAPI_ATTR VkResult VKAPI_CALL setBufferCollectionImageConstraintsFUCHSIA (VkDevice device, VkBufferCollectionFUCHSIA collection, const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo)
 {
        DE_UNREF(device);
        DE_UNREF(collection);
-       DE_UNREF(pProperties);
+       DE_UNREF(pImageConstraintsInfo);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL exportMetalObjectsEXT (VkDevice device, VkExportMetalObjectsInfoEXT* pMetalObjectsInfo)
+VKAPI_ATTR VkResult VKAPI_CALL getBufferCollectionPropertiesFUCHSIA (VkDevice device, VkBufferCollectionFUCHSIA collection, VkBufferCollectionPropertiesFUCHSIA* pProperties)
 {
        DE_UNREF(device);
-       DE_UNREF(pMetalObjectsInfo);
-}
-
-VKAPI_ATTR VkBool32 VKAPI_CALL getPhysicalDeviceWaylandPresentationSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::WaylandDisplayPtr display)
-{
-       DE_UNREF(physicalDevice);
-       DE_UNREF(queueFamilyIndex);
-       DE_UNREF(display);
+       DE_UNREF(collection);
+       DE_UNREF(pProperties);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkBool32 VKAPI_CALL getPhysicalDeviceWin32PresentationSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex)
+VKAPI_ATTR void VKAPI_CALL cmdBeginRendering (VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo)
 {
-       DE_UNREF(physicalDevice);
-       DE_UNREF(queueFamilyIndex);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
+       DE_UNREF(pRenderingInfo);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getMemoryWin32HandleKHR (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle)
+VKAPI_ATTR void VKAPI_CALL cmdEndRendering (VkCommandBuffer commandBuffer)
 {
-       DE_UNREF(device);
-       DE_UNREF(pGetWin32HandleInfo);
-       DE_UNREF(pHandle);
-       return VK_SUCCESS;
+       DE_UNREF(commandBuffer);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getMemoryWin32HandlePropertiesKHR (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties)
+VKAPI_ATTR void VKAPI_CALL getDescriptorSetLayoutHostMappingInfoVALVE (VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping)
 {
        DE_UNREF(device);
-       DE_UNREF(handleType);
-       DE_UNREF(handle);
-       DE_UNREF(pMemoryWin32HandleProperties);
-       return VK_SUCCESS;
+       DE_UNREF(pBindingReference);
+       DE_UNREF(pHostMapping);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL importSemaphoreWin32HandleKHR (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo)
+VKAPI_ATTR void VKAPI_CALL getDescriptorSetHostMappingVALVE (VkDevice device, VkDescriptorSet descriptorSet, void** ppData)
 {
        DE_UNREF(device);
-       DE_UNREF(pImportSemaphoreWin32HandleInfo);
-       return VK_SUCCESS;
+       DE_UNREF(descriptorSet);
+       DE_UNREF(ppData);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getSemaphoreWin32HandleKHR (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle)
+VKAPI_ATTR void VKAPI_CALL getShaderModuleIdentifierEXT (VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier)
 {
        DE_UNREF(device);
-       DE_UNREF(pGetWin32HandleInfo);
-       DE_UNREF(pHandle);
-       return VK_SUCCESS;
+       DE_UNREF(shaderModule);
+       DE_UNREF(pIdentifier);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL importFenceWin32HandleKHR (VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo)
+VKAPI_ATTR void VKAPI_CALL getShaderModuleCreateInfoIdentifierEXT (VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier)
 {
        DE_UNREF(device);
-       DE_UNREF(pImportFenceWin32HandleInfo);
-       return VK_SUCCESS;
+       DE_UNREF(pCreateInfo);
+       DE_UNREF(pIdentifier);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getFenceWin32HandleKHR (VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle)
+VKAPI_ATTR void VKAPI_CALL getImageSubresourceLayout2EXT (VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout)
 {
        DE_UNREF(device);
-       DE_UNREF(pGetWin32HandleInfo);
-       DE_UNREF(pHandle);
-       return VK_SUCCESS;
+       DE_UNREF(image);
+       DE_UNREF(pSubresource);
+       DE_UNREF(pLayout);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getMemoryWin32HandleNV (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle)
+VKAPI_ATTR VkResult VKAPI_CALL getPipelinePropertiesEXT (VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties)
 {
        DE_UNREF(device);
-       DE_UNREF(memory);
-       DE_UNREF(handleType);
-       DE_UNREF(pHandle);
-       return VK_SUCCESS;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceSurfacePresentModes2EXT (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes)
-{
-       DE_UNREF(physicalDevice);
-       DE_UNREF(pSurfaceInfo);
-       DE_UNREF(pPresentModeCount);
-       DE_UNREF(pPresentModes);
+       DE_UNREF(pPipelineInfo);
+       DE_UNREF(pPipelineProperties);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL acquireFullScreenExclusiveModeEXT (VkDevice device, VkSwapchainKHR swapchain)
+VKAPI_ATTR void VKAPI_CALL exportMetalObjectsEXT (VkDevice device, VkExportMetalObjectsInfoEXT* pMetalObjectsInfo)
 {
        DE_UNREF(device);
-       DE_UNREF(swapchain);
-       return VK_SUCCESS;
+       DE_UNREF(pMetalObjectsInfo);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL releaseFullScreenExclusiveModeEXT (VkDevice device, VkSwapchainKHR swapchain)
+VKAPI_ATTR VkResult VKAPI_CALL getFramebufferTilePropertiesQCOM (VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties)
 {
        DE_UNREF(device);
-       DE_UNREF(swapchain);
+       DE_UNREF(framebuffer);
+       DE_UNREF(pPropertiesCount);
+       DE_UNREF(pProperties);
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getDeviceGroupSurfacePresentModes2EXT (VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes)
+VKAPI_ATTR VkResult VKAPI_CALL getDynamicRenderingTilePropertiesQCOM (VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties)
 {
        DE_UNREF(device);
-       DE_UNREF(pSurfaceInfo);
-       DE_UNREF(pModes);
-       return VK_SUCCESS;
-}
-
-VKAPI_ATTR VkBool32 VKAPI_CALL getPhysicalDeviceXcbPresentationSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::XcbConnectionPtr connection, pt::XcbVisualid visual_id)
-{
-       DE_UNREF(physicalDevice);
-       DE_UNREF(queueFamilyIndex);
-       DE_UNREF(connection);
-       DE_UNREF(visual_id);
-       return VK_SUCCESS;
-}
-
-VKAPI_ATTR VkBool32 VKAPI_CALL getPhysicalDeviceXlibPresentationSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::XlibDisplayPtr dpy, pt::XlibVisualID visualID)
-{
-       DE_UNREF(physicalDevice);
-       DE_UNREF(queueFamilyIndex);
-       DE_UNREF(dpy);
-       DE_UNREF(visualID);
-       return VK_SUCCESS;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL acquireXlibDisplayEXT (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, VkDisplayKHR display)
-{
-       DE_UNREF(physicalDevice);
-       DE_UNREF(dpy);
-       DE_UNREF(display);
-       return VK_SUCCESS;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL getRandROutputDisplayEXT (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, pt::RROutput rrOutput, VkDisplayKHR* pDisplay)
-{
-       DE_UNREF(physicalDevice);
-       DE_UNREF(dpy);
-       DE_UNREF(rrOutput);
-       DE_UNREF(pDisplay);
+       DE_UNREF(pRenderingInfo);
+       DE_UNREF(pProperties);
        return VK_SUCCESS;
 }
 
@@ -3370,26 +3344,55 @@ static const tcu::StaticFunctionLibrary::Entry s_platformFunctions[] =
 {
        VK_NULL_FUNC_ENTRY(vkCreateInstance,                                            createInstance),
        VK_NULL_FUNC_ENTRY(vkGetInstanceProcAddr,                                       getInstanceProcAddr),
-       VK_NULL_FUNC_ENTRY(vkEnumerateInstanceExtensionProperties,      enumerateInstanceExtensionProperties),
-       VK_NULL_FUNC_ENTRY(vkEnumerateInstanceLayerProperties,          enumerateInstanceLayerProperties),
        VK_NULL_FUNC_ENTRY(vkEnumerateInstanceVersion,                          enumerateInstanceVersion),
+       VK_NULL_FUNC_ENTRY(vkEnumerateInstanceLayerProperties,          enumerateInstanceLayerProperties),
+       VK_NULL_FUNC_ENTRY(vkEnumerateInstanceExtensionProperties,      enumerateInstanceExtensionProperties),
 };
 
 static const tcu::StaticFunctionLibrary::Entry s_instanceFunctions[] =
 {
        VK_NULL_FUNC_ENTRY(vkDestroyInstance,                                                                                                   destroyInstance),
        VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDevices,                                                                                  enumeratePhysicalDevices),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFeatures,                                                                                 getPhysicalDeviceFeatures),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFormatProperties,                                                                 getPhysicalDeviceFormatProperties),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceImageFormatProperties,                                                    getPhysicalDeviceImageFormatProperties),
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceProperties,                                                                               getPhysicalDeviceProperties),
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties,                                                    getPhysicalDeviceQueueFamilyProperties),
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMemoryProperties,                                                                 getPhysicalDeviceMemoryProperties),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFeatures,                                                                                 getPhysicalDeviceFeatures),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFormatProperties,                                                                 getPhysicalDeviceFormatProperties),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceImageFormatProperties,                                                    getPhysicalDeviceImageFormatProperties),
        VK_NULL_FUNC_ENTRY(vkCreateDevice,                                                                                                              createDevice),
-       VK_NULL_FUNC_ENTRY(vkEnumerateDeviceExtensionProperties,                                                                enumerateDeviceExtensionProperties),
        VK_NULL_FUNC_ENTRY(vkEnumerateDeviceLayerProperties,                                                                    enumerateDeviceLayerProperties),
+       VK_NULL_FUNC_ENTRY(vkEnumerateDeviceExtensionProperties,                                                                enumerateDeviceExtensionProperties),
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties,                                              getPhysicalDeviceSparseImageFormatProperties),
-       VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDeviceGroups,                                                                             enumeratePhysicalDeviceGroups),
+       VK_NULL_FUNC_ENTRY(vkCreateAndroidSurfaceKHR,                                                                                   createAndroidSurfaceKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceDisplayPropertiesKHR,                                                             getPhysicalDeviceDisplayPropertiesKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceDisplayPlanePropertiesKHR,                                                getPhysicalDeviceDisplayPlanePropertiesKHR),
+       VK_NULL_FUNC_ENTRY(vkGetDisplayPlaneSupportedDisplaysKHR,                                                               getDisplayPlaneSupportedDisplaysKHR),
+       VK_NULL_FUNC_ENTRY(vkGetDisplayModePropertiesKHR,                                                                               getDisplayModePropertiesKHR),
+       VK_NULL_FUNC_ENTRY(vkCreateDisplayModeKHR,                                                                                              createDisplayModeKHR),
+       VK_NULL_FUNC_ENTRY(vkGetDisplayPlaneCapabilitiesKHR,                                                                    getDisplayPlaneCapabilitiesKHR),
+       VK_NULL_FUNC_ENTRY(vkCreateDisplayPlaneSurfaceKHR,                                                                              createDisplayPlaneSurfaceKHR),
+       VK_NULL_FUNC_ENTRY(vkDestroySurfaceKHR,                                                                                                 destroySurfaceKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceSupportKHR,                                                                getPhysicalDeviceSurfaceSupportKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceCapabilitiesKHR,                                                   getPhysicalDeviceSurfaceCapabilitiesKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceFormatsKHR,                                                                getPhysicalDeviceSurfaceFormatsKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfacePresentModesKHR,                                                   getPhysicalDeviceSurfacePresentModesKHR),
+       VK_NULL_FUNC_ENTRY(vkCreateViSurfaceNN,                                                                                                 createViSurfaceNN),
+       VK_NULL_FUNC_ENTRY(vkCreateWaylandSurfaceKHR,                                                                                   createWaylandSurfaceKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceWaylandPresentationSupportKHR,                                    getPhysicalDeviceWaylandPresentationSupportKHR),
+       VK_NULL_FUNC_ENTRY(vkCreateWin32SurfaceKHR,                                                                                             createWin32SurfaceKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceWin32PresentationSupportKHR,                                              getPhysicalDeviceWin32PresentationSupportKHR),
+       VK_NULL_FUNC_ENTRY(vkCreateXlibSurfaceKHR,                                                                                              createXlibSurfaceKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceXlibPresentationSupportKHR,                                               getPhysicalDeviceXlibPresentationSupportKHR),
+       VK_NULL_FUNC_ENTRY(vkCreateXcbSurfaceKHR,                                                                                               createXcbSurfaceKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceXcbPresentationSupportKHR,                                                getPhysicalDeviceXcbPresentationSupportKHR),
+       VK_NULL_FUNC_ENTRY(vkCreateImagePipeSurfaceFUCHSIA,                                                                             createImagePipeSurfaceFUCHSIA),
+       VK_NULL_FUNC_ENTRY(vkCreateStreamDescriptorSurfaceGGP,                                                                  createStreamDescriptorSurfaceGGP),
+       VK_NULL_FUNC_ENTRY(vkCreateScreenSurfaceQNX,                                                                                    createScreenSurfaceQNX),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceScreenPresentationSupportQNX,                                             getPhysicalDeviceScreenPresentationSupportQNX),
+       VK_NULL_FUNC_ENTRY(vkCreateDebugReportCallbackEXT,                                                                              createDebugReportCallbackEXT),
+       VK_NULL_FUNC_ENTRY(vkDestroyDebugReportCallbackEXT,                                                                             destroyDebugReportCallbackEXT),
+       VK_NULL_FUNC_ENTRY(vkDebugReportMessageEXT,                                                                                             debugReportMessageEXT),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalImageFormatPropertiesNV,                                  getPhysicalDeviceExternalImageFormatPropertiesNV),
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFeatures2,                                                                                getPhysicalDeviceFeatures2),
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceProperties2,                                                                              getPhysicalDeviceProperties2),
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFormatProperties2,                                                                getPhysicalDeviceFormatProperties2),
@@ -3398,82 +3401,43 @@ static const tcu::StaticFunctionLibrary::Entry s_instanceFunctions[] =
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMemoryProperties2,                                                                getPhysicalDeviceMemoryProperties2),
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties2,                                             getPhysicalDeviceSparseImageFormatProperties2),
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalBufferProperties,                                                 getPhysicalDeviceExternalBufferProperties),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalFenceProperties,                                                  getPhysicalDeviceExternalFenceProperties),
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalSemaphoreProperties,                                              getPhysicalDeviceExternalSemaphoreProperties),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceToolProperties,                                                                   getPhysicalDeviceToolProperties),
-       VK_NULL_FUNC_ENTRY(vkDestroySurfaceKHR,                                                                                                 destroySurfaceKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceSupportKHR,                                                                getPhysicalDeviceSurfaceSupportKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceCapabilitiesKHR,                                                   getPhysicalDeviceSurfaceCapabilitiesKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceFormatsKHR,                                                                getPhysicalDeviceSurfaceFormatsKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfacePresentModesKHR,                                                   getPhysicalDeviceSurfacePresentModesKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalFenceProperties,                                                  getPhysicalDeviceExternalFenceProperties),
+       VK_NULL_FUNC_ENTRY(vkReleaseDisplayEXT,                                                                                                 releaseDisplayEXT),
+       VK_NULL_FUNC_ENTRY(vkAcquireXlibDisplayEXT,                                                                                             acquireXlibDisplayEXT),
+       VK_NULL_FUNC_ENTRY(vkGetRandROutputDisplayEXT,                                                                                  getRandROutputDisplayEXT),
+       VK_NULL_FUNC_ENTRY(vkAcquireWinrtDisplayNV,                                                                                             acquireWinrtDisplayNV),
+       VK_NULL_FUNC_ENTRY(vkGetWinrtDisplayNV,                                                                                                 getWinrtDisplayNV),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceCapabilities2EXT,                                                  getPhysicalDeviceSurfaceCapabilities2EXT),
+       VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDeviceGroups,                                                                             enumeratePhysicalDeviceGroups),
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDevicePresentRectanglesKHR,                                                             getPhysicalDevicePresentRectanglesKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceDisplayPropertiesKHR,                                                             getPhysicalDeviceDisplayPropertiesKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceDisplayPlanePropertiesKHR,                                                getPhysicalDeviceDisplayPlanePropertiesKHR),
-       VK_NULL_FUNC_ENTRY(vkGetDisplayPlaneSupportedDisplaysKHR,                                                               getDisplayPlaneSupportedDisplaysKHR),
-       VK_NULL_FUNC_ENTRY(vkGetDisplayModePropertiesKHR,                                                                               getDisplayModePropertiesKHR),
-       VK_NULL_FUNC_ENTRY(vkCreateDisplayModeKHR,                                                                                              createDisplayModeKHR),
-       VK_NULL_FUNC_ENTRY(vkGetDisplayPlaneCapabilitiesKHR,                                                                    getDisplayPlaneCapabilitiesKHR),
-       VK_NULL_FUNC_ENTRY(vkCreateDisplayPlaneSurfaceKHR,                                                                              createDisplayPlaneSurfaceKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFeatures2KHR,                                                                             getPhysicalDeviceFeatures2),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceProperties2KHR,                                                                   getPhysicalDeviceProperties2),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFormatProperties2KHR,                                                             getPhysicalDeviceFormatProperties2),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceImageFormatProperties2KHR,                                                getPhysicalDeviceImageFormatProperties2),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties2KHR,                                                getPhysicalDeviceQueueFamilyProperties2),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMemoryProperties2KHR,                                                             getPhysicalDeviceMemoryProperties2),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties2KHR,                                  getPhysicalDeviceSparseImageFormatProperties2),
-       VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDeviceGroupsKHR,                                                                  enumeratePhysicalDeviceGroups),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalBufferPropertiesKHR,                                              getPhysicalDeviceExternalBufferProperties),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalSemaphorePropertiesKHR,                                   getPhysicalDeviceExternalSemaphoreProperties),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalFencePropertiesKHR,                                               getPhysicalDeviceExternalFenceProperties),
-       VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR,             enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR,                             getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR),
+       VK_NULL_FUNC_ENTRY(vkCreateIOSSurfaceMVK,                                                                                               createIOSSurfaceMVK),
+       VK_NULL_FUNC_ENTRY(vkCreateMacOSSurfaceMVK,                                                                                             createMacOSSurfaceMVK),
+       VK_NULL_FUNC_ENTRY(vkCreateMetalSurfaceEXT,                                                                                             createMetalSurfaceEXT),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMultisamplePropertiesEXT,                                                 getPhysicalDeviceMultisamplePropertiesEXT),
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceCapabilities2KHR,                                                  getPhysicalDeviceSurfaceCapabilities2KHR),
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceFormats2KHR,                                                               getPhysicalDeviceSurfaceFormats2KHR),
        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(vkGetPhysicalDeviceFragmentShadingRatesKHR,                                                  getPhysicalDeviceFragmentShadingRatesKHR),
-       VK_NULL_FUNC_ENTRY(vkCreateDebugReportCallbackEXT,                                                                              createDebugReportCallbackEXT),
-       VK_NULL_FUNC_ENTRY(vkDestroyDebugReportCallbackEXT,                                                                             destroyDebugReportCallbackEXT),
-       VK_NULL_FUNC_ENTRY(vkDebugReportMessageEXT,                                                                                             debugReportMessageEXT),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalImageFormatPropertiesNV,                                  getPhysicalDeviceExternalImageFormatPropertiesNV),
-       VK_NULL_FUNC_ENTRY(vkReleaseDisplayEXT,                                                                                                 releaseDisplayEXT),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceCapabilities2EXT,                                                  getPhysicalDeviceSurfaceCapabilities2EXT),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceCalibrateableTimeDomainsEXT,                                              getPhysicalDeviceCalibrateableTimeDomainsEXT),
        VK_NULL_FUNC_ENTRY(vkCreateDebugUtilsMessengerEXT,                                                                              createDebugUtilsMessengerEXT),
        VK_NULL_FUNC_ENTRY(vkDestroyDebugUtilsMessengerEXT,                                                                             destroyDebugUtilsMessengerEXT),
        VK_NULL_FUNC_ENTRY(vkSubmitDebugUtilsMessageEXT,                                                                                submitDebugUtilsMessageEXT),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMultisamplePropertiesEXT,                                                 getPhysicalDeviceMultisamplePropertiesEXT),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceCalibrateableTimeDomainsEXT,                                              getPhysicalDeviceCalibrateableTimeDomainsEXT),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceToolPropertiesEXT,                                                                getPhysicalDeviceToolProperties),
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceCooperativeMatrixPropertiesNV,                                    getPhysicalDeviceCooperativeMatrixPropertiesNV),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV,   getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfacePresentModes2EXT,                                                  getPhysicalDeviceSurfacePresentModes2EXT),
+       VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR,             enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR,                             getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR),
        VK_NULL_FUNC_ENTRY(vkCreateHeadlessSurfaceEXT,                                                                                  createHeadlessSurfaceEXT),
-       VK_NULL_FUNC_ENTRY(vkAcquireDrmDisplayEXT,                                                                                              acquireDrmDisplayEXT),
-       VK_NULL_FUNC_ENTRY(vkGetDrmDisplayEXT,                                                                                                  getDrmDisplayEXT),
-       VK_NULL_FUNC_ENTRY(vkAcquireWinrtDisplayNV,                                                                                             acquireWinrtDisplayNV),
-       VK_NULL_FUNC_ENTRY(vkGetWinrtDisplayNV,                                                                                                 getWinrtDisplayNV),
-       VK_NULL_FUNC_ENTRY(vkCreateAndroidSurfaceKHR,                                                                                   createAndroidSurfaceKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV,   getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceToolProperties,                                                                   getPhysicalDeviceToolProperties),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFragmentShadingRatesKHR,                                                  getPhysicalDeviceFragmentShadingRatesKHR),
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceVideoCapabilitiesKHR,                                                             getPhysicalDeviceVideoCapabilitiesKHR),
        VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceVideoFormatPropertiesKHR,                                                 getPhysicalDeviceVideoFormatPropertiesKHR),
-       VK_NULL_FUNC_ENTRY(vkCreateImagePipeSurfaceFUCHSIA,                                                                             createImagePipeSurfaceFUCHSIA),
-       VK_NULL_FUNC_ENTRY(vkCreateStreamDescriptorSurfaceGGP,                                                                  createStreamDescriptorSurfaceGGP),
-       VK_NULL_FUNC_ENTRY(vkCreateIOSSurfaceMVK,                                                                                               createIOSSurfaceMVK),
-       VK_NULL_FUNC_ENTRY(vkCreateMacOSSurfaceMVK,                                                                                             createMacOSSurfaceMVK),
-       VK_NULL_FUNC_ENTRY(vkCreateMetalSurfaceEXT,                                                                                             createMetalSurfaceEXT),
-       VK_NULL_FUNC_ENTRY(vkCreateViSurfaceNN,                                                                                                 createViSurfaceNN),
-       VK_NULL_FUNC_ENTRY(vkCreateWaylandSurfaceKHR,                                                                                   createWaylandSurfaceKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceWaylandPresentationSupportKHR,                                    getPhysicalDeviceWaylandPresentationSupportKHR),
-       VK_NULL_FUNC_ENTRY(vkCreateWin32SurfaceKHR,                                                                                             createWin32SurfaceKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceWin32PresentationSupportKHR,                                              getPhysicalDeviceWin32PresentationSupportKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfacePresentModes2EXT,                                                  getPhysicalDeviceSurfacePresentModes2EXT),
-       VK_NULL_FUNC_ENTRY(vkCreateXcbSurfaceKHR,                                                                                               createXcbSurfaceKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceXcbPresentationSupportKHR,                                                getPhysicalDeviceXcbPresentationSupportKHR),
-       VK_NULL_FUNC_ENTRY(vkCreateXlibSurfaceKHR,                                                                                              createXlibSurfaceKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceXlibPresentationSupportKHR,                                               getPhysicalDeviceXlibPresentationSupportKHR),
-       VK_NULL_FUNC_ENTRY(vkAcquireXlibDisplayEXT,                                                                                             acquireXlibDisplayEXT),
-       VK_NULL_FUNC_ENTRY(vkGetRandROutputDisplayEXT,                                                                                  getRandROutputDisplayEXT),
-};
+       VK_NULL_FUNC_ENTRY(vkAcquireDrmDisplayEXT,                                                                                              acquireDrmDisplayEXT),
+       VK_NULL_FUNC_ENTRY(vkGetDrmDisplayEXT,                                                                                                  getDrmDisplayEXT),
+};
 
 static const tcu::StaticFunctionLibrary::Entry s_deviceFunctions[] =
 {
@@ -3490,10 +3454,10 @@ static const tcu::StaticFunctionLibrary::Entry s_deviceFunctions[] =
        VK_NULL_FUNC_ENTRY(vkFlushMappedMemoryRanges,                                                   flushMappedMemoryRanges),
        VK_NULL_FUNC_ENTRY(vkInvalidateMappedMemoryRanges,                                              invalidateMappedMemoryRanges),
        VK_NULL_FUNC_ENTRY(vkGetDeviceMemoryCommitment,                                                 getDeviceMemoryCommitment),
-       VK_NULL_FUNC_ENTRY(vkBindBufferMemory,                                                                  bindBufferMemory),
-       VK_NULL_FUNC_ENTRY(vkBindImageMemory,                                                                   bindImageMemory),
        VK_NULL_FUNC_ENTRY(vkGetBufferMemoryRequirements,                                               getBufferMemoryRequirements),
+       VK_NULL_FUNC_ENTRY(vkBindBufferMemory,                                                                  bindBufferMemory),
        VK_NULL_FUNC_ENTRY(vkGetImageMemoryRequirements,                                                getImageMemoryRequirements),
+       VK_NULL_FUNC_ENTRY(vkBindImageMemory,                                                                   bindImageMemory),
        VK_NULL_FUNC_ENTRY(vkGetImageSparseMemoryRequirements,                                  getImageSparseMemoryRequirements),
        VK_NULL_FUNC_ENTRY(vkQueueBindSparse,                                                                   queueBindSparse),
        VK_NULL_FUNC_ENTRY(vkCreateFence,                                                                               createFence),
@@ -3511,6 +3475,7 @@ static const tcu::StaticFunctionLibrary::Entry s_deviceFunctions[] =
        VK_NULL_FUNC_ENTRY(vkCreateQueryPool,                                                                   createQueryPool),
        VK_NULL_FUNC_ENTRY(vkDestroyQueryPool,                                                                  destroyQueryPool),
        VK_NULL_FUNC_ENTRY(vkGetQueryPoolResults,                                                               getQueryPoolResults),
+       VK_NULL_FUNC_ENTRY(vkResetQueryPool,                                                                    resetQueryPool),
        VK_NULL_FUNC_ENTRY(vkCreateBuffer,                                                                              createBuffer),
        VK_NULL_FUNC_ENTRY(vkDestroyBuffer,                                                                             destroyBuffer),
        VK_NULL_FUNC_ENTRY(vkCreateBufferView,                                                                  createBufferView),
@@ -3528,6 +3493,7 @@ static const tcu::StaticFunctionLibrary::Entry s_deviceFunctions[] =
        VK_NULL_FUNC_ENTRY(vkMergePipelineCaches,                                                               mergePipelineCaches),
        VK_NULL_FUNC_ENTRY(vkCreateGraphicsPipelines,                                                   createGraphicsPipelines),
        VK_NULL_FUNC_ENTRY(vkCreateComputePipelines,                                                    createComputePipelines),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI,             getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI),
        VK_NULL_FUNC_ENTRY(vkDestroyPipeline,                                                                   destroyPipeline),
        VK_NULL_FUNC_ENTRY(vkCreatePipelineLayout,                                                              createPipelineLayout),
        VK_NULL_FUNC_ENTRY(vkDestroyPipelineLayout,                                                             destroyPipelineLayout),
@@ -3569,10 +3535,13 @@ static const tcu::StaticFunctionLibrary::Entry s_deviceFunctions[] =
        VK_NULL_FUNC_ENTRY(vkCmdBindVertexBuffers,                                                              cmdBindVertexBuffers),
        VK_NULL_FUNC_ENTRY(vkCmdDraw,                                                                                   cmdDraw),
        VK_NULL_FUNC_ENTRY(vkCmdDrawIndexed,                                                                    cmdDrawIndexed),
+       VK_NULL_FUNC_ENTRY(vkCmdDrawMultiEXT,                                                                   cmdDrawMultiEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdDrawMultiIndexedEXT,                                                    cmdDrawMultiIndexedEXT),
        VK_NULL_FUNC_ENTRY(vkCmdDrawIndirect,                                                                   cmdDrawIndirect),
        VK_NULL_FUNC_ENTRY(vkCmdDrawIndexedIndirect,                                                    cmdDrawIndexedIndirect),
        VK_NULL_FUNC_ENTRY(vkCmdDispatch,                                                                               cmdDispatch),
        VK_NULL_FUNC_ENTRY(vkCmdDispatchIndirect,                                                               cmdDispatchIndirect),
+       VK_NULL_FUNC_ENTRY(vkCmdSubpassShadingHUAWEI,                                                   cmdSubpassShadingHUAWEI),
        VK_NULL_FUNC_ENTRY(vkCmdCopyBuffer,                                                                             cmdCopyBuffer),
        VK_NULL_FUNC_ENTRY(vkCmdCopyImage,                                                                              cmdCopyImage),
        VK_NULL_FUNC_ENTRY(vkCmdBlitImage,                                                                              cmdBlitImage),
@@ -3590,6 +3559,8 @@ static const tcu::StaticFunctionLibrary::Entry s_deviceFunctions[] =
        VK_NULL_FUNC_ENTRY(vkCmdPipelineBarrier,                                                                cmdPipelineBarrier),
        VK_NULL_FUNC_ENTRY(vkCmdBeginQuery,                                                                             cmdBeginQuery),
        VK_NULL_FUNC_ENTRY(vkCmdEndQuery,                                                                               cmdEndQuery),
+       VK_NULL_FUNC_ENTRY(vkCmdBeginConditionalRenderingEXT,                                   cmdBeginConditionalRenderingEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdEndConditionalRenderingEXT,                                             cmdEndConditionalRenderingEXT),
        VK_NULL_FUNC_ENTRY(vkCmdResetQueryPool,                                                                 cmdResetQueryPool),
        VK_NULL_FUNC_ENTRY(vkCmdWriteTimestamp,                                                                 cmdWriteTimestamp),
        VK_NULL_FUNC_ENTRY(vkCmdCopyQueryPoolResults,                                                   cmdCopyQueryPoolResults),
@@ -3598,180 +3569,83 @@ static const tcu::StaticFunctionLibrary::Entry s_deviceFunctions[] =
        VK_NULL_FUNC_ENTRY(vkCmdNextSubpass,                                                                    cmdNextSubpass),
        VK_NULL_FUNC_ENTRY(vkCmdEndRenderPass,                                                                  cmdEndRenderPass),
        VK_NULL_FUNC_ENTRY(vkCmdExecuteCommands,                                                                cmdExecuteCommands),
-       VK_NULL_FUNC_ENTRY(vkBindBufferMemory2,                                                                 bindBufferMemory2),
-       VK_NULL_FUNC_ENTRY(vkBindImageMemory2,                                                                  bindImageMemory2),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupPeerMemoryFeatures,                                  getDeviceGroupPeerMemoryFeatures),
-       VK_NULL_FUNC_ENTRY(vkCmdSetDeviceMask,                                                                  cmdSetDeviceMask),
-       VK_NULL_FUNC_ENTRY(vkCmdDispatchBase,                                                                   cmdDispatchBase),
-       VK_NULL_FUNC_ENTRY(vkGetImageMemoryRequirements2,                                               getImageMemoryRequirements2),
-       VK_NULL_FUNC_ENTRY(vkGetBufferMemoryRequirements2,                                              getBufferMemoryRequirements2),
-       VK_NULL_FUNC_ENTRY(vkGetImageSparseMemoryRequirements2,                                 getImageSparseMemoryRequirements2),
-       VK_NULL_FUNC_ENTRY(vkTrimCommandPool,                                                                   trimCommandPool),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceQueue2,                                                                   getDeviceQueue2),
-       VK_NULL_FUNC_ENTRY(vkCreateSamplerYcbcrConversion,                                              createSamplerYcbcrConversion),
-       VK_NULL_FUNC_ENTRY(vkDestroySamplerYcbcrConversion,                                             destroySamplerYcbcrConversion),
-       VK_NULL_FUNC_ENTRY(vkCreateDescriptorUpdateTemplate,                                    createDescriptorUpdateTemplate),
-       VK_NULL_FUNC_ENTRY(vkDestroyDescriptorUpdateTemplate,                                   destroyDescriptorUpdateTemplate),
-       VK_NULL_FUNC_ENTRY(vkUpdateDescriptorSetWithTemplate,                                   updateDescriptorSetWithTemplate),
-       VK_NULL_FUNC_ENTRY(vkGetDescriptorSetLayoutSupport,                                             getDescriptorSetLayoutSupport),
-       VK_NULL_FUNC_ENTRY(vkCmdDrawIndirectCount,                                                              cmdDrawIndirectCount),
-       VK_NULL_FUNC_ENTRY(vkCmdDrawIndexedIndirectCount,                                               cmdDrawIndexedIndirectCount),
-       VK_NULL_FUNC_ENTRY(vkCreateRenderPass2,                                                                 createRenderPass2),
-       VK_NULL_FUNC_ENTRY(vkCmdBeginRenderPass2,                                                               cmdBeginRenderPass2),
-       VK_NULL_FUNC_ENTRY(vkCmdNextSubpass2,                                                                   cmdNextSubpass2),
-       VK_NULL_FUNC_ENTRY(vkCmdEndRenderPass2,                                                                 cmdEndRenderPass2),
-       VK_NULL_FUNC_ENTRY(vkResetQueryPool,                                                                    resetQueryPool),
-       VK_NULL_FUNC_ENTRY(vkGetSemaphoreCounterValue,                                                  getSemaphoreCounterValue),
-       VK_NULL_FUNC_ENTRY(vkWaitSemaphores,                                                                    waitSemaphores),
-       VK_NULL_FUNC_ENTRY(vkSignalSemaphore,                                                                   signalSemaphore),
-       VK_NULL_FUNC_ENTRY(vkGetBufferDeviceAddress,                                                    getBufferDeviceAddress),
-       VK_NULL_FUNC_ENTRY(vkGetBufferOpaqueCaptureAddress,                                             getBufferOpaqueCaptureAddress),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceMemoryOpaqueCaptureAddress,                               getDeviceMemoryOpaqueCaptureAddress),
-       VK_NULL_FUNC_ENTRY(vkCreatePrivateDataSlot,                                                             createPrivateDataSlot),
-       VK_NULL_FUNC_ENTRY(vkDestroyPrivateDataSlot,                                                    destroyPrivateDataSlot),
-       VK_NULL_FUNC_ENTRY(vkSetPrivateData,                                                                    setPrivateData),
-       VK_NULL_FUNC_ENTRY(vkGetPrivateData,                                                                    getPrivateData),
-       VK_NULL_FUNC_ENTRY(vkCmdSetEvent2,                                                                              cmdSetEvent2),
-       VK_NULL_FUNC_ENTRY(vkCmdResetEvent2,                                                                    cmdResetEvent2),
-       VK_NULL_FUNC_ENTRY(vkCmdWaitEvents2,                                                                    cmdWaitEvents2),
-       VK_NULL_FUNC_ENTRY(vkCmdPipelineBarrier2,                                                               cmdPipelineBarrier2),
-       VK_NULL_FUNC_ENTRY(vkCmdWriteTimestamp2,                                                                cmdWriteTimestamp2),
-       VK_NULL_FUNC_ENTRY(vkQueueSubmit2,                                                                              queueSubmit2),
-       VK_NULL_FUNC_ENTRY(vkCmdCopyBuffer2,                                                                    cmdCopyBuffer2),
-       VK_NULL_FUNC_ENTRY(vkCmdCopyImage2,                                                                             cmdCopyImage2),
-       VK_NULL_FUNC_ENTRY(vkCmdCopyBufferToImage2,                                                             cmdCopyBufferToImage2),
-       VK_NULL_FUNC_ENTRY(vkCmdCopyImageToBuffer2,                                                             cmdCopyImageToBuffer2),
-       VK_NULL_FUNC_ENTRY(vkCmdBlitImage2,                                                                             cmdBlitImage2),
-       VK_NULL_FUNC_ENTRY(vkCmdResolveImage2,                                                                  cmdResolveImage2),
-       VK_NULL_FUNC_ENTRY(vkCmdBeginRendering,                                                                 cmdBeginRendering),
-       VK_NULL_FUNC_ENTRY(vkCmdEndRendering,                                                                   cmdEndRendering),
-       VK_NULL_FUNC_ENTRY(vkCmdSetCullMode,                                                                    cmdSetCullMode),
-       VK_NULL_FUNC_ENTRY(vkCmdSetFrontFace,                                                                   cmdSetFrontFace),
-       VK_NULL_FUNC_ENTRY(vkCmdSetPrimitiveTopology,                                                   cmdSetPrimitiveTopology),
-       VK_NULL_FUNC_ENTRY(vkCmdSetViewportWithCount,                                                   cmdSetViewportWithCount),
-       VK_NULL_FUNC_ENTRY(vkCmdSetScissorWithCount,                                                    cmdSetScissorWithCount),
-       VK_NULL_FUNC_ENTRY(vkCmdBindVertexBuffers2,                                                             cmdBindVertexBuffers2),
-       VK_NULL_FUNC_ENTRY(vkCmdSetDepthTestEnable,                                                             cmdSetDepthTestEnable),
-       VK_NULL_FUNC_ENTRY(vkCmdSetDepthWriteEnable,                                                    cmdSetDepthWriteEnable),
-       VK_NULL_FUNC_ENTRY(vkCmdSetDepthCompareOp,                                                              cmdSetDepthCompareOp),
-       VK_NULL_FUNC_ENTRY(vkCmdSetDepthBoundsTestEnable,                                               cmdSetDepthBoundsTestEnable),
-       VK_NULL_FUNC_ENTRY(vkCmdSetStencilTestEnable,                                                   cmdSetStencilTestEnable),
-       VK_NULL_FUNC_ENTRY(vkCmdSetStencilOp,                                                                   cmdSetStencilOp),
-       VK_NULL_FUNC_ENTRY(vkCmdSetRasterizerDiscardEnable,                                             cmdSetRasterizerDiscardEnable),
-       VK_NULL_FUNC_ENTRY(vkCmdSetDepthBiasEnable,                                                             cmdSetDepthBiasEnable),
-       VK_NULL_FUNC_ENTRY(vkCmdSetPrimitiveRestartEnable,                                              cmdSetPrimitiveRestartEnable),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceBufferMemoryRequirements,                                 getDeviceBufferMemoryRequirements),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceImageMemoryRequirements,                                  getDeviceImageMemoryRequirements),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceImageSparseMemoryRequirements,                    getDeviceImageSparseMemoryRequirements),
+       VK_NULL_FUNC_ENTRY(vkCreateSharedSwapchainsKHR,                                                 createSharedSwapchainsKHR),
        VK_NULL_FUNC_ENTRY(vkCreateSwapchainKHR,                                                                createSwapchainKHR),
        VK_NULL_FUNC_ENTRY(vkDestroySwapchainKHR,                                                               destroySwapchainKHR),
        VK_NULL_FUNC_ENTRY(vkGetSwapchainImagesKHR,                                                             getSwapchainImagesKHR),
        VK_NULL_FUNC_ENTRY(vkAcquireNextImageKHR,                                                               acquireNextImageKHR),
        VK_NULL_FUNC_ENTRY(vkQueuePresentKHR,                                                                   queuePresentKHR),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupPresentCapabilitiesKHR,                              getDeviceGroupPresentCapabilitiesKHR),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupSurfacePresentModesKHR,                              getDeviceGroupSurfacePresentModesKHR),
-       VK_NULL_FUNC_ENTRY(vkAcquireNextImage2KHR,                                                              acquireNextImage2KHR),
-       VK_NULL_FUNC_ENTRY(vkCreateSharedSwapchainsKHR,                                                 createSharedSwapchainsKHR),
-       VK_NULL_FUNC_ENTRY(vkCmdBeginRenderingKHR,                                                              cmdBeginRendering),
-       VK_NULL_FUNC_ENTRY(vkCmdEndRenderingKHR,                                                                cmdEndRendering),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupPeerMemoryFeaturesKHR,                               getDeviceGroupPeerMemoryFeatures),
-       VK_NULL_FUNC_ENTRY(vkCmdSetDeviceMaskKHR,                                                               cmdSetDeviceMask),
-       VK_NULL_FUNC_ENTRY(vkCmdDispatchBaseKHR,                                                                cmdDispatchBase),
-       VK_NULL_FUNC_ENTRY(vkTrimCommandPoolKHR,                                                                trimCommandPool),
-       VK_NULL_FUNC_ENTRY(vkGetMemoryFdKHR,                                                                    getMemoryFdKHR),
-       VK_NULL_FUNC_ENTRY(vkGetMemoryFdPropertiesKHR,                                                  getMemoryFdPropertiesKHR),
-       VK_NULL_FUNC_ENTRY(vkImportSemaphoreFdKHR,                                                              importSemaphoreFdKHR),
-       VK_NULL_FUNC_ENTRY(vkGetSemaphoreFdKHR,                                                                 getSemaphoreFdKHR),
-       VK_NULL_FUNC_ENTRY(vkCmdPushDescriptorSetKHR,                                                   cmdPushDescriptorSetKHR),
-       VK_NULL_FUNC_ENTRY(vkCmdPushDescriptorSetWithTemplateKHR,                               cmdPushDescriptorSetWithTemplateKHR),
-       VK_NULL_FUNC_ENTRY(vkCreateDescriptorUpdateTemplateKHR,                                 createDescriptorUpdateTemplate),
-       VK_NULL_FUNC_ENTRY(vkDestroyDescriptorUpdateTemplateKHR,                                destroyDescriptorUpdateTemplate),
-       VK_NULL_FUNC_ENTRY(vkUpdateDescriptorSetWithTemplateKHR,                                updateDescriptorSetWithTemplate),
-       VK_NULL_FUNC_ENTRY(vkCreateRenderPass2KHR,                                                              createRenderPass2),
-       VK_NULL_FUNC_ENTRY(vkCmdBeginRenderPass2KHR,                                                    cmdBeginRenderPass2),
-       VK_NULL_FUNC_ENTRY(vkCmdNextSubpass2KHR,                                                                cmdNextSubpass2),
-       VK_NULL_FUNC_ENTRY(vkCmdEndRenderPass2KHR,                                                              cmdEndRenderPass2),
-       VK_NULL_FUNC_ENTRY(vkGetSwapchainStatusKHR,                                                             getSwapchainStatusKHR),
-       VK_NULL_FUNC_ENTRY(vkImportFenceFdKHR,                                                                  importFenceFdKHR),
-       VK_NULL_FUNC_ENTRY(vkGetFenceFdKHR,                                                                             getFenceFdKHR),
-       VK_NULL_FUNC_ENTRY(vkAcquireProfilingLockKHR,                                                   acquireProfilingLockKHR),
-       VK_NULL_FUNC_ENTRY(vkReleaseProfilingLockKHR,                                                   releaseProfilingLockKHR),
-       VK_NULL_FUNC_ENTRY(vkGetImageMemoryRequirements2KHR,                                    getImageMemoryRequirements2),
-       VK_NULL_FUNC_ENTRY(vkGetBufferMemoryRequirements2KHR,                                   getBufferMemoryRequirements2),
-       VK_NULL_FUNC_ENTRY(vkGetImageSparseMemoryRequirements2KHR,                              getImageSparseMemoryRequirements2),
-       VK_NULL_FUNC_ENTRY(vkCreateSamplerYcbcrConversionKHR,                                   createSamplerYcbcrConversion),
-       VK_NULL_FUNC_ENTRY(vkDestroySamplerYcbcrConversionKHR,                                  destroySamplerYcbcrConversion),
-       VK_NULL_FUNC_ENTRY(vkBindBufferMemory2KHR,                                                              bindBufferMemory2),
-       VK_NULL_FUNC_ENTRY(vkBindImageMemory2KHR,                                                               bindImageMemory2),
-       VK_NULL_FUNC_ENTRY(vkGetDescriptorSetLayoutSupportKHR,                                  getDescriptorSetLayoutSupport),
-       VK_NULL_FUNC_ENTRY(vkCmdDrawIndirectCountKHR,                                                   cmdDrawIndirectCount),
-       VK_NULL_FUNC_ENTRY(vkCmdDrawIndexedIndirectCountKHR,                                    cmdDrawIndexedIndirectCount),
-       VK_NULL_FUNC_ENTRY(vkGetSemaphoreCounterValueKHR,                                               getSemaphoreCounterValue),
-       VK_NULL_FUNC_ENTRY(vkWaitSemaphoresKHR,                                                                 waitSemaphores),
-       VK_NULL_FUNC_ENTRY(vkSignalSemaphoreKHR,                                                                signalSemaphore),
-       VK_NULL_FUNC_ENTRY(vkCmdSetFragmentShadingRateKHR,                                              cmdSetFragmentShadingRateKHR),
-       VK_NULL_FUNC_ENTRY(vkWaitForPresentKHR,                                                                 waitForPresentKHR),
-       VK_NULL_FUNC_ENTRY(vkGetBufferDeviceAddressKHR,                                                 getBufferDeviceAddress),
-       VK_NULL_FUNC_ENTRY(vkGetBufferOpaqueCaptureAddressKHR,                                  getBufferOpaqueCaptureAddress),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceMemoryOpaqueCaptureAddressKHR,                    getDeviceMemoryOpaqueCaptureAddress),
-       VK_NULL_FUNC_ENTRY(vkCreateDeferredOperationKHR,                                                createDeferredOperationKHR),
-       VK_NULL_FUNC_ENTRY(vkDestroyDeferredOperationKHR,                                               destroyDeferredOperationKHR),
-       VK_NULL_FUNC_ENTRY(vkGetDeferredOperationMaxConcurrencyKHR,                             getDeferredOperationMaxConcurrencyKHR),
-       VK_NULL_FUNC_ENTRY(vkGetDeferredOperationResultKHR,                                             getDeferredOperationResultKHR),
-       VK_NULL_FUNC_ENTRY(vkDeferredOperationJoinKHR,                                                  deferredOperationJoinKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPipelineExecutablePropertiesKHR,                                getPipelineExecutablePropertiesKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPipelineExecutableStatisticsKHR,                                getPipelineExecutableStatisticsKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPipelineExecutableInternalRepresentationsKHR,   getPipelineExecutableInternalRepresentationsKHR),
-       VK_NULL_FUNC_ENTRY(vkCmdSetEvent2KHR,                                                                   cmdSetEvent2),
-       VK_NULL_FUNC_ENTRY(vkCmdResetEvent2KHR,                                                                 cmdResetEvent2),
-       VK_NULL_FUNC_ENTRY(vkCmdWaitEvents2KHR,                                                                 cmdWaitEvents2),
-       VK_NULL_FUNC_ENTRY(vkCmdPipelineBarrier2KHR,                                                    cmdPipelineBarrier2),
-       VK_NULL_FUNC_ENTRY(vkCmdWriteTimestamp2KHR,                                                             cmdWriteTimestamp2),
-       VK_NULL_FUNC_ENTRY(vkQueueSubmit2KHR,                                                                   queueSubmit2),
-       VK_NULL_FUNC_ENTRY(vkCmdWriteBufferMarker2AMD,                                                  cmdWriteBufferMarker2AMD),
-       VK_NULL_FUNC_ENTRY(vkGetQueueCheckpointData2NV,                                                 getQueueCheckpointData2NV),
-       VK_NULL_FUNC_ENTRY(vkCmdCopyBuffer2KHR,                                                                 cmdCopyBuffer2),
-       VK_NULL_FUNC_ENTRY(vkCmdCopyImage2KHR,                                                                  cmdCopyImage2),
-       VK_NULL_FUNC_ENTRY(vkCmdCopyBufferToImage2KHR,                                                  cmdCopyBufferToImage2),
-       VK_NULL_FUNC_ENTRY(vkCmdCopyImageToBuffer2KHR,                                                  cmdCopyImageToBuffer2),
-       VK_NULL_FUNC_ENTRY(vkCmdBlitImage2KHR,                                                                  cmdBlitImage2),
-       VK_NULL_FUNC_ENTRY(vkCmdResolveImage2KHR,                                                               cmdResolveImage2),
-       VK_NULL_FUNC_ENTRY(vkCmdTraceRaysIndirect2KHR,                                                  cmdTraceRaysIndirect2KHR),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceBufferMemoryRequirementsKHR,                              getDeviceBufferMemoryRequirements),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceImageMemoryRequirementsKHR,                               getDeviceImageMemoryRequirements),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceImageSparseMemoryRequirementsKHR,                 getDeviceImageSparseMemoryRequirements),
-       VK_NULL_FUNC_ENTRY(vkDebugMarkerSetObjectTagEXT,                                                debugMarkerSetObjectTagEXT),
        VK_NULL_FUNC_ENTRY(vkDebugMarkerSetObjectNameEXT,                                               debugMarkerSetObjectNameEXT),
+       VK_NULL_FUNC_ENTRY(vkDebugMarkerSetObjectTagEXT,                                                debugMarkerSetObjectTagEXT),
        VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerBeginEXT,                                                    cmdDebugMarkerBeginEXT),
        VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerEndEXT,                                                              cmdDebugMarkerEndEXT),
        VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerInsertEXT,                                                   cmdDebugMarkerInsertEXT),
-       VK_NULL_FUNC_ENTRY(vkCmdBindTransformFeedbackBuffersEXT,                                cmdBindTransformFeedbackBuffersEXT),
-       VK_NULL_FUNC_ENTRY(vkCmdBeginTransformFeedbackEXT,                                              cmdBeginTransformFeedbackEXT),
-       VK_NULL_FUNC_ENTRY(vkCmdEndTransformFeedbackEXT,                                                cmdEndTransformFeedbackEXT),
-       VK_NULL_FUNC_ENTRY(vkCmdBeginQueryIndexedEXT,                                                   cmdBeginQueryIndexedEXT),
-       VK_NULL_FUNC_ENTRY(vkCmdEndQueryIndexedEXT,                                                             cmdEndQueryIndexedEXT),
-       VK_NULL_FUNC_ENTRY(vkCmdDrawIndirectByteCountEXT,                                               cmdDrawIndirectByteCountEXT),
-       VK_NULL_FUNC_ENTRY(vkCreateCuModuleNVX,                                                                 createCuModuleNVX),
-       VK_NULL_FUNC_ENTRY(vkCreateCuFunctionNVX,                                                               createCuFunctionNVX),
-       VK_NULL_FUNC_ENTRY(vkDestroyCuModuleNVX,                                                                destroyCuModuleNVX),
-       VK_NULL_FUNC_ENTRY(vkDestroyCuFunctionNVX,                                                              destroyCuFunctionNVX),
-       VK_NULL_FUNC_ENTRY(vkCmdCuLaunchKernelNVX,                                                              cmdCuLaunchKernelNVX),
-       VK_NULL_FUNC_ENTRY(vkGetImageViewHandleNVX,                                                             getImageViewHandleNVX),
-       VK_NULL_FUNC_ENTRY(vkGetImageViewAddressNVX,                                                    getImageViewAddressNVX),
-       VK_NULL_FUNC_ENTRY(vkCmdDrawIndirectCountAMD,                                                   cmdDrawIndirectCountAMD),
-       VK_NULL_FUNC_ENTRY(vkCmdDrawIndexedIndirectCountAMD,                                    cmdDrawIndexedIndirectCountAMD),
-       VK_NULL_FUNC_ENTRY(vkGetShaderInfoAMD,                                                                  getShaderInfoAMD),
-       VK_NULL_FUNC_ENTRY(vkCmdBeginConditionalRenderingEXT,                                   cmdBeginConditionalRenderingEXT),
-       VK_NULL_FUNC_ENTRY(vkCmdEndConditionalRenderingEXT,                                             cmdEndConditionalRenderingEXT),
-       VK_NULL_FUNC_ENTRY(vkCmdSetViewportWScalingNV,                                                  cmdSetViewportWScalingNV),
+       VK_NULL_FUNC_ENTRY(vkGetMemoryWin32HandleNV,                                                    getMemoryWin32HandleNV),
+       VK_NULL_FUNC_ENTRY(vkCmdExecuteGeneratedCommandsNV,                                             cmdExecuteGeneratedCommandsNV),
+       VK_NULL_FUNC_ENTRY(vkCmdPreprocessGeneratedCommandsNV,                                  cmdPreprocessGeneratedCommandsNV),
+       VK_NULL_FUNC_ENTRY(vkCmdBindPipelineShaderGroupNV,                                              cmdBindPipelineShaderGroupNV),
+       VK_NULL_FUNC_ENTRY(vkGetGeneratedCommandsMemoryRequirementsNV,                  getGeneratedCommandsMemoryRequirementsNV),
+       VK_NULL_FUNC_ENTRY(vkCreateIndirectCommandsLayoutNV,                                    createIndirectCommandsLayoutNV),
+       VK_NULL_FUNC_ENTRY(vkDestroyIndirectCommandsLayoutNV,                                   destroyIndirectCommandsLayoutNV),
+       VK_NULL_FUNC_ENTRY(vkCmdPushDescriptorSetKHR,                                                   cmdPushDescriptorSetKHR),
+       VK_NULL_FUNC_ENTRY(vkTrimCommandPool,                                                                   trimCommandPool),
+       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(vkGetMemoryZirconHandleFUCHSIA,                                              getMemoryZirconHandleFUCHSIA),
+       VK_NULL_FUNC_ENTRY(vkGetMemoryZirconHandlePropertiesFUCHSIA,                    getMemoryZirconHandlePropertiesFUCHSIA),
+       VK_NULL_FUNC_ENTRY(vkGetMemoryRemoteAddressNV,                                                  getMemoryRemoteAddressNV),
+       VK_NULL_FUNC_ENTRY(vkGetSemaphoreWin32HandleKHR,                                                getSemaphoreWin32HandleKHR),
+       VK_NULL_FUNC_ENTRY(vkImportSemaphoreWin32HandleKHR,                                             importSemaphoreWin32HandleKHR),
+       VK_NULL_FUNC_ENTRY(vkGetSemaphoreFdKHR,                                                                 getSemaphoreFdKHR),
+       VK_NULL_FUNC_ENTRY(vkImportSemaphoreFdKHR,                                                              importSemaphoreFdKHR),
+       VK_NULL_FUNC_ENTRY(vkGetSemaphoreZirconHandleFUCHSIA,                                   getSemaphoreZirconHandleFUCHSIA),
+       VK_NULL_FUNC_ENTRY(vkImportSemaphoreZirconHandleFUCHSIA,                                importSemaphoreZirconHandleFUCHSIA),
+       VK_NULL_FUNC_ENTRY(vkGetFenceWin32HandleKHR,                                                    getFenceWin32HandleKHR),
+       VK_NULL_FUNC_ENTRY(vkImportFenceWin32HandleKHR,                                                 importFenceWin32HandleKHR),
+       VK_NULL_FUNC_ENTRY(vkGetFenceFdKHR,                                                                             getFenceFdKHR),
+       VK_NULL_FUNC_ENTRY(vkImportFenceFdKHR,                                                                  importFenceFdKHR),
        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(vkGetDeviceGroupPeerMemoryFeatures,                                  getDeviceGroupPeerMemoryFeatures),
+       VK_NULL_FUNC_ENTRY(vkBindBufferMemory2,                                                                 bindBufferMemory2),
+       VK_NULL_FUNC_ENTRY(vkBindImageMemory2,                                                                  bindImageMemory2),
+       VK_NULL_FUNC_ENTRY(vkCmdSetDeviceMask,                                                                  cmdSetDeviceMask),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupPresentCapabilitiesKHR,                              getDeviceGroupPresentCapabilitiesKHR),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupSurfacePresentModesKHR,                              getDeviceGroupSurfacePresentModesKHR),
+       VK_NULL_FUNC_ENTRY(vkAcquireNextImage2KHR,                                                              acquireNextImage2KHR),
+       VK_NULL_FUNC_ENTRY(vkCmdDispatchBase,                                                                   cmdDispatchBase),
+       VK_NULL_FUNC_ENTRY(vkCreateDescriptorUpdateTemplate,                                    createDescriptorUpdateTemplate),
+       VK_NULL_FUNC_ENTRY(vkDestroyDescriptorUpdateTemplate,                                   destroyDescriptorUpdateTemplate),
+       VK_NULL_FUNC_ENTRY(vkUpdateDescriptorSetWithTemplate,                                   updateDescriptorSetWithTemplate),
+       VK_NULL_FUNC_ENTRY(vkCmdPushDescriptorSetWithTemplateKHR,                               cmdPushDescriptorSetWithTemplateKHR),
+       VK_NULL_FUNC_ENTRY(vkSetHdrMetadataEXT,                                                                 setHdrMetadataEXT),
+       VK_NULL_FUNC_ENTRY(vkGetSwapchainStatusKHR,                                                             getSwapchainStatusKHR),
        VK_NULL_FUNC_ENTRY(vkGetRefreshCycleDurationGOOGLE,                                             getRefreshCycleDurationGOOGLE),
        VK_NULL_FUNC_ENTRY(vkGetPastPresentationTimingGOOGLE,                                   getPastPresentationTimingGOOGLE),
+       VK_NULL_FUNC_ENTRY(vkCmdSetViewportWScalingNV,                                                  cmdSetViewportWScalingNV),
        VK_NULL_FUNC_ENTRY(vkCmdSetDiscardRectangleEXT,                                                 cmdSetDiscardRectangleEXT),
-       VK_NULL_FUNC_ENTRY(vkSetHdrMetadataEXT,                                                                 setHdrMetadataEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdSetSampleLocationsEXT,                                                  cmdSetSampleLocationsEXT),
+       VK_NULL_FUNC_ENTRY(vkGetBufferMemoryRequirements2,                                              getBufferMemoryRequirements2),
+       VK_NULL_FUNC_ENTRY(vkGetImageMemoryRequirements2,                                               getImageMemoryRequirements2),
+       VK_NULL_FUNC_ENTRY(vkGetImageSparseMemoryRequirements2,                                 getImageSparseMemoryRequirements2),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceBufferMemoryRequirements,                                 getDeviceBufferMemoryRequirements),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceImageMemoryRequirements,                                  getDeviceImageMemoryRequirements),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceImageSparseMemoryRequirements,                    getDeviceImageSparseMemoryRequirements),
+       VK_NULL_FUNC_ENTRY(vkCreateSamplerYcbcrConversion,                                              createSamplerYcbcrConversion),
+       VK_NULL_FUNC_ENTRY(vkDestroySamplerYcbcrConversion,                                             destroySamplerYcbcrConversion),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceQueue2,                                                                   getDeviceQueue2),
+       VK_NULL_FUNC_ENTRY(vkCreateValidationCacheEXT,                                                  createValidationCacheEXT),
+       VK_NULL_FUNC_ENTRY(vkDestroyValidationCacheEXT,                                                 destroyValidationCacheEXT),
+       VK_NULL_FUNC_ENTRY(vkGetValidationCacheDataEXT,                                                 getValidationCacheDataEXT),
+       VK_NULL_FUNC_ENTRY(vkMergeValidationCachesEXT,                                                  mergeValidationCachesEXT),
+       VK_NULL_FUNC_ENTRY(vkGetDescriptorSetLayoutSupport,                                             getDescriptorSetLayoutSupport),
+       VK_NULL_FUNC_ENTRY(vkGetShaderInfoAMD,                                                                  getShaderInfoAMD),
+       VK_NULL_FUNC_ENTRY(vkSetLocalDimmingAMD,                                                                setLocalDimmingAMD),
+       VK_NULL_FUNC_ENTRY(vkGetCalibratedTimestampsEXT,                                                getCalibratedTimestampsEXT),
        VK_NULL_FUNC_ENTRY(vkSetDebugUtilsObjectNameEXT,                                                setDebugUtilsObjectNameEXT),
        VK_NULL_FUNC_ENTRY(vkSetDebugUtilsObjectTagEXT,                                                 setDebugUtilsObjectTagEXT),
        VK_NULL_FUNC_ENTRY(vkQueueBeginDebugUtilsLabelEXT,                                              queueBeginDebugUtilsLabelEXT),
@@ -3780,37 +3654,74 @@ static const tcu::StaticFunctionLibrary::Entry s_deviceFunctions[] =
        VK_NULL_FUNC_ENTRY(vkCmdBeginDebugUtilsLabelEXT,                                                cmdBeginDebugUtilsLabelEXT),
        VK_NULL_FUNC_ENTRY(vkCmdEndDebugUtilsLabelEXT,                                                  cmdEndDebugUtilsLabelEXT),
        VK_NULL_FUNC_ENTRY(vkCmdInsertDebugUtilsLabelEXT,                                               cmdInsertDebugUtilsLabelEXT),
-       VK_NULL_FUNC_ENTRY(vkCmdSetSampleLocationsEXT,                                                  cmdSetSampleLocationsEXT),
-       VK_NULL_FUNC_ENTRY(vkGetImageDrmFormatModifierPropertiesEXT,                    getImageDrmFormatModifierPropertiesEXT),
-       VK_NULL_FUNC_ENTRY(vkCreateValidationCacheEXT,                                                  createValidationCacheEXT),
-       VK_NULL_FUNC_ENTRY(vkDestroyValidationCacheEXT,                                                 destroyValidationCacheEXT),
-       VK_NULL_FUNC_ENTRY(vkMergeValidationCachesEXT,                                                  mergeValidationCachesEXT),
-       VK_NULL_FUNC_ENTRY(vkGetValidationCacheDataEXT,                                                 getValidationCacheDataEXT),
+       VK_NULL_FUNC_ENTRY(vkGetMemoryHostPointerPropertiesEXT,                                 getMemoryHostPointerPropertiesEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdWriteBufferMarkerAMD,                                                   cmdWriteBufferMarkerAMD),
+       VK_NULL_FUNC_ENTRY(vkCreateRenderPass2,                                                                 createRenderPass2),
+       VK_NULL_FUNC_ENTRY(vkCmdBeginRenderPass2,                                                               cmdBeginRenderPass2),
+       VK_NULL_FUNC_ENTRY(vkCmdNextSubpass2,                                                                   cmdNextSubpass2),
+       VK_NULL_FUNC_ENTRY(vkCmdEndRenderPass2,                                                                 cmdEndRenderPass2),
+       VK_NULL_FUNC_ENTRY(vkGetSemaphoreCounterValue,                                                  getSemaphoreCounterValue),
+       VK_NULL_FUNC_ENTRY(vkWaitSemaphores,                                                                    waitSemaphores),
+       VK_NULL_FUNC_ENTRY(vkSignalSemaphore,                                                                   signalSemaphore),
+       VK_NULL_FUNC_ENTRY(vkGetAndroidHardwareBufferPropertiesANDROID,                 getAndroidHardwareBufferPropertiesANDROID),
+       VK_NULL_FUNC_ENTRY(vkGetMemoryAndroidHardwareBufferANDROID,                             getMemoryAndroidHardwareBufferANDROID),
+       VK_NULL_FUNC_ENTRY(vkCmdDrawIndirectCount,                                                              cmdDrawIndirectCount),
+       VK_NULL_FUNC_ENTRY(vkCmdDrawIndexedIndirectCount,                                               cmdDrawIndexedIndirectCount),
+       VK_NULL_FUNC_ENTRY(vkCmdSetCheckpointNV,                                                                cmdSetCheckpointNV),
+       VK_NULL_FUNC_ENTRY(vkGetQueueCheckpointDataNV,                                                  getQueueCheckpointDataNV),
+       VK_NULL_FUNC_ENTRY(vkCmdBindTransformFeedbackBuffersEXT,                                cmdBindTransformFeedbackBuffersEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdBeginTransformFeedbackEXT,                                              cmdBeginTransformFeedbackEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdEndTransformFeedbackEXT,                                                cmdEndTransformFeedbackEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdBeginQueryIndexedEXT,                                                   cmdBeginQueryIndexedEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdEndQueryIndexedEXT,                                                             cmdEndQueryIndexedEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdDrawIndirectByteCountEXT,                                               cmdDrawIndirectByteCountEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdSetExclusiveScissorNV,                                                  cmdSetExclusiveScissorNV),
        VK_NULL_FUNC_ENTRY(vkCmdBindShadingRateImageNV,                                                 cmdBindShadingRateImageNV),
        VK_NULL_FUNC_ENTRY(vkCmdSetViewportShadingRatePaletteNV,                                cmdSetViewportShadingRatePaletteNV),
        VK_NULL_FUNC_ENTRY(vkCmdSetCoarseSampleOrderNV,                                                 cmdSetCoarseSampleOrderNV),
+       VK_NULL_FUNC_ENTRY(vkCmdDrawMeshTasksNV,                                                                cmdDrawMeshTasksNV),
+       VK_NULL_FUNC_ENTRY(vkCmdDrawMeshTasksIndirectNV,                                                cmdDrawMeshTasksIndirectNV),
+       VK_NULL_FUNC_ENTRY(vkCmdDrawMeshTasksIndirectCountNV,                                   cmdDrawMeshTasksIndirectCountNV),
+       VK_NULL_FUNC_ENTRY(vkCompileDeferredNV,                                                                 compileDeferredNV),
        VK_NULL_FUNC_ENTRY(vkCreateAccelerationStructureNV,                                             createAccelerationStructureNV),
+       VK_NULL_FUNC_ENTRY(vkCmdBindInvocationMaskHUAWEI,                                               cmdBindInvocationMaskHUAWEI),
+       VK_NULL_FUNC_ENTRY(vkDestroyAccelerationStructureKHR,                                   destroyAccelerationStructureKHR),
        VK_NULL_FUNC_ENTRY(vkDestroyAccelerationStructureNV,                                    destroyAccelerationStructureNV),
        VK_NULL_FUNC_ENTRY(vkGetAccelerationStructureMemoryRequirementsNV,              getAccelerationStructureMemoryRequirementsNV),
        VK_NULL_FUNC_ENTRY(vkBindAccelerationStructureMemoryNV,                                 bindAccelerationStructureMemoryNV),
-       VK_NULL_FUNC_ENTRY(vkCmdBuildAccelerationStructureNV,                                   cmdBuildAccelerationStructureNV),
        VK_NULL_FUNC_ENTRY(vkCmdCopyAccelerationStructureNV,                                    cmdCopyAccelerationStructureNV),
+       VK_NULL_FUNC_ENTRY(vkCmdCopyAccelerationStructureKHR,                                   cmdCopyAccelerationStructureKHR),
+       VK_NULL_FUNC_ENTRY(vkCopyAccelerationStructureKHR,                                              copyAccelerationStructureKHR),
+       VK_NULL_FUNC_ENTRY(vkCmdCopyAccelerationStructureToMemoryKHR,                   cmdCopyAccelerationStructureToMemoryKHR),
+       VK_NULL_FUNC_ENTRY(vkCopyAccelerationStructureToMemoryKHR,                              copyAccelerationStructureToMemoryKHR),
+       VK_NULL_FUNC_ENTRY(vkCmdCopyMemoryToAccelerationStructureKHR,                   cmdCopyMemoryToAccelerationStructureKHR),
+       VK_NULL_FUNC_ENTRY(vkCopyMemoryToAccelerationStructureKHR,                              copyMemoryToAccelerationStructureKHR),
+       VK_NULL_FUNC_ENTRY(vkCmdWriteAccelerationStructuresPropertiesKHR,               cmdWriteAccelerationStructuresPropertiesKHR),
+       VK_NULL_FUNC_ENTRY(vkCmdWriteAccelerationStructuresPropertiesNV,                cmdWriteAccelerationStructuresPropertiesNV),
+       VK_NULL_FUNC_ENTRY(vkCmdBuildAccelerationStructureNV,                                   cmdBuildAccelerationStructureNV),
+       VK_NULL_FUNC_ENTRY(vkWriteAccelerationStructuresPropertiesKHR,                  writeAccelerationStructuresPropertiesKHR),
+       VK_NULL_FUNC_ENTRY(vkCmdTraceRaysKHR,                                                                   cmdTraceRaysKHR),
        VK_NULL_FUNC_ENTRY(vkCmdTraceRaysNV,                                                                    cmdTraceRaysNV),
-       VK_NULL_FUNC_ENTRY(vkCreateRayTracingPipelinesNV,                                               createRayTracingPipelinesNV),
        VK_NULL_FUNC_ENTRY(vkGetRayTracingShaderGroupHandlesKHR,                                getRayTracingShaderGroupHandlesKHR),
-       VK_NULL_FUNC_ENTRY(vkGetRayTracingShaderGroupHandlesNV,                                 getRayTracingShaderGroupHandlesNV),
+       VK_NULL_FUNC_ENTRY(vkGetRayTracingCaptureReplayShaderGroupHandlesKHR,   getRayTracingCaptureReplayShaderGroupHandlesKHR),
        VK_NULL_FUNC_ENTRY(vkGetAccelerationStructureHandleNV,                                  getAccelerationStructureHandleNV),
-       VK_NULL_FUNC_ENTRY(vkCmdWriteAccelerationStructuresPropertiesNV,                cmdWriteAccelerationStructuresPropertiesNV),
-       VK_NULL_FUNC_ENTRY(vkCompileDeferredNV,                                                                 compileDeferredNV),
-       VK_NULL_FUNC_ENTRY(vkGetMemoryHostPointerPropertiesEXT,                                 getMemoryHostPointerPropertiesEXT),
-       VK_NULL_FUNC_ENTRY(vkCmdWriteBufferMarkerAMD,                                                   cmdWriteBufferMarkerAMD),
-       VK_NULL_FUNC_ENTRY(vkGetCalibratedTimestampsEXT,                                                getCalibratedTimestampsEXT),
-       VK_NULL_FUNC_ENTRY(vkCmdDrawMeshTasksNV,                                                                cmdDrawMeshTasksNV),
-       VK_NULL_FUNC_ENTRY(vkCmdDrawMeshTasksIndirectNV,                                                cmdDrawMeshTasksIndirectNV),
-       VK_NULL_FUNC_ENTRY(vkCmdDrawMeshTasksIndirectCountNV,                                   cmdDrawMeshTasksIndirectCountNV),
-       VK_NULL_FUNC_ENTRY(vkCmdSetExclusiveScissorNV,                                                  cmdSetExclusiveScissorNV),
-       VK_NULL_FUNC_ENTRY(vkCmdSetCheckpointNV,                                                                cmdSetCheckpointNV),
-       VK_NULL_FUNC_ENTRY(vkGetQueueCheckpointDataNV,                                                  getQueueCheckpointDataNV),
+       VK_NULL_FUNC_ENTRY(vkCreateRayTracingPipelinesNV,                                               createRayTracingPipelinesNV),
+       VK_NULL_FUNC_ENTRY(vkCreateRayTracingPipelinesKHR,                                              createRayTracingPipelinesKHR),
+       VK_NULL_FUNC_ENTRY(vkCmdTraceRaysIndirectKHR,                                                   cmdTraceRaysIndirectKHR),
+       VK_NULL_FUNC_ENTRY(vkCmdTraceRaysIndirect2KHR,                                                  cmdTraceRaysIndirect2KHR),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceAccelerationStructureCompatibilityKHR,    getDeviceAccelerationStructureCompatibilityKHR),
+       VK_NULL_FUNC_ENTRY(vkGetRayTracingShaderGroupStackSizeKHR,                              getRayTracingShaderGroupStackSizeKHR),
+       VK_NULL_FUNC_ENTRY(vkCmdSetRayTracingPipelineStackSizeKHR,                              cmdSetRayTracingPipelineStackSizeKHR),
+       VK_NULL_FUNC_ENTRY(vkGetImageViewHandleNVX,                                                             getImageViewHandleNVX),
+       VK_NULL_FUNC_ENTRY(vkGetImageViewAddressNVX,                                                    getImageViewAddressNVX),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupSurfacePresentModes2EXT,                             getDeviceGroupSurfacePresentModes2EXT),
+       VK_NULL_FUNC_ENTRY(vkAcquireFullScreenExclusiveModeEXT,                                 acquireFullScreenExclusiveModeEXT),
+       VK_NULL_FUNC_ENTRY(vkReleaseFullScreenExclusiveModeEXT,                                 releaseFullScreenExclusiveModeEXT),
+       VK_NULL_FUNC_ENTRY(vkAcquireProfilingLockKHR,                                                   acquireProfilingLockKHR),
+       VK_NULL_FUNC_ENTRY(vkReleaseProfilingLockKHR,                                                   releaseProfilingLockKHR),
+       VK_NULL_FUNC_ENTRY(vkGetImageDrmFormatModifierPropertiesEXT,                    getImageDrmFormatModifierPropertiesEXT),
+       VK_NULL_FUNC_ENTRY(vkGetBufferOpaqueCaptureAddress,                                             getBufferOpaqueCaptureAddress),
+       VK_NULL_FUNC_ENTRY(vkGetBufferDeviceAddress,                                                    getBufferDeviceAddress),
        VK_NULL_FUNC_ENTRY(vkInitializePerformanceApiINTEL,                                             initializePerformanceApiINTEL),
        VK_NULL_FUNC_ENTRY(vkUninitializePerformanceApiINTEL,                                   uninitializePerformanceApiINTEL),
        VK_NULL_FUNC_ENTRY(vkCmdSetPerformanceMarkerINTEL,                                              cmdSetPerformanceMarkerINTEL),
@@ -3820,110 +3731,95 @@ static const tcu::StaticFunctionLibrary::Entry s_deviceFunctions[] =
        VK_NULL_FUNC_ENTRY(vkReleasePerformanceConfigurationINTEL,                              releasePerformanceConfigurationINTEL),
        VK_NULL_FUNC_ENTRY(vkQueueSetPerformanceConfigurationINTEL,                             queueSetPerformanceConfigurationINTEL),
        VK_NULL_FUNC_ENTRY(vkGetPerformanceParameterINTEL,                                              getPerformanceParameterINTEL),
-       VK_NULL_FUNC_ENTRY(vkSetLocalDimmingAMD,                                                                setLocalDimmingAMD),
-       VK_NULL_FUNC_ENTRY(vkGetBufferDeviceAddressEXT,                                                 getBufferDeviceAddressEXT),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceMemoryOpaqueCaptureAddress,                               getDeviceMemoryOpaqueCaptureAddress),
+       VK_NULL_FUNC_ENTRY(vkGetPipelineExecutablePropertiesKHR,                                getPipelineExecutablePropertiesKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPipelineExecutableStatisticsKHR,                                getPipelineExecutableStatisticsKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPipelineExecutableInternalRepresentationsKHR,   getPipelineExecutableInternalRepresentationsKHR),
        VK_NULL_FUNC_ENTRY(vkCmdSetLineStippleEXT,                                                              cmdSetLineStippleEXT),
-       VK_NULL_FUNC_ENTRY(vkResetQueryPoolEXT,                                                                 resetQueryPool),
-       VK_NULL_FUNC_ENTRY(vkCmdSetCullModeEXT,                                                                 cmdSetCullMode),
-       VK_NULL_FUNC_ENTRY(vkCmdSetFrontFaceEXT,                                                                cmdSetFrontFace),
-       VK_NULL_FUNC_ENTRY(vkCmdSetPrimitiveTopologyEXT,                                                cmdSetPrimitiveTopology),
-       VK_NULL_FUNC_ENTRY(vkCmdSetViewportWithCountEXT,                                                cmdSetViewportWithCount),
-       VK_NULL_FUNC_ENTRY(vkCmdSetScissorWithCountEXT,                                                 cmdSetScissorWithCount),
-       VK_NULL_FUNC_ENTRY(vkCmdBindVertexBuffers2EXT,                                                  cmdBindVertexBuffers2),
-       VK_NULL_FUNC_ENTRY(vkCmdSetDepthTestEnableEXT,                                                  cmdSetDepthTestEnable),
-       VK_NULL_FUNC_ENTRY(vkCmdSetDepthWriteEnableEXT,                                                 cmdSetDepthWriteEnable),
-       VK_NULL_FUNC_ENTRY(vkCmdSetDepthCompareOpEXT,                                                   cmdSetDepthCompareOp),
-       VK_NULL_FUNC_ENTRY(vkCmdSetDepthBoundsTestEnableEXT,                                    cmdSetDepthBoundsTestEnable),
-       VK_NULL_FUNC_ENTRY(vkCmdSetStencilTestEnableEXT,                                                cmdSetStencilTestEnable),
-       VK_NULL_FUNC_ENTRY(vkCmdSetStencilOpEXT,                                                                cmdSetStencilOp),
-       VK_NULL_FUNC_ENTRY(vkGetGeneratedCommandsMemoryRequirementsNV,                  getGeneratedCommandsMemoryRequirementsNV),
-       VK_NULL_FUNC_ENTRY(vkCmdPreprocessGeneratedCommandsNV,                                  cmdPreprocessGeneratedCommandsNV),
-       VK_NULL_FUNC_ENTRY(vkCmdExecuteGeneratedCommandsNV,                                             cmdExecuteGeneratedCommandsNV),
-       VK_NULL_FUNC_ENTRY(vkCmdBindPipelineShaderGroupNV,                                              cmdBindPipelineShaderGroupNV),
-       VK_NULL_FUNC_ENTRY(vkCreateIndirectCommandsLayoutNV,                                    createIndirectCommandsLayoutNV),
-       VK_NULL_FUNC_ENTRY(vkDestroyIndirectCommandsLayoutNV,                                   destroyIndirectCommandsLayoutNV),
-       VK_NULL_FUNC_ENTRY(vkCreatePrivateDataSlotEXT,                                                  createPrivateDataSlot),
-       VK_NULL_FUNC_ENTRY(vkDestroyPrivateDataSlotEXT,                                                 destroyPrivateDataSlot),
-       VK_NULL_FUNC_ENTRY(vkSetPrivateDataEXT,                                                                 setPrivateData),
-       VK_NULL_FUNC_ENTRY(vkGetPrivateDataEXT,                                                                 getPrivateData),
-       VK_NULL_FUNC_ENTRY(vkCmdSetFragmentShadingRateEnumNV,                                   cmdSetFragmentShadingRateEnumNV),
-       VK_NULL_FUNC_ENTRY(vkGetImageSubresourceLayout2EXT,                                             getImageSubresourceLayout2EXT),
-       VK_NULL_FUNC_ENTRY(vkCmdSetVertexInputEXT,                                                              cmdSetVertexInputEXT),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI,             getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI),
-       VK_NULL_FUNC_ENTRY(vkCmdSubpassShadingHUAWEI,                                                   cmdSubpassShadingHUAWEI),
-       VK_NULL_FUNC_ENTRY(vkCmdBindInvocationMaskHUAWEI,                                               cmdBindInvocationMaskHUAWEI),
-       VK_NULL_FUNC_ENTRY(vkGetMemoryRemoteAddressNV,                                                  getMemoryRemoteAddressNV),
-       VK_NULL_FUNC_ENTRY(vkGetPipelinePropertiesEXT,                                                  getPipelinePropertiesEXT),
-       VK_NULL_FUNC_ENTRY(vkCmdSetPatchControlPointsEXT,                                               cmdSetPatchControlPointsEXT),
-       VK_NULL_FUNC_ENTRY(vkCmdSetRasterizerDiscardEnableEXT,                                  cmdSetRasterizerDiscardEnable),
-       VK_NULL_FUNC_ENTRY(vkCmdSetDepthBiasEnableEXT,                                                  cmdSetDepthBiasEnable),
-       VK_NULL_FUNC_ENTRY(vkCmdSetLogicOpEXT,                                                                  cmdSetLogicOpEXT),
-       VK_NULL_FUNC_ENTRY(vkCmdSetPrimitiveRestartEnableEXT,                                   cmdSetPrimitiveRestartEnable),
-       VK_NULL_FUNC_ENTRY(vkCmdSetColorWriteEnableEXT,                                                 cmdSetColorWriteEnableEXT),
-       VK_NULL_FUNC_ENTRY(vkCmdDrawMultiEXT,                                                                   cmdDrawMultiEXT),
-       VK_NULL_FUNC_ENTRY(vkCmdDrawMultiIndexedEXT,                                                    cmdDrawMultiIndexedEXT),
-       VK_NULL_FUNC_ENTRY(vkSetDeviceMemoryPriorityEXT,                                                setDeviceMemoryPriorityEXT),
-       VK_NULL_FUNC_ENTRY(vkGetDescriptorSetLayoutHostMappingInfoVALVE,                getDescriptorSetLayoutHostMappingInfoVALVE),
-       VK_NULL_FUNC_ENTRY(vkGetDescriptorSetHostMappingVALVE,                                  getDescriptorSetHostMappingVALVE),
-       VK_NULL_FUNC_ENTRY(vkGetShaderModuleIdentifierEXT,                                              getShaderModuleIdentifierEXT),
-       VK_NULL_FUNC_ENTRY(vkGetShaderModuleCreateInfoIdentifierEXT,                    getShaderModuleCreateInfoIdentifierEXT),
-       VK_NULL_FUNC_ENTRY(vkGetFramebufferTilePropertiesQCOM,                                  getFramebufferTilePropertiesQCOM),
-       VK_NULL_FUNC_ENTRY(vkGetDynamicRenderingTilePropertiesQCOM,                             getDynamicRenderingTilePropertiesQCOM),
        VK_NULL_FUNC_ENTRY(vkCreateAccelerationStructureKHR,                                    createAccelerationStructureKHR),
-       VK_NULL_FUNC_ENTRY(vkDestroyAccelerationStructureKHR,                                   destroyAccelerationStructureKHR),
        VK_NULL_FUNC_ENTRY(vkCmdBuildAccelerationStructuresKHR,                                 cmdBuildAccelerationStructuresKHR),
        VK_NULL_FUNC_ENTRY(vkCmdBuildAccelerationStructuresIndirectKHR,                 cmdBuildAccelerationStructuresIndirectKHR),
        VK_NULL_FUNC_ENTRY(vkBuildAccelerationStructuresKHR,                                    buildAccelerationStructuresKHR),
-       VK_NULL_FUNC_ENTRY(vkCopyAccelerationStructureKHR,                                              copyAccelerationStructureKHR),
-       VK_NULL_FUNC_ENTRY(vkCopyAccelerationStructureToMemoryKHR,                              copyAccelerationStructureToMemoryKHR),
-       VK_NULL_FUNC_ENTRY(vkCopyMemoryToAccelerationStructureKHR,                              copyMemoryToAccelerationStructureKHR),
-       VK_NULL_FUNC_ENTRY(vkWriteAccelerationStructuresPropertiesKHR,                  writeAccelerationStructuresPropertiesKHR),
-       VK_NULL_FUNC_ENTRY(vkCmdCopyAccelerationStructureKHR,                                   cmdCopyAccelerationStructureKHR),
-       VK_NULL_FUNC_ENTRY(vkCmdCopyAccelerationStructureToMemoryKHR,                   cmdCopyAccelerationStructureToMemoryKHR),
-       VK_NULL_FUNC_ENTRY(vkCmdCopyMemoryToAccelerationStructureKHR,                   cmdCopyMemoryToAccelerationStructureKHR),
        VK_NULL_FUNC_ENTRY(vkGetAccelerationStructureDeviceAddressKHR,                  getAccelerationStructureDeviceAddressKHR),
-       VK_NULL_FUNC_ENTRY(vkCmdWriteAccelerationStructuresPropertiesKHR,               cmdWriteAccelerationStructuresPropertiesKHR),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceAccelerationStructureCompatibilityKHR,    getDeviceAccelerationStructureCompatibilityKHR),
+       VK_NULL_FUNC_ENTRY(vkCreateDeferredOperationKHR,                                                createDeferredOperationKHR),
+       VK_NULL_FUNC_ENTRY(vkDestroyDeferredOperationKHR,                                               destroyDeferredOperationKHR),
+       VK_NULL_FUNC_ENTRY(vkGetDeferredOperationMaxConcurrencyKHR,                             getDeferredOperationMaxConcurrencyKHR),
+       VK_NULL_FUNC_ENTRY(vkGetDeferredOperationResultKHR,                                             getDeferredOperationResultKHR),
+       VK_NULL_FUNC_ENTRY(vkDeferredOperationJoinKHR,                                                  deferredOperationJoinKHR),
+       VK_NULL_FUNC_ENTRY(vkCmdSetCullMode,                                                                    cmdSetCullMode),
+       VK_NULL_FUNC_ENTRY(vkCmdSetFrontFace,                                                                   cmdSetFrontFace),
+       VK_NULL_FUNC_ENTRY(vkCmdSetPrimitiveTopology,                                                   cmdSetPrimitiveTopology),
+       VK_NULL_FUNC_ENTRY(vkCmdSetViewportWithCount,                                                   cmdSetViewportWithCount),
+       VK_NULL_FUNC_ENTRY(vkCmdSetScissorWithCount,                                                    cmdSetScissorWithCount),
+       VK_NULL_FUNC_ENTRY(vkCmdBindVertexBuffers2,                                                             cmdBindVertexBuffers2),
+       VK_NULL_FUNC_ENTRY(vkCmdSetDepthTestEnable,                                                             cmdSetDepthTestEnable),
+       VK_NULL_FUNC_ENTRY(vkCmdSetDepthWriteEnable,                                                    cmdSetDepthWriteEnable),
+       VK_NULL_FUNC_ENTRY(vkCmdSetDepthCompareOp,                                                              cmdSetDepthCompareOp),
+       VK_NULL_FUNC_ENTRY(vkCmdSetDepthBoundsTestEnable,                                               cmdSetDepthBoundsTestEnable),
+       VK_NULL_FUNC_ENTRY(vkCmdSetStencilTestEnable,                                                   cmdSetStencilTestEnable),
+       VK_NULL_FUNC_ENTRY(vkCmdSetStencilOp,                                                                   cmdSetStencilOp),
+       VK_NULL_FUNC_ENTRY(vkCmdSetPatchControlPointsEXT,                                               cmdSetPatchControlPointsEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdSetRasterizerDiscardEnable,                                             cmdSetRasterizerDiscardEnable),
+       VK_NULL_FUNC_ENTRY(vkCmdSetDepthBiasEnable,                                                             cmdSetDepthBiasEnable),
+       VK_NULL_FUNC_ENTRY(vkCmdSetLogicOpEXT,                                                                  cmdSetLogicOpEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdSetPrimitiveRestartEnable,                                              cmdSetPrimitiveRestartEnable),
+       VK_NULL_FUNC_ENTRY(vkCreatePrivateDataSlot,                                                             createPrivateDataSlot),
+       VK_NULL_FUNC_ENTRY(vkDestroyPrivateDataSlot,                                                    destroyPrivateDataSlot),
+       VK_NULL_FUNC_ENTRY(vkSetPrivateData,                                                                    setPrivateData),
+       VK_NULL_FUNC_ENTRY(vkGetPrivateData,                                                                    getPrivateData),
+       VK_NULL_FUNC_ENTRY(vkCmdCopyBuffer2,                                                                    cmdCopyBuffer2),
+       VK_NULL_FUNC_ENTRY(vkCmdCopyImage2,                                                                             cmdCopyImage2),
+       VK_NULL_FUNC_ENTRY(vkCmdBlitImage2,                                                                             cmdBlitImage2),
+       VK_NULL_FUNC_ENTRY(vkCmdCopyBufferToImage2,                                                             cmdCopyBufferToImage2),
+       VK_NULL_FUNC_ENTRY(vkCmdCopyImageToBuffer2,                                                             cmdCopyImageToBuffer2),
+       VK_NULL_FUNC_ENTRY(vkCmdResolveImage2,                                                                  cmdResolveImage2),
+       VK_NULL_FUNC_ENTRY(vkCmdSetFragmentShadingRateKHR,                                              cmdSetFragmentShadingRateKHR),
+       VK_NULL_FUNC_ENTRY(vkCmdSetFragmentShadingRateEnumNV,                                   cmdSetFragmentShadingRateEnumNV),
        VK_NULL_FUNC_ENTRY(vkGetAccelerationStructureBuildSizesKHR,                             getAccelerationStructureBuildSizesKHR),
-       VK_NULL_FUNC_ENTRY(vkCmdTraceRaysKHR,                                                                   cmdTraceRaysKHR),
-       VK_NULL_FUNC_ENTRY(vkCreateRayTracingPipelinesKHR,                                              createRayTracingPipelinesKHR),
-       VK_NULL_FUNC_ENTRY(vkGetRayTracingCaptureReplayShaderGroupHandlesKHR,   getRayTracingCaptureReplayShaderGroupHandlesKHR),
-       VK_NULL_FUNC_ENTRY(vkCmdTraceRaysIndirectKHR,                                                   cmdTraceRaysIndirectKHR),
-       VK_NULL_FUNC_ENTRY(vkGetRayTracingShaderGroupStackSizeKHR,                              getRayTracingShaderGroupStackSizeKHR),
-       VK_NULL_FUNC_ENTRY(vkCmdSetRayTracingPipelineStackSizeKHR,                              cmdSetRayTracingPipelineStackSizeKHR),
-       VK_NULL_FUNC_ENTRY(vkGetAndroidHardwareBufferPropertiesANDROID,                 getAndroidHardwareBufferPropertiesANDROID),
-       VK_NULL_FUNC_ENTRY(vkGetMemoryAndroidHardwareBufferANDROID,                             getMemoryAndroidHardwareBufferANDROID),
+       VK_NULL_FUNC_ENTRY(vkCmdSetVertexInputEXT,                                                              cmdSetVertexInputEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdSetColorWriteEnableEXT,                                                 cmdSetColorWriteEnableEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdSetEvent2,                                                                              cmdSetEvent2),
+       VK_NULL_FUNC_ENTRY(vkCmdResetEvent2,                                                                    cmdResetEvent2),
+       VK_NULL_FUNC_ENTRY(vkCmdWaitEvents2,                                                                    cmdWaitEvents2),
+       VK_NULL_FUNC_ENTRY(vkCmdPipelineBarrier2,                                                               cmdPipelineBarrier2),
+       VK_NULL_FUNC_ENTRY(vkQueueSubmit2,                                                                              queueSubmit2),
+       VK_NULL_FUNC_ENTRY(vkCmdWriteTimestamp2,                                                                cmdWriteTimestamp2),
+       VK_NULL_FUNC_ENTRY(vkCmdWriteBufferMarker2AMD,                                                  cmdWriteBufferMarker2AMD),
+       VK_NULL_FUNC_ENTRY(vkGetQueueCheckpointData2NV,                                                 getQueueCheckpointData2NV),
        VK_NULL_FUNC_ENTRY(vkCreateVideoSessionKHR,                                                             createVideoSessionKHR),
        VK_NULL_FUNC_ENTRY(vkDestroyVideoSessionKHR,                                                    destroyVideoSessionKHR),
-       VK_NULL_FUNC_ENTRY(vkGetVideoSessionMemoryRequirementsKHR,                              getVideoSessionMemoryRequirementsKHR),
-       VK_NULL_FUNC_ENTRY(vkBindVideoSessionMemoryKHR,                                                 bindVideoSessionMemoryKHR),
        VK_NULL_FUNC_ENTRY(vkCreateVideoSessionParametersKHR,                                   createVideoSessionParametersKHR),
        VK_NULL_FUNC_ENTRY(vkUpdateVideoSessionParametersKHR,                                   updateVideoSessionParametersKHR),
        VK_NULL_FUNC_ENTRY(vkDestroyVideoSessionParametersKHR,                                  destroyVideoSessionParametersKHR),
+       VK_NULL_FUNC_ENTRY(vkGetVideoSessionMemoryRequirementsKHR,                              getVideoSessionMemoryRequirementsKHR),
+       VK_NULL_FUNC_ENTRY(vkBindVideoSessionMemoryKHR,                                                 bindVideoSessionMemoryKHR),
+       VK_NULL_FUNC_ENTRY(vkCmdDecodeVideoKHR,                                                                 cmdDecodeVideoKHR),
        VK_NULL_FUNC_ENTRY(vkCmdBeginVideoCodingKHR,                                                    cmdBeginVideoCodingKHR),
-       VK_NULL_FUNC_ENTRY(vkCmdEndVideoCodingKHR,                                                              cmdEndVideoCodingKHR),
        VK_NULL_FUNC_ENTRY(vkCmdControlVideoCodingKHR,                                                  cmdControlVideoCodingKHR),
-       VK_NULL_FUNC_ENTRY(vkCmdDecodeVideoKHR,                                                                 cmdDecodeVideoKHR),
+       VK_NULL_FUNC_ENTRY(vkCmdEndVideoCodingKHR,                                                              cmdEndVideoCodingKHR),
        VK_NULL_FUNC_ENTRY(vkCmdEncodeVideoKHR,                                                                 cmdEncodeVideoKHR),
-       VK_NULL_FUNC_ENTRY(vkGetMemoryZirconHandleFUCHSIA,                                              getMemoryZirconHandleFUCHSIA),
-       VK_NULL_FUNC_ENTRY(vkGetMemoryZirconHandlePropertiesFUCHSIA,                    getMemoryZirconHandlePropertiesFUCHSIA),
-       VK_NULL_FUNC_ENTRY(vkImportSemaphoreZirconHandleFUCHSIA,                                importSemaphoreZirconHandleFUCHSIA),
-       VK_NULL_FUNC_ENTRY(vkGetSemaphoreZirconHandleFUCHSIA,                                   getSemaphoreZirconHandleFUCHSIA),
+       VK_NULL_FUNC_ENTRY(vkCreateCuModuleNVX,                                                                 createCuModuleNVX),
+       VK_NULL_FUNC_ENTRY(vkCreateCuFunctionNVX,                                                               createCuFunctionNVX),
+       VK_NULL_FUNC_ENTRY(vkDestroyCuModuleNVX,                                                                destroyCuModuleNVX),
+       VK_NULL_FUNC_ENTRY(vkDestroyCuFunctionNVX,                                                              destroyCuFunctionNVX),
+       VK_NULL_FUNC_ENTRY(vkCmdCuLaunchKernelNVX,                                                              cmdCuLaunchKernelNVX),
+       VK_NULL_FUNC_ENTRY(vkSetDeviceMemoryPriorityEXT,                                                setDeviceMemoryPriorityEXT),
+       VK_NULL_FUNC_ENTRY(vkWaitForPresentKHR,                                                                 waitForPresentKHR),
        VK_NULL_FUNC_ENTRY(vkCreateBufferCollectionFUCHSIA,                                             createBufferCollectionFUCHSIA),
-       VK_NULL_FUNC_ENTRY(vkSetBufferCollectionImageConstraintsFUCHSIA,                setBufferCollectionImageConstraintsFUCHSIA),
        VK_NULL_FUNC_ENTRY(vkSetBufferCollectionBufferConstraintsFUCHSIA,               setBufferCollectionBufferConstraintsFUCHSIA),
+       VK_NULL_FUNC_ENTRY(vkSetBufferCollectionImageConstraintsFUCHSIA,                setBufferCollectionImageConstraintsFUCHSIA),
        VK_NULL_FUNC_ENTRY(vkDestroyBufferCollectionFUCHSIA,                                    destroyBufferCollectionFUCHSIA),
        VK_NULL_FUNC_ENTRY(vkGetBufferCollectionPropertiesFUCHSIA,                              getBufferCollectionPropertiesFUCHSIA),
+       VK_NULL_FUNC_ENTRY(vkCmdBeginRendering,                                                                 cmdBeginRendering),
+       VK_NULL_FUNC_ENTRY(vkCmdEndRendering,                                                                   cmdEndRendering),
+       VK_NULL_FUNC_ENTRY(vkGetDescriptorSetLayoutHostMappingInfoVALVE,                getDescriptorSetLayoutHostMappingInfoVALVE),
+       VK_NULL_FUNC_ENTRY(vkGetDescriptorSetHostMappingVALVE,                                  getDescriptorSetHostMappingVALVE),
+       VK_NULL_FUNC_ENTRY(vkGetShaderModuleIdentifierEXT,                                              getShaderModuleIdentifierEXT),
+       VK_NULL_FUNC_ENTRY(vkGetShaderModuleCreateInfoIdentifierEXT,                    getShaderModuleCreateInfoIdentifierEXT),
+       VK_NULL_FUNC_ENTRY(vkGetImageSubresourceLayout2EXT,                                             getImageSubresourceLayout2EXT),
+       VK_NULL_FUNC_ENTRY(vkGetPipelinePropertiesEXT,                                                  getPipelinePropertiesEXT),
        VK_NULL_FUNC_ENTRY(vkExportMetalObjectsEXT,                                                             exportMetalObjectsEXT),
-       VK_NULL_FUNC_ENTRY(vkGetMemoryWin32HandleKHR,                                                   getMemoryWin32HandleKHR),
-       VK_NULL_FUNC_ENTRY(vkGetMemoryWin32HandlePropertiesKHR,                                 getMemoryWin32HandlePropertiesKHR),
-       VK_NULL_FUNC_ENTRY(vkImportSemaphoreWin32HandleKHR,                                             importSemaphoreWin32HandleKHR),
-       VK_NULL_FUNC_ENTRY(vkGetSemaphoreWin32HandleKHR,                                                getSemaphoreWin32HandleKHR),
-       VK_NULL_FUNC_ENTRY(vkImportFenceWin32HandleKHR,                                                 importFenceWin32HandleKHR),
-       VK_NULL_FUNC_ENTRY(vkGetFenceWin32HandleKHR,                                                    getFenceWin32HandleKHR),
-       VK_NULL_FUNC_ENTRY(vkGetMemoryWin32HandleNV,                                                    getMemoryWin32HandleNV),
-       VK_NULL_FUNC_ENTRY(vkAcquireFullScreenExclusiveModeEXT,                                 acquireFullScreenExclusiveModeEXT),
-       VK_NULL_FUNC_ENTRY(vkReleaseFullScreenExclusiveModeEXT,                                 releaseFullScreenExclusiveModeEXT),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupSurfacePresentModes2EXT,                             getDeviceGroupSurfacePresentModes2EXT),
+       VK_NULL_FUNC_ENTRY(vkGetFramebufferTilePropertiesQCOM,                                  getFramebufferTilePropertiesQCOM),
+       VK_NULL_FUNC_ENTRY(vkGetDynamicRenderingTilePropertiesQCOM,                             getDynamicRenderingTilePropertiesQCOM),
 };
 
index 1a08128..69074ef 100644 (file)
@@ -6,49 +6,49 @@
 namespace vk
 {
 template<typename T> VkObjectType getObjectType        (void);
-template<> inline VkObjectType getObjectType<VkBuffer>                                                 (void) { return VK_OBJECT_TYPE_BUFFER;                                                  }
-template<> inline VkObjectType getObjectType<VkImage>                                                  (void) { return VK_OBJECT_TYPE_IMAGE;                                                   }
 template<> inline VkObjectType getObjectType<VkInstance>                                               (void) { return VK_OBJECT_TYPE_INSTANCE;                                                }
 template<> inline VkObjectType getObjectType<VkPhysicalDevice>                                 (void) { return VK_OBJECT_TYPE_PHYSICAL_DEVICE;                                 }
 template<> inline VkObjectType getObjectType<VkDevice>                                                 (void) { return VK_OBJECT_TYPE_DEVICE;                                                  }
 template<> inline VkObjectType getObjectType<VkQueue>                                                  (void) { return VK_OBJECT_TYPE_QUEUE;                                                   }
-template<> inline VkObjectType getObjectType<VkSemaphore>                                              (void) { return VK_OBJECT_TYPE_SEMAPHORE;                                               }
 template<> inline VkObjectType getObjectType<VkCommandBuffer>                                  (void) { return VK_OBJECT_TYPE_COMMAND_BUFFER;                                  }
-template<> inline VkObjectType getObjectType<VkFence>                                                  (void) { return VK_OBJECT_TYPE_FENCE;                                                   }
 template<> inline VkObjectType getObjectType<VkDeviceMemory>                                   (void) { return VK_OBJECT_TYPE_DEVICE_MEMORY;                                   }
-template<> inline VkObjectType getObjectType<VkEvent>                                                  (void) { return VK_OBJECT_TYPE_EVENT;                                                   }
-template<> inline VkObjectType getObjectType<VkQueryPool>                                              (void) { return VK_OBJECT_TYPE_QUERY_POOL;                                              }
+template<> inline VkObjectType getObjectType<VkCommandPool>                                    (void) { return VK_OBJECT_TYPE_COMMAND_POOL;                                    }
+template<> inline VkObjectType getObjectType<VkBuffer>                                                 (void) { return VK_OBJECT_TYPE_BUFFER;                                                  }
 template<> inline VkObjectType getObjectType<VkBufferView>                                             (void) { return VK_OBJECT_TYPE_BUFFER_VIEW;                                             }
+template<> inline VkObjectType getObjectType<VkImage>                                                  (void) { return VK_OBJECT_TYPE_IMAGE;                                                   }
 template<> inline VkObjectType getObjectType<VkImageView>                                              (void) { return VK_OBJECT_TYPE_IMAGE_VIEW;                                              }
 template<> inline VkObjectType getObjectType<VkShaderModule>                                   (void) { return VK_OBJECT_TYPE_SHADER_MODULE;                                   }
-template<> inline VkObjectType getObjectType<VkPipelineCache>                                  (void) { return VK_OBJECT_TYPE_PIPELINE_CACHE;                                  }
-template<> inline VkObjectType getObjectType<VkPipelineLayout>                                 (void) { return VK_OBJECT_TYPE_PIPELINE_LAYOUT;                                 }
 template<> inline VkObjectType getObjectType<VkPipeline>                                               (void) { return VK_OBJECT_TYPE_PIPELINE;                                                }
-template<> inline VkObjectType getObjectType<VkRenderPass>                                             (void) { return VK_OBJECT_TYPE_RENDER_PASS;                                             }
-template<> inline VkObjectType getObjectType<VkDescriptorSetLayout>                    (void) { return VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT;                   }
+template<> inline VkObjectType getObjectType<VkPipelineLayout>                                 (void) { return VK_OBJECT_TYPE_PIPELINE_LAYOUT;                                 }
 template<> inline VkObjectType getObjectType<VkSampler>                                                (void) { return VK_OBJECT_TYPE_SAMPLER;                                                 }
 template<> inline VkObjectType getObjectType<VkDescriptorSet>                                  (void) { return VK_OBJECT_TYPE_DESCRIPTOR_SET;                                  }
+template<> inline VkObjectType getObjectType<VkDescriptorSetLayout>                    (void) { return VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT;                   }
 template<> inline VkObjectType getObjectType<VkDescriptorPool>                                 (void) { return VK_OBJECT_TYPE_DESCRIPTOR_POOL;                                 }
+template<> inline VkObjectType getObjectType<VkFence>                                                  (void) { return VK_OBJECT_TYPE_FENCE;                                                   }
+template<> inline VkObjectType getObjectType<VkSemaphore>                                              (void) { return VK_OBJECT_TYPE_SEMAPHORE;                                               }
+template<> inline VkObjectType getObjectType<VkEvent>                                                  (void) { return VK_OBJECT_TYPE_EVENT;                                                   }
+template<> inline VkObjectType getObjectType<VkQueryPool>                                              (void) { return VK_OBJECT_TYPE_QUERY_POOL;                                              }
 template<> inline VkObjectType getObjectType<VkFramebuffer>                                    (void) { return VK_OBJECT_TYPE_FRAMEBUFFER;                                             }
-template<> inline VkObjectType getObjectType<VkCommandPool>                                    (void) { return VK_OBJECT_TYPE_COMMAND_POOL;                                    }
-template<> inline VkObjectType getObjectType<VkSamplerYcbcrConversion>                 (void) { return VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION;                }
+template<> inline VkObjectType getObjectType<VkRenderPass>                                             (void) { return VK_OBJECT_TYPE_RENDER_PASS;                                             }
+template<> inline VkObjectType getObjectType<VkPipelineCache>                                  (void) { return VK_OBJECT_TYPE_PIPELINE_CACHE;                                  }
+template<> inline VkObjectType getObjectType<VkIndirectCommandsLayoutNV>               (void) { return VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV;             }
 template<> inline VkObjectType getObjectType<VkDescriptorUpdateTemplate>               (void) { return VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE;              }
+template<> inline VkObjectType getObjectType<VkSamplerYcbcrConversion>                 (void) { return VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION;                }
+template<> inline VkObjectType getObjectType<VkValidationCacheEXT>                             (void) { return VK_OBJECT_TYPE_VALIDATION_CACHE_EXT;                    }
+template<> inline VkObjectType getObjectType<VkAccelerationStructureKHR>               (void) { return VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR;              }
+template<> inline VkObjectType getObjectType<VkAccelerationStructureNV>                (void) { return VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV;               }
+template<> inline VkObjectType getObjectType<VkPerformanceConfigurationINTEL>  (void) { return VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL; }
+template<> inline VkObjectType getObjectType<VkBufferCollectionFUCHSIA>                (void) { return VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA;               }
+template<> inline VkObjectType getObjectType<VkDeferredOperationKHR>                   (void) { return VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR;                  }
 template<> inline VkObjectType getObjectType<VkPrivateDataSlot>                                (void) { return VK_OBJECT_TYPE_PRIVATE_DATA_SLOT;                               }
-template<> inline VkObjectType getObjectType<VkSurfaceKHR>                                             (void) { return VK_OBJECT_TYPE_SURFACE_KHR;                                             }
-template<> inline VkObjectType getObjectType<VkSwapchainKHR>                                   (void) { return VK_OBJECT_TYPE_SWAPCHAIN_KHR;                                   }
+template<> inline VkObjectType getObjectType<VkCuModuleNVX>                                    (void) { return VK_OBJECT_TYPE_CU_MODULE_NVX;                                   }
+template<> inline VkObjectType getObjectType<VkCuFunctionNVX>                                  (void) { return VK_OBJECT_TYPE_CU_FUNCTION_NVX;                                 }
 template<> inline VkObjectType getObjectType<VkDisplayKHR>                                             (void) { return VK_OBJECT_TYPE_DISPLAY_KHR;                                             }
 template<> inline VkObjectType getObjectType<VkDisplayModeKHR>                                 (void) { return VK_OBJECT_TYPE_DISPLAY_MODE_KHR;                                }
-template<> inline VkObjectType getObjectType<VkDeferredOperationKHR>                   (void) { return VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR;                  }
+template<> inline VkObjectType getObjectType<VkSurfaceKHR>                                             (void) { return VK_OBJECT_TYPE_SURFACE_KHR;                                             }
+template<> inline VkObjectType getObjectType<VkSwapchainKHR>                                   (void) { return VK_OBJECT_TYPE_SWAPCHAIN_KHR;                                   }
 template<> inline VkObjectType getObjectType<VkDebugReportCallbackEXT>                 (void) { return VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT;               }
-template<> inline VkObjectType getObjectType<VkCuModuleNVX>                                    (void) { return VK_OBJECT_TYPE_CU_MODULE_NVX;                                   }
-template<> inline VkObjectType getObjectType<VkCuFunctionNVX>                                  (void) { return VK_OBJECT_TYPE_CU_FUNCTION_NVX;                                 }
 template<> inline VkObjectType getObjectType<VkDebugUtilsMessengerEXT>                 (void) { return VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT;               }
-template<> inline VkObjectType getObjectType<VkValidationCacheEXT>                             (void) { return VK_OBJECT_TYPE_VALIDATION_CACHE_EXT;                    }
-template<> inline VkObjectType getObjectType<VkAccelerationStructureNV>                (void) { return VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV;               }
-template<> inline VkObjectType getObjectType<VkPerformanceConfigurationINTEL>  (void) { return VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL; }
-template<> inline VkObjectType getObjectType<VkIndirectCommandsLayoutNV>               (void) { return VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV;             }
-template<> inline VkObjectType getObjectType<VkAccelerationStructureKHR>               (void) { return VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR;              }
 template<> inline VkObjectType getObjectType<VkVideoSessionKHR>                                (void) { return VK_OBJECT_TYPE_VIDEO_SESSION_KHR;                               }
 template<> inline VkObjectType getObjectType<VkVideoSessionParametersKHR>              (void) { return VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR;    }
-template<> inline VkObjectType getObjectType<VkBufferCollectionFUCHSIA>                (void) { return VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA;               }
 }
index 555ae07..ec49cc8 100644 (file)
@@ -14,9 +14,13 @@ PFN_vkVoidFunction PlatformDriver::getInstanceProcAddr (VkInstance instance, con
        return m_vk.getInstanceProcAddr(instance, pName);
 }
 
-VkResult PlatformDriver::enumerateInstanceExtensionProperties (const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) const
+VkResult PlatformDriver::enumerateInstanceVersion (uint32_t* pApiVersion) const
 {
-       return m_vk.enumerateInstanceExtensionProperties(pLayerName, pPropertyCount, pProperties);
+       if (m_vk.enumerateInstanceVersion)
+               return m_vk.enumerateInstanceVersion(pApiVersion);
+
+       *pApiVersion = VK_API_VERSION_1_0;
+       return VK_SUCCESS;
 }
 
 VkResult PlatformDriver::enumerateInstanceLayerProperties (uint32_t* pPropertyCount, VkLayerProperties* pProperties) const
@@ -24,11 +28,7 @@ VkResult PlatformDriver::enumerateInstanceLayerProperties (uint32_t* pPropertyCo
        return m_vk.enumerateInstanceLayerProperties(pPropertyCount, pProperties);
 }
 
-VkResult PlatformDriver::enumerateInstanceVersion (uint32_t* pApiVersion) const
+VkResult PlatformDriver::enumerateInstanceExtensionProperties (const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) const
 {
-       if (m_vk.enumerateInstanceVersion)
-               return m_vk.enumerateInstanceVersion(pApiVersion);
-
-       *pApiVersion = VK_API_VERSION_1_0;
-       return VK_SUCCESS;
+       return m_vk.enumerateInstanceExtensionProperties(pLayerName, pPropertyCount, pProperties);
 }
index 6972c2f..9f2ec24 100644 (file)
@@ -5,6 +5,6 @@
 
 CreateInstanceFunc                                                     createInstance;
 GetInstanceProcAddrFunc                                                getInstanceProcAddr;
-EnumerateInstanceExtensionPropertiesFunc       enumerateInstanceExtensionProperties;
-EnumerateInstanceLayerPropertiesFunc           enumerateInstanceLayerProperties;
 EnumerateInstanceVersionFunc                           enumerateInstanceVersion;
+EnumerateInstanceLayerPropertiesFunc           enumerateInstanceLayerProperties;
+EnumerateInstanceExtensionPropertiesFunc       enumerateInstanceExtensionProperties;
index e090f07..c10cc3b 100644 (file)
@@ -23,34 +23,35 @@ Move<VkDescriptorPool>                              createDescriptorPool                            (const DeviceInterface& vk, Vk
 Move<VkFramebuffer>                                    createFramebuffer                                       (const DeviceInterface& vk, VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkRenderPass>                                     createRenderPass                                        (const DeviceInterface& vk, VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkCommandPool>                                    createCommandPool                                       (const DeviceInterface& vk, VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkSamplerYcbcrConversion>         createSamplerYcbcrConversion            (const DeviceInterface& vk, VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkDescriptorUpdateTemplate>       createDescriptorUpdateTemplate          (const DeviceInterface& vk, VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkRenderPass>                                     createRenderPass2                                       (const DeviceInterface& vk, VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkPrivateDataSlot>                                createPrivateDataSlot                           (const DeviceInterface& vk, VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkSwapchainKHR>                           createSwapchainKHR                                      (const DeviceInterface& vk, VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkSurfaceKHR>                                     createAndroidSurfaceKHR                         (const InstanceInterface& vk, VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkSurfaceKHR>                                     createDisplayPlaneSurfaceKHR            (const InstanceInterface& vk, VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkSwapchainKHR>                           createSharedSwapchainsKHR                       (const DeviceInterface& vk, VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkDeferredOperationKHR>           createDeferredOperationKHR                      (const DeviceInterface& vk, VkDevice device, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkSwapchainKHR>                           createSwapchainKHR                                      (const DeviceInterface& vk, VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkSurfaceKHR>                                     createViSurfaceNN                                       (const InstanceInterface& vk, VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkSurfaceKHR>                                     createWaylandSurfaceKHR                         (const InstanceInterface& vk, VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkSurfaceKHR>                                     createWin32SurfaceKHR                           (const InstanceInterface& vk, VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkSurfaceKHR>                                     createXlibSurfaceKHR                            (const InstanceInterface& vk, VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkSurfaceKHR>                                     createXcbSurfaceKHR                                     (const InstanceInterface& vk, VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkSurfaceKHR>                                     createImagePipeSurfaceFUCHSIA           (const InstanceInterface& vk, VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkSurfaceKHR>                                     createStreamDescriptorSurfaceGGP        (const InstanceInterface& vk, VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkSurfaceKHR>                                     createScreenSurfaceQNX                          (const InstanceInterface& vk, VkInstance instance, const VkScreenSurfaceCreateInfoQNX* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkDebugReportCallbackEXT>         createDebugReportCallbackEXT            (const InstanceInterface& vk, VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkCuModuleNVX>                                    createCuModuleNVX                                       (const DeviceInterface& vk, VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkCuFunctionNVX>                          createCuFunctionNVX                                     (const DeviceInterface& vk, VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkDebugUtilsMessengerEXT>         createDebugUtilsMessengerEXT            (const InstanceInterface& vk, VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkIndirectCommandsLayoutNV>       createIndirectCommandsLayoutNV          (const DeviceInterface& vk, VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkDescriptorUpdateTemplate>       createDescriptorUpdateTemplate          (const DeviceInterface& vk, VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkSurfaceKHR>                                     createIOSSurfaceMVK                                     (const InstanceInterface& vk, VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkSurfaceKHR>                                     createMacOSSurfaceMVK                           (const InstanceInterface& vk, VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkSurfaceKHR>                                     createMetalSurfaceEXT                           (const InstanceInterface& vk, VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkSamplerYcbcrConversion>         createSamplerYcbcrConversion            (const DeviceInterface& vk, VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkValidationCacheEXT>                     createValidationCacheEXT                        (const DeviceInterface& vk, VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkDebugUtilsMessengerEXT>         createDebugUtilsMessengerEXT            (const InstanceInterface& vk, VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkRenderPass>                                     createRenderPass2                                       (const DeviceInterface& vk, VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkAccelerationStructureNV>                createAccelerationStructureNV           (const DeviceInterface& vk, VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkSurfaceKHR>                                     createHeadlessSurfaceEXT                        (const InstanceInterface& vk, VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkIndirectCommandsLayoutNV>       createIndirectCommandsLayoutNV          (const DeviceInterface& vk, VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkAccelerationStructureKHR>       createAccelerationStructureKHR          (const DeviceInterface& vk, VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkSurfaceKHR>                                     createAndroidSurfaceKHR                         (const InstanceInterface& vk, VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkDeferredOperationKHR>           createDeferredOperationKHR                      (const DeviceInterface& vk, VkDevice device, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkPrivateDataSlot>                                createPrivateDataSlot                           (const DeviceInterface& vk, VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkVideoSessionKHR>                                createVideoSessionKHR                           (const DeviceInterface& vk, VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkVideoSessionParametersKHR>      createVideoSessionParametersKHR         (const DeviceInterface& vk, VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkSurfaceKHR>                                     createImagePipeSurfaceFUCHSIA           (const InstanceInterface& vk, VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkCuModuleNVX>                                    createCuModuleNVX                                       (const DeviceInterface& vk, VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkCuFunctionNVX>                          createCuFunctionNVX                                     (const DeviceInterface& vk, VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkBufferCollectionFUCHSIA>                createBufferCollectionFUCHSIA           (const DeviceInterface& vk, VkDevice device, const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkSurfaceKHR>                                     createStreamDescriptorSurfaceGGP        (const InstanceInterface& vk, VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkSurfaceKHR>                                     createIOSSurfaceMVK                                     (const InstanceInterface& vk, VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkSurfaceKHR>                                     createMacOSSurfaceMVK                           (const InstanceInterface& vk, VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkSurfaceKHR>                                     createMetalSurfaceEXT                           (const InstanceInterface& vk, VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkSurfaceKHR>                                     createViSurfaceNN                                       (const InstanceInterface& vk, VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkSurfaceKHR>                                     createWaylandSurfaceKHR                         (const InstanceInterface& vk, VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkSurfaceKHR>                                     createWin32SurfaceKHR                           (const InstanceInterface& vk, VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkSurfaceKHR>                                     createXcbSurfaceKHR                                     (const InstanceInterface& vk, VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkSurfaceKHR>                                     createXlibSurfaceKHR                            (const InstanceInterface& vk, VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
index df765d7..de2d562 100644 (file)
@@ -121,81 +121,81 @@ void Deleter<VkCommandPool>::operator() (VkCommandPool obj) const
 }
 
 template<>
-void Deleter<VkSamplerYcbcrConversion>::operator() (VkSamplerYcbcrConversion obj) const
+void Deleter<VkSwapchainKHR>::operator() (VkSwapchainKHR obj) const
 {
-       m_deviceIface->destroySamplerYcbcrConversion(m_device, obj, m_allocator);
+       m_deviceIface->destroySwapchainKHR(m_device, obj, m_allocator);
 }
 
 template<>
-void Deleter<VkDescriptorUpdateTemplate>::operator() (VkDescriptorUpdateTemplate obj) const
+void Deleter<VkIndirectCommandsLayoutNV>::operator() (VkIndirectCommandsLayoutNV obj) const
 {
-       m_deviceIface->destroyDescriptorUpdateTemplate(m_device, obj, m_allocator);
+       m_deviceIface->destroyIndirectCommandsLayoutNV(m_device, obj, m_allocator);
 }
 
 template<>
-void Deleter<VkPrivateDataSlot>::operator() (VkPrivateDataSlot obj) const
+void Deleter<VkDescriptorUpdateTemplate>::operator() (VkDescriptorUpdateTemplate obj) const
 {
-       m_deviceIface->destroyPrivateDataSlot(m_device, obj, m_allocator);
+       m_deviceIface->destroyDescriptorUpdateTemplate(m_device, obj, m_allocator);
 }
 
 template<>
-void Deleter<VkSwapchainKHR>::operator() (VkSwapchainKHR obj) const
+void Deleter<VkSamplerYcbcrConversion>::operator() (VkSamplerYcbcrConversion obj) const
 {
-       m_deviceIface->destroySwapchainKHR(m_device, obj, m_allocator);
+       m_deviceIface->destroySamplerYcbcrConversion(m_device, obj, m_allocator);
 }
 
 template<>
-void Deleter<VkDeferredOperationKHR>::operator() (VkDeferredOperationKHR obj) const
+void Deleter<VkValidationCacheEXT>::operator() (VkValidationCacheEXT obj) const
 {
-       m_deviceIface->destroyDeferredOperationKHR(m_device, obj, m_allocator);
+       m_deviceIface->destroyValidationCacheEXT(m_device, obj, m_allocator);
 }
 
 template<>
-void Deleter<VkCuModuleNVX>::operator() (VkCuModuleNVX obj) const
+void Deleter<VkAccelerationStructureKHR>::operator() (VkAccelerationStructureKHR obj) const
 {
-       m_deviceIface->destroyCuModuleNVX(m_device, obj, m_allocator);
+       m_deviceIface->destroyAccelerationStructureKHR(m_device, obj, m_allocator);
 }
 
 template<>
-void Deleter<VkCuFunctionNVX>::operator() (VkCuFunctionNVX obj) const
+void Deleter<VkAccelerationStructureNV>::operator() (VkAccelerationStructureNV obj) const
 {
-       m_deviceIface->destroyCuFunctionNVX(m_device, obj, m_allocator);
+       m_deviceIface->destroyAccelerationStructureNV(m_device, obj, m_allocator);
 }
 
 template<>
-void Deleter<VkValidationCacheEXT>::operator() (VkValidationCacheEXT obj) const
+void Deleter<VkDeferredOperationKHR>::operator() (VkDeferredOperationKHR obj) const
 {
-       m_deviceIface->destroyValidationCacheEXT(m_device, obj, m_allocator);
+       m_deviceIface->destroyDeferredOperationKHR(m_device, obj, m_allocator);
 }
 
 template<>
-void Deleter<VkAccelerationStructureNV>::operator() (VkAccelerationStructureNV obj) const
+void Deleter<VkPrivateDataSlot>::operator() (VkPrivateDataSlot obj) const
 {
-       m_deviceIface->destroyAccelerationStructureNV(m_device, obj, m_allocator);
+       m_deviceIface->destroyPrivateDataSlot(m_device, obj, m_allocator);
 }
 
 template<>
-void Deleter<VkIndirectCommandsLayoutNV>::operator() (VkIndirectCommandsLayoutNV obj) const
+void Deleter<VkVideoSessionKHR>::operator() (VkVideoSessionKHR obj) const
 {
-       m_deviceIface->destroyIndirectCommandsLayoutNV(m_device, obj, m_allocator);
+       m_deviceIface->destroyVideoSessionKHR(m_device, obj, m_allocator);
 }
 
 template<>
-void Deleter<VkAccelerationStructureKHR>::operator() (VkAccelerationStructureKHR obj) const
+void Deleter<VkVideoSessionParametersKHR>::operator() (VkVideoSessionParametersKHR obj) const
 {
-       m_deviceIface->destroyAccelerationStructureKHR(m_device, obj, m_allocator);
+       m_deviceIface->destroyVideoSessionParametersKHR(m_device, obj, m_allocator);
 }
 
 template<>
-void Deleter<VkVideoSessionKHR>::operator() (VkVideoSessionKHR obj) const
+void Deleter<VkCuModuleNVX>::operator() (VkCuModuleNVX obj) const
 {
-       m_deviceIface->destroyVideoSessionKHR(m_device, obj, m_allocator);
+       m_deviceIface->destroyCuModuleNVX(m_device, obj, m_allocator);
 }
 
 template<>
-void Deleter<VkVideoSessionParametersKHR>::operator() (VkVideoSessionParametersKHR obj) const
+void Deleter<VkCuFunctionNVX>::operator() (VkCuFunctionNVX obj) const
 {
-       m_deviceIface->destroyVideoSessionParametersKHR(m_device, obj, m_allocator);
+       m_deviceIface->destroyCuFunctionNVX(m_device, obj, m_allocator);
 }
 
 template<>
@@ -346,32 +346,25 @@ Move<VkCommandPool> createCommandPool (const DeviceInterface& vk, VkDevice devic
        return Move<VkCommandPool>(check<VkCommandPool>(object), Deleter<VkCommandPool>(vk, device, pAllocator));
 }
 
-Move<VkSamplerYcbcrConversion> createSamplerYcbcrConversion (const DeviceInterface& vk, VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator)
-{
-       VkSamplerYcbcrConversion object = 0;
-       VK_CHECK(vk.createSamplerYcbcrConversion(device, pCreateInfo, pAllocator, &object));
-       return Move<VkSamplerYcbcrConversion>(check<VkSamplerYcbcrConversion>(object), Deleter<VkSamplerYcbcrConversion>(vk, device, pAllocator));
-}
-
-Move<VkDescriptorUpdateTemplate> createDescriptorUpdateTemplate (const DeviceInterface& vk, VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkSurfaceKHR> createAndroidSurfaceKHR (const InstanceInterface& vk, VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkDescriptorUpdateTemplate object = 0;
-       VK_CHECK(vk.createDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, &object));
-       return Move<VkDescriptorUpdateTemplate>(check<VkDescriptorUpdateTemplate>(object), Deleter<VkDescriptorUpdateTemplate>(vk, device, pAllocator));
+       VkSurfaceKHR object = 0;
+       VK_CHECK(vk.createAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, &object));
+       return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
 }
 
-Move<VkRenderPass> createRenderPass2 (const DeviceInterface& vk, VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkSurfaceKHR> createDisplayPlaneSurfaceKHR (const InstanceInterface& vk, VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkRenderPass object = 0;
-       VK_CHECK(vk.createRenderPass2(device, pCreateInfo, pAllocator, &object));
-       return Move<VkRenderPass>(check<VkRenderPass>(object), Deleter<VkRenderPass>(vk, device, pAllocator));
+       VkSurfaceKHR object = 0;
+       VK_CHECK(vk.createDisplayPlaneSurfaceKHR(instance, pCreateInfo, pAllocator, &object));
+       return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
 }
 
-Move<VkPrivateDataSlot> createPrivateDataSlot (const DeviceInterface& vk, VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkSwapchainKHR> createSharedSwapchainsKHR (const DeviceInterface& vk, VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator)
 {
-       VkPrivateDataSlot object = 0;
-       VK_CHECK(vk.createPrivateDataSlot(device, pCreateInfo, pAllocator, &object));
-       return Move<VkPrivateDataSlot>(check<VkPrivateDataSlot>(object), Deleter<VkPrivateDataSlot>(vk, device, pAllocator));
+       VkSwapchainKHR object = 0;
+       VK_CHECK(vk.createSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, &object));
+       return Move<VkSwapchainKHR>(check<VkSwapchainKHR>(object), Deleter<VkSwapchainKHR>(vk, device, pAllocator));
 }
 
 Move<VkSwapchainKHR> createSwapchainKHR (const DeviceInterface& vk, VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator)
@@ -381,74 +374,67 @@ Move<VkSwapchainKHR> createSwapchainKHR (const DeviceInterface& vk, VkDevice dev
        return Move<VkSwapchainKHR>(check<VkSwapchainKHR>(object), Deleter<VkSwapchainKHR>(vk, device, pAllocator));
 }
 
-Move<VkSurfaceKHR> createDisplayPlaneSurfaceKHR (const InstanceInterface& vk, VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkSurfaceKHR> createViSurfaceNN (const InstanceInterface& vk, VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
        VkSurfaceKHR object = 0;
-       VK_CHECK(vk.createDisplayPlaneSurfaceKHR(instance, pCreateInfo, pAllocator, &object));
+       VK_CHECK(vk.createViSurfaceNN(instance, pCreateInfo, pAllocator, &object));
        return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
 }
 
-Move<VkSwapchainKHR> createSharedSwapchainsKHR (const DeviceInterface& vk, VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator)
-{
-       VkSwapchainKHR object = 0;
-       VK_CHECK(vk.createSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, &object));
-       return Move<VkSwapchainKHR>(check<VkSwapchainKHR>(object), Deleter<VkSwapchainKHR>(vk, device, pAllocator));
-}
-
-Move<VkDeferredOperationKHR> createDeferredOperationKHR (const DeviceInterface& vk, VkDevice device, const VkAllocationCallbacks* pAllocator)
+Move<VkSurfaceKHR> createWaylandSurfaceKHR (const InstanceInterface& vk, VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkDeferredOperationKHR object = 0;
-       VK_CHECK(vk.createDeferredOperationKHR(device, pAllocator, &object));
-       return Move<VkDeferredOperationKHR>(check<VkDeferredOperationKHR>(object), Deleter<VkDeferredOperationKHR>(vk, device, pAllocator));
+       VkSurfaceKHR object = 0;
+       VK_CHECK(vk.createWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, &object));
+       return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
 }
 
-Move<VkDebugReportCallbackEXT> createDebugReportCallbackEXT (const InstanceInterface& vk, VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkSurfaceKHR> createWin32SurfaceKHR (const InstanceInterface& vk, VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkDebugReportCallbackEXT object = 0;
-       VK_CHECK(vk.createDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, &object));
-       return Move<VkDebugReportCallbackEXT>(check<VkDebugReportCallbackEXT>(object), Deleter<VkDebugReportCallbackEXT>(vk, instance, pAllocator));
+       VkSurfaceKHR object = 0;
+       VK_CHECK(vk.createWin32SurfaceKHR(instance, pCreateInfo, pAllocator, &object));
+       return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
 }
 
-Move<VkCuModuleNVX> createCuModuleNVX (const DeviceInterface& vk, VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkSurfaceKHR> createXlibSurfaceKHR (const InstanceInterface& vk, VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkCuModuleNVX object = 0;
-       VK_CHECK(vk.createCuModuleNVX(device, pCreateInfo, pAllocator, &object));
-       return Move<VkCuModuleNVX>(check<VkCuModuleNVX>(object), Deleter<VkCuModuleNVX>(vk, device, pAllocator));
+       VkSurfaceKHR object = 0;
+       VK_CHECK(vk.createXlibSurfaceKHR(instance, pCreateInfo, pAllocator, &object));
+       return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
 }
 
-Move<VkCuFunctionNVX> createCuFunctionNVX (const DeviceInterface& vk, VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkSurfaceKHR> createXcbSurfaceKHR (const InstanceInterface& vk, VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkCuFunctionNVX object = 0;
-       VK_CHECK(vk.createCuFunctionNVX(device, pCreateInfo, pAllocator, &object));
-       return Move<VkCuFunctionNVX>(check<VkCuFunctionNVX>(object), Deleter<VkCuFunctionNVX>(vk, device, pAllocator));
+       VkSurfaceKHR object = 0;
+       VK_CHECK(vk.createXcbSurfaceKHR(instance, pCreateInfo, pAllocator, &object));
+       return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
 }
 
-Move<VkDebugUtilsMessengerEXT> createDebugUtilsMessengerEXT (const InstanceInterface& vk, VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkSurfaceKHR> createImagePipeSurfaceFUCHSIA (const InstanceInterface& vk, VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkDebugUtilsMessengerEXT object = 0;
-       VK_CHECK(vk.createDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, &object));
-       return Move<VkDebugUtilsMessengerEXT>(check<VkDebugUtilsMessengerEXT>(object), Deleter<VkDebugUtilsMessengerEXT>(vk, instance, pAllocator));
+       VkSurfaceKHR object = 0;
+       VK_CHECK(vk.createImagePipeSurfaceFUCHSIA(instance, pCreateInfo, pAllocator, &object));
+       return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
 }
 
-Move<VkValidationCacheEXT> createValidationCacheEXT (const DeviceInterface& vk, VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkSurfaceKHR> createStreamDescriptorSurfaceGGP (const InstanceInterface& vk, VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkValidationCacheEXT object = 0;
-       VK_CHECK(vk.createValidationCacheEXT(device, pCreateInfo, pAllocator, &object));
-       return Move<VkValidationCacheEXT>(check<VkValidationCacheEXT>(object), Deleter<VkValidationCacheEXT>(vk, device, pAllocator));
+       VkSurfaceKHR object = 0;
+       VK_CHECK(vk.createStreamDescriptorSurfaceGGP(instance, pCreateInfo, pAllocator, &object));
+       return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
 }
 
-Move<VkAccelerationStructureNV> createAccelerationStructureNV (const DeviceInterface& vk, VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkSurfaceKHR> createScreenSurfaceQNX (const InstanceInterface& vk, VkInstance instance, const VkScreenSurfaceCreateInfoQNX* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkAccelerationStructureNV object = 0;
-       VK_CHECK(vk.createAccelerationStructureNV(device, pCreateInfo, pAllocator, &object));
-       return Move<VkAccelerationStructureNV>(check<VkAccelerationStructureNV>(object), Deleter<VkAccelerationStructureNV>(vk, device, pAllocator));
+       VkSurfaceKHR object = 0;
+       VK_CHECK(vk.createScreenSurfaceQNX(instance, pCreateInfo, pAllocator, &object));
+       return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
 }
 
-Move<VkSurfaceKHR> createHeadlessSurfaceEXT (const InstanceInterface& vk, VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkDebugReportCallbackEXT> createDebugReportCallbackEXT (const InstanceInterface& vk, VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkSurfaceKHR object = 0;
-       VK_CHECK(vk.createHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, &object));
-       return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
+       VkDebugReportCallbackEXT object = 0;
+       VK_CHECK(vk.createDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, &object));
+       return Move<VkDebugReportCallbackEXT>(check<VkDebugReportCallbackEXT>(object), Deleter<VkDebugReportCallbackEXT>(vk, instance, pAllocator));
 }
 
 Move<VkIndirectCommandsLayoutNV> createIndirectCommandsLayoutNV (const DeviceInterface& vk, VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator)
@@ -458,108 +444,129 @@ Move<VkIndirectCommandsLayoutNV> createIndirectCommandsLayoutNV (const DeviceInt
        return Move<VkIndirectCommandsLayoutNV>(check<VkIndirectCommandsLayoutNV>(object), Deleter<VkIndirectCommandsLayoutNV>(vk, device, pAllocator));
 }
 
-Move<VkAccelerationStructureKHR> createAccelerationStructureKHR (const DeviceInterface& vk, VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkDescriptorUpdateTemplate> createDescriptorUpdateTemplate (const DeviceInterface& vk, VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkAccelerationStructureKHR object = 0;
-       VK_CHECK(vk.createAccelerationStructureKHR(device, pCreateInfo, pAllocator, &object));
-       return Move<VkAccelerationStructureKHR>(check<VkAccelerationStructureKHR>(object), Deleter<VkAccelerationStructureKHR>(vk, device, pAllocator));
+       VkDescriptorUpdateTemplate object = 0;
+       VK_CHECK(vk.createDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, &object));
+       return Move<VkDescriptorUpdateTemplate>(check<VkDescriptorUpdateTemplate>(object), Deleter<VkDescriptorUpdateTemplate>(vk, device, pAllocator));
 }
 
-Move<VkSurfaceKHR> createAndroidSurfaceKHR (const InstanceInterface& vk, VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkSurfaceKHR> createIOSSurfaceMVK (const InstanceInterface& vk, VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
        VkSurfaceKHR object = 0;
-       VK_CHECK(vk.createAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, &object));
+       VK_CHECK(vk.createIOSSurfaceMVK(instance, pCreateInfo, pAllocator, &object));
        return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
 }
 
-Move<VkVideoSessionKHR> createVideoSessionKHR (const DeviceInterface& vk, VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkSurfaceKHR> createMacOSSurfaceMVK (const InstanceInterface& vk, VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkVideoSessionKHR object = 0;
-       VK_CHECK(vk.createVideoSessionKHR(device, pCreateInfo, pAllocator, &object));
-       return Move<VkVideoSessionKHR>(check<VkVideoSessionKHR>(object), Deleter<VkVideoSessionKHR>(vk, device, pAllocator));
+       VkSurfaceKHR object = 0;
+       VK_CHECK(vk.createMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, &object));
+       return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
 }
 
-Move<VkVideoSessionParametersKHR> createVideoSessionParametersKHR (const DeviceInterface& vk, VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkSurfaceKHR> createMetalSurfaceEXT (const InstanceInterface& vk, VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkVideoSessionParametersKHR object = 0;
-       VK_CHECK(vk.createVideoSessionParametersKHR(device, pCreateInfo, pAllocator, &object));
-       return Move<VkVideoSessionParametersKHR>(check<VkVideoSessionParametersKHR>(object), Deleter<VkVideoSessionParametersKHR>(vk, device, pAllocator));
+       VkSurfaceKHR object = 0;
+       VK_CHECK(vk.createMetalSurfaceEXT(instance, pCreateInfo, pAllocator, &object));
+       return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
 }
 
-Move<VkSurfaceKHR> createImagePipeSurfaceFUCHSIA (const InstanceInterface& vk, VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkSamplerYcbcrConversion> createSamplerYcbcrConversion (const DeviceInterface& vk, VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkSurfaceKHR object = 0;
-       VK_CHECK(vk.createImagePipeSurfaceFUCHSIA(instance, pCreateInfo, pAllocator, &object));
-       return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
+       VkSamplerYcbcrConversion object = 0;
+       VK_CHECK(vk.createSamplerYcbcrConversion(device, pCreateInfo, pAllocator, &object));
+       return Move<VkSamplerYcbcrConversion>(check<VkSamplerYcbcrConversion>(object), Deleter<VkSamplerYcbcrConversion>(vk, device, pAllocator));
 }
 
-Move<VkBufferCollectionFUCHSIA> createBufferCollectionFUCHSIA (const DeviceInterface& vk, VkDevice device, const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkValidationCacheEXT> createValidationCacheEXT (const DeviceInterface& vk, VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkBufferCollectionFUCHSIA object = 0;
-       VK_CHECK(vk.createBufferCollectionFUCHSIA(device, pCreateInfo, pAllocator, &object));
-       return Move<VkBufferCollectionFUCHSIA>(check<VkBufferCollectionFUCHSIA>(object), Deleter<VkBufferCollectionFUCHSIA>(vk, device, pAllocator));
+       VkValidationCacheEXT object = 0;
+       VK_CHECK(vk.createValidationCacheEXT(device, pCreateInfo, pAllocator, &object));
+       return Move<VkValidationCacheEXT>(check<VkValidationCacheEXT>(object), Deleter<VkValidationCacheEXT>(vk, device, pAllocator));
 }
 
-Move<VkSurfaceKHR> createStreamDescriptorSurfaceGGP (const InstanceInterface& vk, VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkDebugUtilsMessengerEXT> createDebugUtilsMessengerEXT (const InstanceInterface& vk, VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkSurfaceKHR object = 0;
-       VK_CHECK(vk.createStreamDescriptorSurfaceGGP(instance, pCreateInfo, pAllocator, &object));
-       return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
+       VkDebugUtilsMessengerEXT object = 0;
+       VK_CHECK(vk.createDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, &object));
+       return Move<VkDebugUtilsMessengerEXT>(check<VkDebugUtilsMessengerEXT>(object), Deleter<VkDebugUtilsMessengerEXT>(vk, instance, pAllocator));
 }
 
-Move<VkSurfaceKHR> createIOSSurfaceMVK (const InstanceInterface& vk, VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkRenderPass> createRenderPass2 (const DeviceInterface& vk, VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkSurfaceKHR object = 0;
-       VK_CHECK(vk.createIOSSurfaceMVK(instance, pCreateInfo, pAllocator, &object));
-       return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
+       VkRenderPass object = 0;
+       VK_CHECK(vk.createRenderPass2(device, pCreateInfo, pAllocator, &object));
+       return Move<VkRenderPass>(check<VkRenderPass>(object), Deleter<VkRenderPass>(vk, device, pAllocator));
 }
 
-Move<VkSurfaceKHR> createMacOSSurfaceMVK (const InstanceInterface& vk, VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkAccelerationStructureNV> createAccelerationStructureNV (const DeviceInterface& vk, VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkSurfaceKHR object = 0;
-       VK_CHECK(vk.createMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, &object));
-       return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
+       VkAccelerationStructureNV object = 0;
+       VK_CHECK(vk.createAccelerationStructureNV(device, pCreateInfo, pAllocator, &object));
+       return Move<VkAccelerationStructureNV>(check<VkAccelerationStructureNV>(object), Deleter<VkAccelerationStructureNV>(vk, device, pAllocator));
 }
 
-Move<VkSurfaceKHR> createMetalSurfaceEXT (const InstanceInterface& vk, VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkSurfaceKHR> createHeadlessSurfaceEXT (const InstanceInterface& vk, VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
        VkSurfaceKHR object = 0;
-       VK_CHECK(vk.createMetalSurfaceEXT(instance, pCreateInfo, pAllocator, &object));
+       VK_CHECK(vk.createHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, &object));
        return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
 }
 
-Move<VkSurfaceKHR> createViSurfaceNN (const InstanceInterface& vk, VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkAccelerationStructureKHR> createAccelerationStructureKHR (const DeviceInterface& vk, VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkSurfaceKHR object = 0;
-       VK_CHECK(vk.createViSurfaceNN(instance, pCreateInfo, pAllocator, &object));
-       return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
+       VkAccelerationStructureKHR object = 0;
+       VK_CHECK(vk.createAccelerationStructureKHR(device, pCreateInfo, pAllocator, &object));
+       return Move<VkAccelerationStructureKHR>(check<VkAccelerationStructureKHR>(object), Deleter<VkAccelerationStructureKHR>(vk, device, pAllocator));
 }
 
-Move<VkSurfaceKHR> createWaylandSurfaceKHR (const InstanceInterface& vk, VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkDeferredOperationKHR> createDeferredOperationKHR (const DeviceInterface& vk, VkDevice device, const VkAllocationCallbacks* pAllocator)
 {
-       VkSurfaceKHR object = 0;
-       VK_CHECK(vk.createWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, &object));
-       return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
+       VkDeferredOperationKHR object = 0;
+       VK_CHECK(vk.createDeferredOperationKHR(device, pAllocator, &object));
+       return Move<VkDeferredOperationKHR>(check<VkDeferredOperationKHR>(object), Deleter<VkDeferredOperationKHR>(vk, device, pAllocator));
 }
 
-Move<VkSurfaceKHR> createWin32SurfaceKHR (const InstanceInterface& vk, VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkPrivateDataSlot> createPrivateDataSlot (const DeviceInterface& vk, VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkSurfaceKHR object = 0;
-       VK_CHECK(vk.createWin32SurfaceKHR(instance, pCreateInfo, pAllocator, &object));
-       return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
+       VkPrivateDataSlot object = 0;
+       VK_CHECK(vk.createPrivateDataSlot(device, pCreateInfo, pAllocator, &object));
+       return Move<VkPrivateDataSlot>(check<VkPrivateDataSlot>(object), Deleter<VkPrivateDataSlot>(vk, device, pAllocator));
 }
 
-Move<VkSurfaceKHR> createXcbSurfaceKHR (const InstanceInterface& vk, VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkVideoSessionKHR> createVideoSessionKHR (const DeviceInterface& vk, VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkSurfaceKHR object = 0;
-       VK_CHECK(vk.createXcbSurfaceKHR(instance, pCreateInfo, pAllocator, &object));
-       return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
+       VkVideoSessionKHR object = 0;
+       VK_CHECK(vk.createVideoSessionKHR(device, pCreateInfo, pAllocator, &object));
+       return Move<VkVideoSessionKHR>(check<VkVideoSessionKHR>(object), Deleter<VkVideoSessionKHR>(vk, device, pAllocator));
 }
 
-Move<VkSurfaceKHR> createXlibSurfaceKHR (const InstanceInterface& vk, VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+Move<VkVideoSessionParametersKHR> createVideoSessionParametersKHR (const DeviceInterface& vk, VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
-       VkSurfaceKHR object = 0;
-       VK_CHECK(vk.createXlibSurfaceKHR(instance, pCreateInfo, pAllocator, &object));
-       return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
+       VkVideoSessionParametersKHR object = 0;
+       VK_CHECK(vk.createVideoSessionParametersKHR(device, pCreateInfo, pAllocator, &object));
+       return Move<VkVideoSessionParametersKHR>(check<VkVideoSessionParametersKHR>(object), Deleter<VkVideoSessionParametersKHR>(vk, device, pAllocator));
+}
+
+Move<VkCuModuleNVX> createCuModuleNVX (const DeviceInterface& vk, VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+{
+       VkCuModuleNVX object = 0;
+       VK_CHECK(vk.createCuModuleNVX(device, pCreateInfo, pAllocator, &object));
+       return Move<VkCuModuleNVX>(check<VkCuModuleNVX>(object), Deleter<VkCuModuleNVX>(vk, device, pAllocator));
+}
+
+Move<VkCuFunctionNVX> createCuFunctionNVX (const DeviceInterface& vk, VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+{
+       VkCuFunctionNVX object = 0;
+       VK_CHECK(vk.createCuFunctionNVX(device, pCreateInfo, pAllocator, &object));
+       return Move<VkCuFunctionNVX>(check<VkCuFunctionNVX>(object), Deleter<VkCuFunctionNVX>(vk, device, pAllocator));
+}
+
+Move<VkBufferCollectionFUCHSIA> createBufferCollectionFUCHSIA (const DeviceInterface& vk, VkDevice device, const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+{
+       VkBufferCollectionFUCHSIA object = 0;
+       VK_CHECK(vk.createBufferCollectionFUCHSIA(device, pCreateInfo, pAllocator, &object));
+       return Move<VkBufferCollectionFUCHSIA>(check<VkBufferCollectionFUCHSIA>(object), Deleter<VkBufferCollectionFUCHSIA>(vk, device, pAllocator));
 }
 
index 0173010..c20c835 100644 (file)
  * This file was generated by /scripts/gen_framework.py
  */
 
-const char*    getResultName                                                                                   (VkResult value);
-const char*    getStructureTypeName                                                                    (VkStructureType value);
-const char*    getPipelineCacheHeaderVersionName                                               (VkPipelineCacheHeaderVersion value);
-const char*    getImageLayoutName                                                                              (VkImageLayout value);
-const char*    getObjectTypeName                                                                               (VkObjectType value);
-const char*    getVendorIdName                                                                                 (VkVendorId value);
-const char*    getSystemAllocationScopeName                                                    (VkSystemAllocationScope value);
-const char*    getInternalAllocationTypeName                                                   (VkInternalAllocationType value);
-const char*    getFormatName                                                                                   (VkFormat value);
-const char*    getImageTilingName                                                                              (VkImageTiling value);
-const char*    getImageTypeName                                                                                (VkImageType value);
-const char*    getPhysicalDeviceTypeName                                                               (VkPhysicalDeviceType value);
-const char*    getQueryTypeName                                                                                (VkQueryType value);
-const char*    getSharingModeName                                                                              (VkSharingMode value);
-const char*    getComponentSwizzleName                                                                 (VkComponentSwizzle value);
-const char*    getImageViewTypeName                                                                    (VkImageViewType value);
+const char*    getAttachmentLoadOpName                                                                 (VkAttachmentLoadOp value);
+const char*    getAttachmentStoreOpName                                                                (VkAttachmentStoreOp value);
 const char*    getBlendFactorName                                                                              (VkBlendFactor value);
 const char*    getBlendOpName                                                                                  (VkBlendOp value);
+const char*    getBorderColorName                                                                              (VkBorderColor value);
+const char*    getPipelineCacheHeaderVersionName                                               (VkPipelineCacheHeaderVersion value);
+const char*    getComponentSwizzleName                                                                 (VkComponentSwizzle value);
+const char*    getCommandBufferLevelName                                                               (VkCommandBufferLevel value);
 const char*    getCompareOpName                                                                                (VkCompareOp value);
+const char*    getDescriptorTypeName                                                                   (VkDescriptorType value);
 const char*    getDynamicStateName                                                                             (VkDynamicState value);
+const char*    getPolygonModeName                                                                              (VkPolygonMode value);
+const char*    getFormatName                                                                                   (VkFormat value);
 const char*    getFrontFaceName                                                                                (VkFrontFace value);
-const char*    getVertexInputRateName                                                                  (VkVertexInputRate value);
+const char*    getImageLayoutName                                                                              (VkImageLayout value);
+const char*    getImageTilingName                                                                              (VkImageTiling value);
+const char*    getImageTypeName                                                                                (VkImageType value);
+const char*    getImageViewTypeName                                                                    (VkImageViewType value);
+const char*    getSharingModeName                                                                              (VkSharingMode value);
+const char*    getIndexTypeName                                                                                (VkIndexType value);
+const char*    getLogicOpName                                                                                  (VkLogicOp value);
+const char*    getPhysicalDeviceTypeName                                                               (VkPhysicalDeviceType value);
+const char*    getPipelineBindPointName                                                                (VkPipelineBindPoint value);
 const char*    getPrimitiveTopologyName                                                                (VkPrimitiveTopology value);
-const char*    getPolygonModeName                                                                              (VkPolygonMode value);
+const char*    getQueryTypeName                                                                                (VkQueryType value);
+const char*    getSubpassContentsName                                                                  (VkSubpassContents value);
+const char*    getResultName                                                                                   (VkResult value);
 const char*    getStencilOpName                                                                                (VkStencilOp value);
-const char*    getLogicOpName                                                                                  (VkLogicOp value);
-const char*    getBorderColorName                                                                              (VkBorderColor value);
-const char*    getFilterName                                                                                   (VkFilter value);
+const char*    getStructureTypeName                                                                    (VkStructureType value);
+const char*    getSystemAllocationScopeName                                                    (VkSystemAllocationScope value);
+const char*    getInternalAllocationTypeName                                                   (VkInternalAllocationType value);
 const char*    getSamplerAddressModeName                                                               (VkSamplerAddressMode value);
+const char*    getFilterName                                                                                   (VkFilter value);
 const char*    getSamplerMipmapModeName                                                                (VkSamplerMipmapMode value);
-const char*    getDescriptorTypeName                                                                   (VkDescriptorType value);
-const char*    getAttachmentLoadOpName                                                                 (VkAttachmentLoadOp value);
-const char*    getAttachmentStoreOpName                                                                (VkAttachmentStoreOp value);
-const char*    getPipelineBindPointName                                                                (VkPipelineBindPoint value);
-const char*    getCommandBufferLevelName                                                               (VkCommandBufferLevel value);
-const char*    getIndexTypeName                                                                                (VkIndexType value);
-const char*    getSubpassContentsName                                                                  (VkSubpassContents value);
-const char*    getPointClippingBehaviorName                                                    (VkPointClippingBehavior value);
-const char*    getTessellationDomainOriginName                                                 (VkTessellationDomainOrigin value);
-const char*    getSamplerYcbcrModelConversionName                                              (VkSamplerYcbcrModelConversion value);
-const char*    getSamplerYcbcrRangeName                                                                (VkSamplerYcbcrRange value);
-const char*    getChromaLocationName                                                                   (VkChromaLocation value);
+const char*    getVertexInputRateName                                                                  (VkVertexInputRate value);
+const char*    getObjectTypeName                                                                               (VkObjectType value);
+const char*    getIndirectCommandsTokenTypeNVName                                              (VkIndirectCommandsTokenTypeNV value);
 const char*    getDescriptorUpdateTemplateTypeName                                             (VkDescriptorUpdateTemplateType value);
-const char*    getDriverIdName                                                                                 (VkDriverId value);
-const char*    getShaderFloatControlsIndependenceName                                  (VkShaderFloatControlsIndependence value);
-const char*    getSamplerReductionModeName                                                             (VkSamplerReductionMode value);
-const char*    getSemaphoreTypeName                                                                    (VkSemaphoreType value);
-const char*    getPresentModeKHRName                                                                   (VkPresentModeKHR value);
-const char*    getColorSpaceKHRName                                                                    (VkColorSpaceKHR value);
-const char*    getPerformanceCounterUnitKHRName                                                (VkPerformanceCounterUnitKHR value);
-const char*    getPerformanceCounterScopeKHRName                                               (VkPerformanceCounterScopeKHR value);
-const char*    getPerformanceCounterStorageKHRName                                             (VkPerformanceCounterStorageKHR value);
-const char*    getQueueGlobalPriorityKHRName                                                   (VkQueueGlobalPriorityKHR value);
-const char*    getFragmentShadingRateCombinerOpKHRName                                 (VkFragmentShadingRateCombinerOpKHR value);
-const char*    getPipelineExecutableStatisticFormatKHRName                             (VkPipelineExecutableStatisticFormatKHR value);
-const char*    getDebugReportObjectTypeEXTName                                                 (VkDebugReportObjectTypeEXT value);
-const char*    getRasterizationOrderAMDName                                                    (VkRasterizationOrderAMD value);
-const char*    getShaderInfoTypeAMDName                                                                (VkShaderInfoTypeAMD value);
-const char*    getValidationCheckEXTName                                                               (VkValidationCheckEXT value);
-const char*    getPipelineRobustnessBufferBehaviorEXTName                              (VkPipelineRobustnessBufferBehaviorEXT value);
-const char*    getPipelineRobustnessImageBehaviorEXTName                               (VkPipelineRobustnessImageBehaviorEXT 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*    getConservativeRasterizationModeEXTName                                 (VkConservativeRasterizationModeEXT value);
-const char*    getBlendOverlapEXTName                                                                  (VkBlendOverlapEXT value);
+const char*    getPointClippingBehaviorName                                                    (VkPointClippingBehavior value);
 const char*    getCoverageModulationModeNVName                                                 (VkCoverageModulationModeNV value);
+const char*    getCoverageReductionModeNVName                                                  (VkCoverageReductionModeNV value);
 const char*    getValidationCacheHeaderVersionEXTName                                  (VkValidationCacheHeaderVersionEXT value);
-const char*    getShadingRatePaletteEntryNVName                                                (VkShadingRatePaletteEntryNV value);
-const char*    getCoarseSampleOrderTypeNVName                                                  (VkCoarseSampleOrderTypeNV value);
-const char*    getRayTracingShaderGroupTypeKHRName                                             (VkRayTracingShaderGroupTypeKHR value);
-const char*    getGeometryTypeKHRName                                                                  (VkGeometryTypeKHR value);
-const char*    getAccelerationStructureTypeKHRName                                             (VkAccelerationStructureTypeKHR value);
+const char*    getShaderInfoTypeAMDName                                                                (VkShaderInfoTypeAMD value);
+const char*    getQueueGlobalPriorityKHRName                                                   (VkQueueGlobalPriorityKHR value);
+const char*    getTimeDomainEXTName                                                                    (VkTimeDomainEXT value);
+const char*    getConservativeRasterizationModeEXTName                                 (VkConservativeRasterizationModeEXT value);
+const char*    getSemaphoreTypeName                                                                    (VkSemaphoreType value);
+const char*    getBuildAccelerationStructureModeKHRName                                (VkBuildAccelerationStructureModeKHR value);
 const char*    getCopyAccelerationStructureModeKHRName                                 (VkCopyAccelerationStructureModeKHR value);
+const char*    getAccelerationStructureTypeKHRName                                             (VkAccelerationStructureTypeKHR value);
+const char*    getGeometryTypeKHRName                                                                  (VkGeometryTypeKHR value);
+const char*    getRayTracingShaderGroupTypeKHRName                                             (VkRayTracingShaderGroupTypeKHR value);
 const char*    getAccelerationStructureMemoryRequirementsTypeNVName    (VkAccelerationStructureMemoryRequirementsTypeNV value);
-const char*    getTimeDomainEXTName                                                                    (VkTimeDomainEXT value);
+const char*    getAccelerationStructureBuildTypeKHRName                                (VkAccelerationStructureBuildTypeKHR value);
+const char*    getAccelerationStructureCompatibilityKHRName                    (VkAccelerationStructureCompatibilityKHR value);
+const char*    getShaderGroupShaderKHRName                                                             (VkShaderGroupShaderKHR value);
 const char*    getMemoryOverallocationBehaviorAMDName                                  (VkMemoryOverallocationBehaviorAMD value);
+const char*    getScopeNVName                                                                                  (VkScopeNV value);
+const char*    getComponentTypeNVName                                                                  (VkComponentTypeNV value);
+const char*    getPerformanceCounterScopeKHRName                                               (VkPerformanceCounterScopeKHR value);
+const char*    getPerformanceCounterUnitKHRName                                                (VkPerformanceCounterUnitKHR value);
+const char*    getPerformanceCounterStorageKHRName                                             (VkPerformanceCounterStorageKHR value);
 const char*    getPerformanceConfigurationTypeINTELName                                (VkPerformanceConfigurationTypeINTEL value);
 const char*    getQueryPoolSamplingModeINTELName                                               (VkQueryPoolSamplingModeINTEL value);
 const char*    getPerformanceOverrideTypeINTELName                                             (VkPerformanceOverrideTypeINTEL value);
 const char*    getPerformanceParameterTypeINTELName                                    (VkPerformanceParameterTypeINTEL value);
 const char*    getPerformanceValueTypeINTELName                                                (VkPerformanceValueTypeINTEL value);
-const char*    getValidationFeatureEnableEXTName                                               (VkValidationFeatureEnableEXT value);
-const char*    getValidationFeatureDisableEXTName                                              (VkValidationFeatureDisableEXT value);
-const char*    getComponentTypeNVName                                                                  (VkComponentTypeNV value);
-const char*    getScopeNVName                                                                                  (VkScopeNV value);
-const char*    getCoverageReductionModeNVName                                                  (VkCoverageReductionModeNV value);
-const char*    getProvokingVertexModeEXTName                                                   (VkProvokingVertexModeEXT value);
 const char*    getLineRasterizationModeEXTName                                                 (VkLineRasterizationModeEXT value);
-const char*    getIndirectCommandsTokenTypeNVName                                              (VkIndirectCommandsTokenTypeNV value);
-const char*    getDeviceMemoryReportEventTypeEXTName                                   (VkDeviceMemoryReportEventTypeEXT value);
-const char*    getFragmentShadingRateTypeNVName                                                (VkFragmentShadingRateTypeNV value);
 const char*    getFragmentShadingRateNVName                                                    (VkFragmentShadingRateNV value);
-const char*    getAccelerationStructureMotionInstanceTypeNVName                (VkAccelerationStructureMotionInstanceTypeNV value);
+const char*    getFragmentShadingRateTypeNVName                                                (VkFragmentShadingRateTypeNV value);
 const char*    getSubpassMergeStatusEXTName                                                    (VkSubpassMergeStatusEXT value);
-const char*    getBuildAccelerationStructureModeKHRName                                (VkBuildAccelerationStructureModeKHR value);
-const char*    getAccelerationStructureBuildTypeKHRName                                (VkAccelerationStructureBuildTypeKHR value);
-const char*    getAccelerationStructureCompatibilityKHRName                    (VkAccelerationStructureCompatibilityKHR value);
-const char*    getShaderGroupShaderKHRName                                                             (VkShaderGroupShaderKHR value);
+const char*    getProvokingVertexModeEXTName                                                   (VkProvokingVertexModeEXT value);
+const char*    getPipelineRobustnessBufferBehaviorEXTName                              (VkPipelineRobustnessBufferBehaviorEXT value);
+const char*    getPipelineRobustnessImageBehaviorEXTName                               (VkPipelineRobustnessImageBehaviorEXT value);
+const char*    getColorSpaceKHRName                                                                    (VkColorSpaceKHR value);
+const char*    getPresentModeKHRName                                                                   (VkPresentModeKHR value);
+const char*    getDebugReportObjectTypeEXTName                                                 (VkDebugReportObjectTypeEXT value);
+const char*    getDeviceMemoryReportEventTypeEXTName                                   (VkDeviceMemoryReportEventTypeEXT value);
+const char*    getRasterizationOrderAMDName                                                    (VkRasterizationOrderAMD value);
+const char*    getValidationCheckEXTName                                                               (VkValidationCheckEXT value);
+const char*    getValidationFeatureEnableEXTName                                               (VkValidationFeatureEnableEXT value);
+const char*    getValidationFeatureDisableEXTName                                              (VkValidationFeatureDisableEXT value);
+const char*    getDisplayPowerStateEXTName                                                             (VkDisplayPowerStateEXT value);
+const char*    getDeviceEventTypeEXTName                                                               (VkDeviceEventTypeEXT value);
+const char*    getDisplayEventTypeEXTName                                                              (VkDisplayEventTypeEXT value);
+const char*    getTessellationDomainOriginName                                                 (VkTessellationDomainOrigin value);
+const char*    getSamplerYcbcrModelConversionName                                              (VkSamplerYcbcrModelConversion value);
+const char*    getSamplerYcbcrRangeName                                                                (VkSamplerYcbcrRange value);
+const char*    getChromaLocationName                                                                   (VkChromaLocation value);
+const char*    getSamplerReductionModeName                                                             (VkSamplerReductionMode value);
+const char*    getBlendOverlapEXTName                                                                  (VkBlendOverlapEXT value);
+const char*    getFullScreenExclusiveEXTName                                                   (VkFullScreenExclusiveEXT value);
+const char*    getShaderFloatControlsIndependenceName                                  (VkShaderFloatControlsIndependence value);
+const char*    getFragmentShadingRateCombinerOpKHRName                                 (VkFragmentShadingRateCombinerOpKHR value);
+const char*    getVendorIdName                                                                                 (VkVendorId value);
+const char*    getDriverIdName                                                                                 (VkDriverId value);
+const char*    getShadingRatePaletteEntryNVName                                                (VkShadingRatePaletteEntryNV value);
+const char*    getCoarseSampleOrderTypeNVName                                                  (VkCoarseSampleOrderTypeNV value);
+const char*    getPipelineExecutableStatisticFormatKHRName                             (VkPipelineExecutableStatisticFormatKHR value);
 const char*    getQueryResultStatusKHRName                                                             (VkQueryResultStatusKHR value);
+const char*    getAccelerationStructureMotionInstanceTypeNVName                (VkAccelerationStructureMotionInstanceTypeNV value);
 const char*    getdVideoH264ChromaFormatIdcName                                                (StdVideoH264ChromaFormatIdc value);
 const char*    getdVideoH264ProfileIdcName                                                             (StdVideoH264ProfileIdc value);
 const char*    getdVideoH264LevelName                                                                  (StdVideoH264Level value);
@@ -118,116 +119,116 @@ const char*     getdVideoH264DisableDeblockingFilterIdcName                             (StdVideoH264DisableD
 const char*    getdVideoH264SliceTypeName                                                              (StdVideoH264SliceType value);
 const char*    getdVideoH264PictureTypeName                                                    (StdVideoH264PictureType value);
 const char*    getdVideoH264NonVclNaluTypeName                                                 (StdVideoH264NonVclNaluType value);
+const char*    getdVideoDecodeH264FieldOrderCountName                                  (StdVideoDecodeH264FieldOrderCount value);
 const char*    getdVideoH265ChromaFormatIdcName                                                (StdVideoH265ChromaFormatIdc value);
 const char*    getdVideoH265ProfileIdcName                                                             (StdVideoH265ProfileIdc value);
 const char*    getdVideoH265LevelName                                                                  (StdVideoH265Level value);
 const char*    getdVideoH265SliceTypeName                                                              (StdVideoH265SliceType value);
 const char*    getdVideoH265PictureTypeName                                                    (StdVideoH265PictureType value);
-const char*    getdVideoDecodeH264FieldOrderCountName                                  (StdVideoDecodeH264FieldOrderCount value);
-const char*    getFullScreenExclusiveEXTName                                                   (VkFullScreenExclusiveEXT value);
 
-inline tcu::Format::Enum<VkResult>                                                                                     getResultStr                                                                            (VkResult value)                                                                                { return tcu::Format::Enum<VkResult>(getResultName, value);                                                                                                                                                                     }
-inline tcu::Format::Enum<VkStructureType>                                                                      getStructureTypeStr                                                                     (VkStructureType value)                                                                 { return tcu::Format::Enum<VkStructureType>(getStructureTypeName, value);                                                                                                                                       }
-inline tcu::Format::Enum<VkPipelineCacheHeaderVersion>                                         getPipelineCacheHeaderVersionStr                                        (VkPipelineCacheHeaderVersion value)                                    { return tcu::Format::Enum<VkPipelineCacheHeaderVersion>(getPipelineCacheHeaderVersionName, value);                                                                                     }
-inline tcu::Format::Enum<VkImageLayout>                                                                                getImageLayoutStr                                                                       (VkImageLayout value)                                                                   { return tcu::Format::Enum<VkImageLayout>(getImageLayoutName, value);                                                                                                                                           }
-inline tcu::Format::Enum<VkObjectType>                                                                         getObjectTypeStr                                                                        (VkObjectType value)                                                                    { return tcu::Format::Enum<VkObjectType>(getObjectTypeName, value);                                                                                                                                                     }
-inline tcu::Format::Enum<VkVendorId>                                                                           getVendorIdStr                                                                          (VkVendorId value)                                                                              { return tcu::Format::Enum<VkVendorId>(getVendorIdName, value);                                                                                                                                                         }
-inline tcu::Format::Enum<VkSystemAllocationScope>                                                      getSystemAllocationScopeStr                                                     (VkSystemAllocationScope value)                                                 { return tcu::Format::Enum<VkSystemAllocationScope>(getSystemAllocationScopeName, value);                                                                                                       }
-inline tcu::Format::Enum<VkInternalAllocationType>                                                     getInternalAllocationTypeStr                                            (VkInternalAllocationType value)                                                { return tcu::Format::Enum<VkInternalAllocationType>(getInternalAllocationTypeName, value);                                                                                                     }
-inline tcu::Format::Enum<VkFormat>                                                                                     getFormatStr                                                                            (VkFormat value)                                                                                { return tcu::Format::Enum<VkFormat>(getFormatName, value);                                                                                                                                                                     }
-inline tcu::Format::Enum<VkImageTiling>                                                                                getImageTilingStr                                                                       (VkImageTiling value)                                                                   { return tcu::Format::Enum<VkImageTiling>(getImageTilingName, value);                                                                                                                                           }
-inline tcu::Format::Enum<VkImageType>                                                                          getImageTypeStr                                                                         (VkImageType value)                                                                             { return tcu::Format::Enum<VkImageType>(getImageTypeName, value);                                                                                                                                                       }
-inline tcu::Format::Enum<VkPhysicalDeviceType>                                                         getPhysicalDeviceTypeStr                                                        (VkPhysicalDeviceType value)                                                    { return tcu::Format::Enum<VkPhysicalDeviceType>(getPhysicalDeviceTypeName, value);                                                                                                                     }
-inline tcu::Format::Enum<VkQueryType>                                                                          getQueryTypeStr                                                                         (VkQueryType value)                                                                             { return tcu::Format::Enum<VkQueryType>(getQueryTypeName, value);                                                                                                                                                       }
-inline tcu::Format::Enum<VkSharingMode>                                                                                getSharingModeStr                                                                       (VkSharingMode value)                                                                   { return tcu::Format::Enum<VkSharingMode>(getSharingModeName, value);                                                                                                                                           }
-inline tcu::Format::Enum<VkComponentSwizzle>                                                           getComponentSwizzleStr                                                          (VkComponentSwizzle value)                                                              { return tcu::Format::Enum<VkComponentSwizzle>(getComponentSwizzleName, value);                                                                                                                         }
-inline tcu::Format::Enum<VkImageViewType>                                                                      getImageViewTypeStr                                                                     (VkImageViewType value)                                                                 { return tcu::Format::Enum<VkImageViewType>(getImageViewTypeName, value);                                                                                                                                       }
+inline tcu::Format::Enum<VkAttachmentLoadOp>                                                           getAttachmentLoadOpStr                                                          (VkAttachmentLoadOp value)                                                              { return tcu::Format::Enum<VkAttachmentLoadOp>(getAttachmentLoadOpName, value);                                                                                                                         }
+inline tcu::Format::Enum<VkAttachmentStoreOp>                                                          getAttachmentStoreOpStr                                                         (VkAttachmentStoreOp value)                                                             { return tcu::Format::Enum<VkAttachmentStoreOp>(getAttachmentStoreOpName, value);                                                                                                                       }
 inline tcu::Format::Enum<VkBlendFactor>                                                                                getBlendFactorStr                                                                       (VkBlendFactor value)                                                                   { return tcu::Format::Enum<VkBlendFactor>(getBlendFactorName, value);                                                                                                                                           }
 inline tcu::Format::Enum<VkBlendOp>                                                                                    getBlendOpStr                                                                           (VkBlendOp value)                                                                               { return tcu::Format::Enum<VkBlendOp>(getBlendOpName, value);                                                                                                                                                           }
+inline tcu::Format::Enum<VkBorderColor>                                                                                getBorderColorStr                                                                       (VkBorderColor value)                                                                   { return tcu::Format::Enum<VkBorderColor>(getBorderColorName, value);                                                                                                                                           }
+inline tcu::Format::Enum<VkPipelineCacheHeaderVersion>                                         getPipelineCacheHeaderVersionStr                                        (VkPipelineCacheHeaderVersion value)                                    { return tcu::Format::Enum<VkPipelineCacheHeaderVersion>(getPipelineCacheHeaderVersionName, value);                                                                                     }
+inline tcu::Format::Enum<VkComponentSwizzle>                                                           getComponentSwizzleStr                                                          (VkComponentSwizzle value)                                                              { return tcu::Format::Enum<VkComponentSwizzle>(getComponentSwizzleName, value);                                                                                                                         }
+inline tcu::Format::Enum<VkCommandBufferLevel>                                                         getCommandBufferLevelStr                                                        (VkCommandBufferLevel value)                                                    { return tcu::Format::Enum<VkCommandBufferLevel>(getCommandBufferLevelName, value);                                                                                                                     }
 inline tcu::Format::Enum<VkCompareOp>                                                                          getCompareOpStr                                                                         (VkCompareOp value)                                                                             { return tcu::Format::Enum<VkCompareOp>(getCompareOpName, value);                                                                                                                                                       }
+inline tcu::Format::Enum<VkDescriptorType>                                                                     getDescriptorTypeStr                                                            (VkDescriptorType value)                                                                { return tcu::Format::Enum<VkDescriptorType>(getDescriptorTypeName, value);                                                                                                                                     }
 inline tcu::Format::Enum<VkDynamicState>                                                                       getDynamicStateStr                                                                      (VkDynamicState value)                                                                  { return tcu::Format::Enum<VkDynamicState>(getDynamicStateName, value);                                                                                                                                         }
+inline tcu::Format::Enum<VkPolygonMode>                                                                                getPolygonModeStr                                                                       (VkPolygonMode value)                                                                   { return tcu::Format::Enum<VkPolygonMode>(getPolygonModeName, value);                                                                                                                                           }
+inline tcu::Format::Enum<VkFormat>                                                                                     getFormatStr                                                                            (VkFormat value)                                                                                { return tcu::Format::Enum<VkFormat>(getFormatName, value);                                                                                                                                                                     }
 inline tcu::Format::Enum<VkFrontFace>                                                                          getFrontFaceStr                                                                         (VkFrontFace value)                                                                             { return tcu::Format::Enum<VkFrontFace>(getFrontFaceName, value);                                                                                                                                                       }
-inline tcu::Format::Enum<VkVertexInputRate>                                                                    getVertexInputRateStr                                                           (VkVertexInputRate value)                                                               { return tcu::Format::Enum<VkVertexInputRate>(getVertexInputRateName, value);                                                                                                                           }
+inline tcu::Format::Enum<VkImageLayout>                                                                                getImageLayoutStr                                                                       (VkImageLayout value)                                                                   { return tcu::Format::Enum<VkImageLayout>(getImageLayoutName, value);                                                                                                                                           }
+inline tcu::Format::Enum<VkImageTiling>                                                                                getImageTilingStr                                                                       (VkImageTiling value)                                                                   { return tcu::Format::Enum<VkImageTiling>(getImageTilingName, value);                                                                                                                                           }
+inline tcu::Format::Enum<VkImageType>                                                                          getImageTypeStr                                                                         (VkImageType value)                                                                             { return tcu::Format::Enum<VkImageType>(getImageTypeName, value);                                                                                                                                                       }
+inline tcu::Format::Enum<VkImageViewType>                                                                      getImageViewTypeStr                                                                     (VkImageViewType value)                                                                 { return tcu::Format::Enum<VkImageViewType>(getImageViewTypeName, value);                                                                                                                                       }
+inline tcu::Format::Enum<VkSharingMode>                                                                                getSharingModeStr                                                                       (VkSharingMode value)                                                                   { return tcu::Format::Enum<VkSharingMode>(getSharingModeName, value);                                                                                                                                           }
+inline tcu::Format::Enum<VkIndexType>                                                                          getIndexTypeStr                                                                         (VkIndexType value)                                                                             { return tcu::Format::Enum<VkIndexType>(getIndexTypeName, value);                                                                                                                                                       }
+inline tcu::Format::Enum<VkLogicOp>                                                                                    getLogicOpStr                                                                           (VkLogicOp value)                                                                               { return tcu::Format::Enum<VkLogicOp>(getLogicOpName, value);                                                                                                                                                           }
+inline tcu::Format::Enum<VkPhysicalDeviceType>                                                         getPhysicalDeviceTypeStr                                                        (VkPhysicalDeviceType value)                                                    { return tcu::Format::Enum<VkPhysicalDeviceType>(getPhysicalDeviceTypeName, value);                                                                                                                     }
+inline tcu::Format::Enum<VkPipelineBindPoint>                                                          getPipelineBindPointStr                                                         (VkPipelineBindPoint value)                                                             { return tcu::Format::Enum<VkPipelineBindPoint>(getPipelineBindPointName, value);                                                                                                                       }
 inline tcu::Format::Enum<VkPrimitiveTopology>                                                          getPrimitiveTopologyStr                                                         (VkPrimitiveTopology value)                                                             { return tcu::Format::Enum<VkPrimitiveTopology>(getPrimitiveTopologyName, value);                                                                                                                       }
-inline tcu::Format::Enum<VkPolygonMode>                                                                                getPolygonModeStr                                                                       (VkPolygonMode value)                                                                   { return tcu::Format::Enum<VkPolygonMode>(getPolygonModeName, value);                                                                                                                                           }
+inline tcu::Format::Enum<VkQueryType>                                                                          getQueryTypeStr                                                                         (VkQueryType value)                                                                             { return tcu::Format::Enum<VkQueryType>(getQueryTypeName, value);                                                                                                                                                       }
+inline tcu::Format::Enum<VkSubpassContents>                                                                    getSubpassContentsStr                                                           (VkSubpassContents value)                                                               { return tcu::Format::Enum<VkSubpassContents>(getSubpassContentsName, value);                                                                                                                           }
+inline tcu::Format::Enum<VkResult>                                                                                     getResultStr                                                                            (VkResult value)                                                                                { return tcu::Format::Enum<VkResult>(getResultName, value);                                                                                                                                                                     }
 inline tcu::Format::Enum<VkStencilOp>                                                                          getStencilOpStr                                                                         (VkStencilOp value)                                                                             { return tcu::Format::Enum<VkStencilOp>(getStencilOpName, value);                                                                                                                                                       }
-inline tcu::Format::Enum<VkLogicOp>                                                                                    getLogicOpStr                                                                           (VkLogicOp value)                                                                               { return tcu::Format::Enum<VkLogicOp>(getLogicOpName, value);                                                                                                                                                           }
-inline tcu::Format::Enum<VkBorderColor>                                                                                getBorderColorStr                                                                       (VkBorderColor value)                                                                   { return tcu::Format::Enum<VkBorderColor>(getBorderColorName, value);                                                                                                                                           }
-inline tcu::Format::Enum<VkFilter>                                                                                     getFilterStr                                                                            (VkFilter value)                                                                                { return tcu::Format::Enum<VkFilter>(getFilterName, value);                                                                                                                                                                     }
+inline tcu::Format::Enum<VkStructureType>                                                                      getStructureTypeStr                                                                     (VkStructureType value)                                                                 { return tcu::Format::Enum<VkStructureType>(getStructureTypeName, value);                                                                                                                                       }
+inline tcu::Format::Enum<VkSystemAllocationScope>                                                      getSystemAllocationScopeStr                                                     (VkSystemAllocationScope value)                                                 { return tcu::Format::Enum<VkSystemAllocationScope>(getSystemAllocationScopeName, value);                                                                                                       }
+inline tcu::Format::Enum<VkInternalAllocationType>                                                     getInternalAllocationTypeStr                                            (VkInternalAllocationType value)                                                { return tcu::Format::Enum<VkInternalAllocationType>(getInternalAllocationTypeName, value);                                                                                                     }
 inline tcu::Format::Enum<VkSamplerAddressMode>                                                         getSamplerAddressModeStr                                                        (VkSamplerAddressMode value)                                                    { return tcu::Format::Enum<VkSamplerAddressMode>(getSamplerAddressModeName, value);                                                                                                                     }
+inline tcu::Format::Enum<VkFilter>                                                                                     getFilterStr                                                                            (VkFilter value)                                                                                { return tcu::Format::Enum<VkFilter>(getFilterName, value);                                                                                                                                                                     }
 inline tcu::Format::Enum<VkSamplerMipmapMode>                                                          getSamplerMipmapModeStr                                                         (VkSamplerMipmapMode value)                                                             { return tcu::Format::Enum<VkSamplerMipmapMode>(getSamplerMipmapModeName, value);                                                                                                                       }
-inline tcu::Format::Enum<VkDescriptorType>                                                                     getDescriptorTypeStr                                                            (VkDescriptorType value)                                                                { return tcu::Format::Enum<VkDescriptorType>(getDescriptorTypeName, value);                                                                                                                                     }
-inline tcu::Format::Enum<VkAttachmentLoadOp>                                                           getAttachmentLoadOpStr                                                          (VkAttachmentLoadOp value)                                                              { return tcu::Format::Enum<VkAttachmentLoadOp>(getAttachmentLoadOpName, value);                                                                                                                         }
-inline tcu::Format::Enum<VkAttachmentStoreOp>                                                          getAttachmentStoreOpStr                                                         (VkAttachmentStoreOp value)                                                             { return tcu::Format::Enum<VkAttachmentStoreOp>(getAttachmentStoreOpName, value);                                                                                                                       }
-inline tcu::Format::Enum<VkPipelineBindPoint>                                                          getPipelineBindPointStr                                                         (VkPipelineBindPoint value)                                                             { return tcu::Format::Enum<VkPipelineBindPoint>(getPipelineBindPointName, value);                                                                                                                       }
-inline tcu::Format::Enum<VkCommandBufferLevel>                                                         getCommandBufferLevelStr                                                        (VkCommandBufferLevel value)                                                    { return tcu::Format::Enum<VkCommandBufferLevel>(getCommandBufferLevelName, value);                                                                                                                     }
-inline tcu::Format::Enum<VkIndexType>                                                                          getIndexTypeStr                                                                         (VkIndexType value)                                                                             { return tcu::Format::Enum<VkIndexType>(getIndexTypeName, value);                                                                                                                                                       }
-inline tcu::Format::Enum<VkSubpassContents>                                                                    getSubpassContentsStr                                                           (VkSubpassContents value)                                                               { return tcu::Format::Enum<VkSubpassContents>(getSubpassContentsName, value);                                                                                                                           }
-inline tcu::Format::Enum<VkPointClippingBehavior>                                                      getPointClippingBehaviorStr                                                     (VkPointClippingBehavior value)                                                 { return tcu::Format::Enum<VkPointClippingBehavior>(getPointClippingBehaviorName, value);                                                                                                       }
-inline tcu::Format::Enum<VkTessellationDomainOrigin>                                           getTessellationDomainOriginStr                                          (VkTessellationDomainOrigin value)                                              { return tcu::Format::Enum<VkTessellationDomainOrigin>(getTessellationDomainOriginName, value);                                                                                         }
-inline tcu::Format::Enum<VkSamplerYcbcrModelConversion>                                                getSamplerYcbcrModelConversionStr                                       (VkSamplerYcbcrModelConversion value)                                   { return tcu::Format::Enum<VkSamplerYcbcrModelConversion>(getSamplerYcbcrModelConversionName, value);                                                                           }
-inline tcu::Format::Enum<VkSamplerYcbcrRange>                                                          getSamplerYcbcrRangeStr                                                         (VkSamplerYcbcrRange value)                                                             { return tcu::Format::Enum<VkSamplerYcbcrRange>(getSamplerYcbcrRangeName, value);                                                                                                                       }
-inline tcu::Format::Enum<VkChromaLocation>                                                                     getChromaLocationStr                                                            (VkChromaLocation value)                                                                { return tcu::Format::Enum<VkChromaLocation>(getChromaLocationName, value);                                                                                                                                     }
+inline tcu::Format::Enum<VkVertexInputRate>                                                                    getVertexInputRateStr                                                           (VkVertexInputRate value)                                                               { return tcu::Format::Enum<VkVertexInputRate>(getVertexInputRateName, value);                                                                                                                           }
+inline tcu::Format::Enum<VkObjectType>                                                                         getObjectTypeStr                                                                        (VkObjectType value)                                                                    { return tcu::Format::Enum<VkObjectType>(getObjectTypeName, value);                                                                                                                                                     }
+inline tcu::Format::Enum<VkIndirectCommandsTokenTypeNV>                                                getIndirectCommandsTokenTypeNVStr                                       (VkIndirectCommandsTokenTypeNV value)                                   { return tcu::Format::Enum<VkIndirectCommandsTokenTypeNV>(getIndirectCommandsTokenTypeNVName, value);                                                                           }
 inline tcu::Format::Enum<VkDescriptorUpdateTemplateType>                                       getDescriptorUpdateTemplateTypeStr                                      (VkDescriptorUpdateTemplateType value)                                  { return tcu::Format::Enum<VkDescriptorUpdateTemplateType>(getDescriptorUpdateTemplateTypeName, value);                                                                         }
-inline tcu::Format::Enum<VkDriverId>                                                                           getDriverIdStr                                                                          (VkDriverId value)                                                                              { return tcu::Format::Enum<VkDriverId>(getDriverIdName, value);                                                                                                                                                         }
-inline tcu::Format::Enum<VkShaderFloatControlsIndependence>                                    getShaderFloatControlsIndependenceStr                           (VkShaderFloatControlsIndependence value)                               { return tcu::Format::Enum<VkShaderFloatControlsIndependence>(getShaderFloatControlsIndependenceName, value);                                                           }
-inline tcu::Format::Enum<VkSamplerReductionMode>                                                       getSamplerReductionModeStr                                                      (VkSamplerReductionMode value)                                                  { return tcu::Format::Enum<VkSamplerReductionMode>(getSamplerReductionModeName, value);                                                                                                         }
-inline tcu::Format::Enum<VkSemaphoreType>                                                                      getSemaphoreTypeStr                                                                     (VkSemaphoreType value)                                                                 { return tcu::Format::Enum<VkSemaphoreType>(getSemaphoreTypeName, value);                                                                                                                                       }
-inline tcu::Format::Enum<VkPresentModeKHR>                                                                     getPresentModeKHRStr                                                            (VkPresentModeKHR value)                                                                { return tcu::Format::Enum<VkPresentModeKHR>(getPresentModeKHRName, value);                                                                                                                                     }
-inline tcu::Format::Enum<VkColorSpaceKHR>                                                                      getColorSpaceKHRStr                                                                     (VkColorSpaceKHR value)                                                                 { return tcu::Format::Enum<VkColorSpaceKHR>(getColorSpaceKHRName, value);                                                                                                                                       }
-inline tcu::Format::Enum<VkPerformanceCounterUnitKHR>                                          getPerformanceCounterUnitKHRStr                                         (VkPerformanceCounterUnitKHR value)                                             { return tcu::Format::Enum<VkPerformanceCounterUnitKHR>(getPerformanceCounterUnitKHRName, value);                                                                                       }
-inline tcu::Format::Enum<VkPerformanceCounterScopeKHR>                                         getPerformanceCounterScopeKHRStr                                        (VkPerformanceCounterScopeKHR value)                                    { return tcu::Format::Enum<VkPerformanceCounterScopeKHR>(getPerformanceCounterScopeKHRName, value);                                                                                     }
-inline tcu::Format::Enum<VkPerformanceCounterStorageKHR>                                       getPerformanceCounterStorageKHRStr                                      (VkPerformanceCounterStorageKHR value)                                  { return tcu::Format::Enum<VkPerformanceCounterStorageKHR>(getPerformanceCounterStorageKHRName, value);                                                                         }
-inline tcu::Format::Enum<VkQueueGlobalPriorityKHR>                                                     getQueueGlobalPriorityKHRStr                                            (VkQueueGlobalPriorityKHR value)                                                { return tcu::Format::Enum<VkQueueGlobalPriorityKHR>(getQueueGlobalPriorityKHRName, value);                                                                                                     }
-inline tcu::Format::Enum<VkFragmentShadingRateCombinerOpKHR>                           getFragmentShadingRateCombinerOpKHRStr                          (VkFragmentShadingRateCombinerOpKHR value)                              { return tcu::Format::Enum<VkFragmentShadingRateCombinerOpKHR>(getFragmentShadingRateCombinerOpKHRName, value);                                                         }
-inline tcu::Format::Enum<VkPipelineExecutableStatisticFormatKHR>                       getPipelineExecutableStatisticFormatKHRStr                      (VkPipelineExecutableStatisticFormatKHR value)                  { return tcu::Format::Enum<VkPipelineExecutableStatisticFormatKHR>(getPipelineExecutableStatisticFormatKHRName, value);                                         }
-inline tcu::Format::Enum<VkDebugReportObjectTypeEXT>                                           getDebugReportObjectTypeEXTStr                                          (VkDebugReportObjectTypeEXT value)                                              { return tcu::Format::Enum<VkDebugReportObjectTypeEXT>(getDebugReportObjectTypeEXTName, value);                                                                                         }
-inline tcu::Format::Enum<VkRasterizationOrderAMD>                                                      getRasterizationOrderAMDStr                                                     (VkRasterizationOrderAMD value)                                                 { return tcu::Format::Enum<VkRasterizationOrderAMD>(getRasterizationOrderAMDName, value);                                                                                                       }
-inline tcu::Format::Enum<VkShaderInfoTypeAMD>                                                          getShaderInfoTypeAMDStr                                                         (VkShaderInfoTypeAMD value)                                                             { return tcu::Format::Enum<VkShaderInfoTypeAMD>(getShaderInfoTypeAMDName, value);                                                                                                                       }
-inline tcu::Format::Enum<VkValidationCheckEXT>                                                         getValidationCheckEXTStr                                                        (VkValidationCheckEXT value)                                                    { return tcu::Format::Enum<VkValidationCheckEXT>(getValidationCheckEXTName, value);                                                                                                                     }
-inline tcu::Format::Enum<VkPipelineRobustnessBufferBehaviorEXT>                                getPipelineRobustnessBufferBehaviorEXTStr                       (VkPipelineRobustnessBufferBehaviorEXT value)                   { return tcu::Format::Enum<VkPipelineRobustnessBufferBehaviorEXT>(getPipelineRobustnessBufferBehaviorEXTName, value);                                           }
-inline tcu::Format::Enum<VkPipelineRobustnessImageBehaviorEXT>                         getPipelineRobustnessImageBehaviorEXTStr                        (VkPipelineRobustnessImageBehaviorEXT value)                    { return tcu::Format::Enum<VkPipelineRobustnessImageBehaviorEXT>(getPipelineRobustnessImageBehaviorEXTName, 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<VkConservativeRasterizationModeEXT>                           getConservativeRasterizationModeEXTStr                          (VkConservativeRasterizationModeEXT value)                              { return tcu::Format::Enum<VkConservativeRasterizationModeEXT>(getConservativeRasterizationModeEXTName, value);                                                         }
-inline tcu::Format::Enum<VkBlendOverlapEXT>                                                                    getBlendOverlapEXTStr                                                           (VkBlendOverlapEXT value)                                                               { return tcu::Format::Enum<VkBlendOverlapEXT>(getBlendOverlapEXTName, value);                                                                                                                           }
+inline tcu::Format::Enum<VkPointClippingBehavior>                                                      getPointClippingBehaviorStr                                                     (VkPointClippingBehavior value)                                                 { return tcu::Format::Enum<VkPointClippingBehavior>(getPointClippingBehaviorName, value);                                                                                                       }
 inline tcu::Format::Enum<VkCoverageModulationModeNV>                                           getCoverageModulationModeNVStr                                          (VkCoverageModulationModeNV value)                                              { return tcu::Format::Enum<VkCoverageModulationModeNV>(getCoverageModulationModeNVName, value);                                                                                         }
+inline tcu::Format::Enum<VkCoverageReductionModeNV>                                                    getCoverageReductionModeNVStr                                           (VkCoverageReductionModeNV value)                                               { return tcu::Format::Enum<VkCoverageReductionModeNV>(getCoverageReductionModeNVName, value);                                                                                           }
 inline tcu::Format::Enum<VkValidationCacheHeaderVersionEXT>                                    getValidationCacheHeaderVersionEXTStr                           (VkValidationCacheHeaderVersionEXT value)                               { return tcu::Format::Enum<VkValidationCacheHeaderVersionEXT>(getValidationCacheHeaderVersionEXTName, value);                                                           }
-inline tcu::Format::Enum<VkShadingRatePaletteEntryNV>                                          getShadingRatePaletteEntryNVStr                                         (VkShadingRatePaletteEntryNV value)                                             { return tcu::Format::Enum<VkShadingRatePaletteEntryNV>(getShadingRatePaletteEntryNVName, value);                                                                                       }
-inline tcu::Format::Enum<VkCoarseSampleOrderTypeNV>                                                    getCoarseSampleOrderTypeNVStr                                           (VkCoarseSampleOrderTypeNV value)                                               { return tcu::Format::Enum<VkCoarseSampleOrderTypeNV>(getCoarseSampleOrderTypeNVName, value);                                                                                           }
-inline tcu::Format::Enum<VkRayTracingShaderGroupTypeKHR>                                       getRayTracingShaderGroupTypeKHRStr                                      (VkRayTracingShaderGroupTypeKHR value)                                  { return tcu::Format::Enum<VkRayTracingShaderGroupTypeKHR>(getRayTracingShaderGroupTypeKHRName, value);                                                                         }
-inline tcu::Format::Enum<VkGeometryTypeKHR>                                                                    getGeometryTypeKHRStr                                                           (VkGeometryTypeKHR value)                                                               { return tcu::Format::Enum<VkGeometryTypeKHR>(getGeometryTypeKHRName, value);                                                                                                                           }
-inline tcu::Format::Enum<VkAccelerationStructureTypeKHR>                                       getAccelerationStructureTypeKHRStr                                      (VkAccelerationStructureTypeKHR value)                                  { return tcu::Format::Enum<VkAccelerationStructureTypeKHR>(getAccelerationStructureTypeKHRName, value);                                                                         }
+inline tcu::Format::Enum<VkShaderInfoTypeAMD>                                                          getShaderInfoTypeAMDStr                                                         (VkShaderInfoTypeAMD value)                                                             { return tcu::Format::Enum<VkShaderInfoTypeAMD>(getShaderInfoTypeAMDName, value);                                                                                                                       }
+inline tcu::Format::Enum<VkQueueGlobalPriorityKHR>                                                     getQueueGlobalPriorityKHRStr                                            (VkQueueGlobalPriorityKHR value)                                                { return tcu::Format::Enum<VkQueueGlobalPriorityKHR>(getQueueGlobalPriorityKHRName, value);                                                                                                     }
+inline tcu::Format::Enum<VkTimeDomainEXT>                                                                      getTimeDomainEXTStr                                                                     (VkTimeDomainEXT value)                                                                 { return tcu::Format::Enum<VkTimeDomainEXT>(getTimeDomainEXTName, value);                                                                                                                                       }
+inline tcu::Format::Enum<VkConservativeRasterizationModeEXT>                           getConservativeRasterizationModeEXTStr                          (VkConservativeRasterizationModeEXT value)                              { return tcu::Format::Enum<VkConservativeRasterizationModeEXT>(getConservativeRasterizationModeEXTName, value);                                                         }
+inline tcu::Format::Enum<VkSemaphoreType>                                                                      getSemaphoreTypeStr                                                                     (VkSemaphoreType value)                                                                 { return tcu::Format::Enum<VkSemaphoreType>(getSemaphoreTypeName, value);                                                                                                                                       }
+inline tcu::Format::Enum<VkBuildAccelerationStructureModeKHR>                          getBuildAccelerationStructureModeKHRStr                         (VkBuildAccelerationStructureModeKHR value)                             { return tcu::Format::Enum<VkBuildAccelerationStructureModeKHR>(getBuildAccelerationStructureModeKHRName, value);                                                       }
 inline tcu::Format::Enum<VkCopyAccelerationStructureModeKHR>                           getCopyAccelerationStructureModeKHRStr                          (VkCopyAccelerationStructureModeKHR value)                              { return tcu::Format::Enum<VkCopyAccelerationStructureModeKHR>(getCopyAccelerationStructureModeKHRName, value);                                                         }
+inline tcu::Format::Enum<VkAccelerationStructureTypeKHR>                                       getAccelerationStructureTypeKHRStr                                      (VkAccelerationStructureTypeKHR value)                                  { return tcu::Format::Enum<VkAccelerationStructureTypeKHR>(getAccelerationStructureTypeKHRName, value);                                                                         }
+inline tcu::Format::Enum<VkGeometryTypeKHR>                                                                    getGeometryTypeKHRStr                                                           (VkGeometryTypeKHR value)                                                               { return tcu::Format::Enum<VkGeometryTypeKHR>(getGeometryTypeKHRName, value);                                                                                                                           }
+inline tcu::Format::Enum<VkRayTracingShaderGroupTypeKHR>                                       getRayTracingShaderGroupTypeKHRStr                                      (VkRayTracingShaderGroupTypeKHR value)                                  { return tcu::Format::Enum<VkRayTracingShaderGroupTypeKHR>(getRayTracingShaderGroupTypeKHRName, value);                                                                         }
 inline tcu::Format::Enum<VkAccelerationStructureMemoryRequirementsTypeNV>      getAccelerationStructureMemoryRequirementsTypeNVStr     (VkAccelerationStructureMemoryRequirementsTypeNV value) { return tcu::Format::Enum<VkAccelerationStructureMemoryRequirementsTypeNV>(getAccelerationStructureMemoryRequirementsTypeNVName, value);       }
-inline tcu::Format::Enum<VkTimeDomainEXT>                                                                      getTimeDomainEXTStr                                                                     (VkTimeDomainEXT value)                                                                 { return tcu::Format::Enum<VkTimeDomainEXT>(getTimeDomainEXTName, value);                                                                                                                                       }
+inline tcu::Format::Enum<VkAccelerationStructureBuildTypeKHR>                          getAccelerationStructureBuildTypeKHRStr                         (VkAccelerationStructureBuildTypeKHR value)                             { return tcu::Format::Enum<VkAccelerationStructureBuildTypeKHR>(getAccelerationStructureBuildTypeKHRName, value);                                                       }
+inline tcu::Format::Enum<VkAccelerationStructureCompatibilityKHR>                      getAccelerationStructureCompatibilityKHRStr                     (VkAccelerationStructureCompatibilityKHR value)                 { return tcu::Format::Enum<VkAccelerationStructureCompatibilityKHR>(getAccelerationStructureCompatibilityKHRName, value);                                       }
+inline tcu::Format::Enum<VkShaderGroupShaderKHR>                                                       getShaderGroupShaderKHRStr                                                      (VkShaderGroupShaderKHR value)                                                  { return tcu::Format::Enum<VkShaderGroupShaderKHR>(getShaderGroupShaderKHRName, value);                                                                                                         }
 inline tcu::Format::Enum<VkMemoryOverallocationBehaviorAMD>                                    getMemoryOverallocationBehaviorAMDStr                           (VkMemoryOverallocationBehaviorAMD value)                               { return tcu::Format::Enum<VkMemoryOverallocationBehaviorAMD>(getMemoryOverallocationBehaviorAMDName, value);                                                           }
+inline tcu::Format::Enum<VkScopeNV>                                                                                    getScopeNVStr                                                                           (VkScopeNV value)                                                                               { return tcu::Format::Enum<VkScopeNV>(getScopeNVName, value);                                                                                                                                                           }
+inline tcu::Format::Enum<VkComponentTypeNV>                                                                    getComponentTypeNVStr                                                           (VkComponentTypeNV value)                                                               { return tcu::Format::Enum<VkComponentTypeNV>(getComponentTypeNVName, value);                                                                                                                           }
+inline tcu::Format::Enum<VkPerformanceCounterScopeKHR>                                         getPerformanceCounterScopeKHRStr                                        (VkPerformanceCounterScopeKHR value)                                    { return tcu::Format::Enum<VkPerformanceCounterScopeKHR>(getPerformanceCounterScopeKHRName, value);                                                                                     }
+inline tcu::Format::Enum<VkPerformanceCounterUnitKHR>                                          getPerformanceCounterUnitKHRStr                                         (VkPerformanceCounterUnitKHR value)                                             { return tcu::Format::Enum<VkPerformanceCounterUnitKHR>(getPerformanceCounterUnitKHRName, value);                                                                                       }
+inline tcu::Format::Enum<VkPerformanceCounterStorageKHR>                                       getPerformanceCounterStorageKHRStr                                      (VkPerformanceCounterStorageKHR value)                                  { return tcu::Format::Enum<VkPerformanceCounterStorageKHR>(getPerformanceCounterStorageKHRName, value);                                                                         }
 inline tcu::Format::Enum<VkPerformanceConfigurationTypeINTEL>                          getPerformanceConfigurationTypeINTELStr                         (VkPerformanceConfigurationTypeINTEL value)                             { return tcu::Format::Enum<VkPerformanceConfigurationTypeINTEL>(getPerformanceConfigurationTypeINTELName, value);                                                       }
 inline tcu::Format::Enum<VkQueryPoolSamplingModeINTEL>                                         getQueryPoolSamplingModeINTELStr                                        (VkQueryPoolSamplingModeINTEL value)                                    { return tcu::Format::Enum<VkQueryPoolSamplingModeINTEL>(getQueryPoolSamplingModeINTELName, value);                                                                                     }
 inline tcu::Format::Enum<VkPerformanceOverrideTypeINTEL>                                       getPerformanceOverrideTypeINTELStr                                      (VkPerformanceOverrideTypeINTEL value)                                  { return tcu::Format::Enum<VkPerformanceOverrideTypeINTEL>(getPerformanceOverrideTypeINTELName, value);                                                                         }
 inline tcu::Format::Enum<VkPerformanceParameterTypeINTEL>                                      getPerformanceParameterTypeINTELStr                                     (VkPerformanceParameterTypeINTEL value)                                 { return tcu::Format::Enum<VkPerformanceParameterTypeINTEL>(getPerformanceParameterTypeINTELName, value);                                                                       }
 inline tcu::Format::Enum<VkPerformanceValueTypeINTEL>                                          getPerformanceValueTypeINTELStr                                         (VkPerformanceValueTypeINTEL value)                                             { return tcu::Format::Enum<VkPerformanceValueTypeINTEL>(getPerformanceValueTypeINTELName, value);                                                                                       }
-inline tcu::Format::Enum<VkValidationFeatureEnableEXT>                                         getValidationFeatureEnableEXTStr                                        (VkValidationFeatureEnableEXT value)                                    { return tcu::Format::Enum<VkValidationFeatureEnableEXT>(getValidationFeatureEnableEXTName, value);                                                                                     }
-inline tcu::Format::Enum<VkValidationFeatureDisableEXT>                                                getValidationFeatureDisableEXTStr                                       (VkValidationFeatureDisableEXT value)                                   { return tcu::Format::Enum<VkValidationFeatureDisableEXT>(getValidationFeatureDisableEXTName, value);                                                                           }
-inline tcu::Format::Enum<VkComponentTypeNV>                                                                    getComponentTypeNVStr                                                           (VkComponentTypeNV value)                                                               { return tcu::Format::Enum<VkComponentTypeNV>(getComponentTypeNVName, value);                                                                                                                           }
-inline tcu::Format::Enum<VkScopeNV>                                                                                    getScopeNVStr                                                                           (VkScopeNV value)                                                                               { return tcu::Format::Enum<VkScopeNV>(getScopeNVName, value);                                                                                                                                                           }
-inline tcu::Format::Enum<VkCoverageReductionModeNV>                                                    getCoverageReductionModeNVStr                                           (VkCoverageReductionModeNV value)                                               { return tcu::Format::Enum<VkCoverageReductionModeNV>(getCoverageReductionModeNVName, value);                                                                                           }
-inline tcu::Format::Enum<VkProvokingVertexModeEXT>                                                     getProvokingVertexModeEXTStr                                            (VkProvokingVertexModeEXT value)                                                { return tcu::Format::Enum<VkProvokingVertexModeEXT>(getProvokingVertexModeEXTName, value);                                                                                                     }
 inline tcu::Format::Enum<VkLineRasterizationModeEXT>                                           getLineRasterizationModeEXTStr                                          (VkLineRasterizationModeEXT value)                                              { return tcu::Format::Enum<VkLineRasterizationModeEXT>(getLineRasterizationModeEXTName, value);                                                                                         }
-inline tcu::Format::Enum<VkIndirectCommandsTokenTypeNV>                                                getIndirectCommandsTokenTypeNVStr                                       (VkIndirectCommandsTokenTypeNV value)                                   { return tcu::Format::Enum<VkIndirectCommandsTokenTypeNV>(getIndirectCommandsTokenTypeNVName, value);                                                                           }
-inline tcu::Format::Enum<VkDeviceMemoryReportEventTypeEXT>                                     getDeviceMemoryReportEventTypeEXTStr                            (VkDeviceMemoryReportEventTypeEXT value)                                { return tcu::Format::Enum<VkDeviceMemoryReportEventTypeEXT>(getDeviceMemoryReportEventTypeEXTName, value);                                                                     }
-inline tcu::Format::Enum<VkFragmentShadingRateTypeNV>                                          getFragmentShadingRateTypeNVStr                                         (VkFragmentShadingRateTypeNV value)                                             { return tcu::Format::Enum<VkFragmentShadingRateTypeNV>(getFragmentShadingRateTypeNVName, value);                                                                                       }
 inline tcu::Format::Enum<VkFragmentShadingRateNV>                                                      getFragmentShadingRateNVStr                                                     (VkFragmentShadingRateNV value)                                                 { return tcu::Format::Enum<VkFragmentShadingRateNV>(getFragmentShadingRateNVName, value);                                                                                                       }
-inline tcu::Format::Enum<VkAccelerationStructureMotionInstanceTypeNV>          getAccelerationStructureMotionInstanceTypeNVStr         (VkAccelerationStructureMotionInstanceTypeNV value)             { return tcu::Format::Enum<VkAccelerationStructureMotionInstanceTypeNV>(getAccelerationStructureMotionInstanceTypeNVName, value);                       }
+inline tcu::Format::Enum<VkFragmentShadingRateTypeNV>                                          getFragmentShadingRateTypeNVStr                                         (VkFragmentShadingRateTypeNV value)                                             { return tcu::Format::Enum<VkFragmentShadingRateTypeNV>(getFragmentShadingRateTypeNVName, value);                                                                                       }
 inline tcu::Format::Enum<VkSubpassMergeStatusEXT>                                                      getSubpassMergeStatusEXTStr                                                     (VkSubpassMergeStatusEXT value)                                                 { return tcu::Format::Enum<VkSubpassMergeStatusEXT>(getSubpassMergeStatusEXTName, value);                                                                                                       }
-inline tcu::Format::Enum<VkBuildAccelerationStructureModeKHR>                          getBuildAccelerationStructureModeKHRStr                         (VkBuildAccelerationStructureModeKHR value)                             { return tcu::Format::Enum<VkBuildAccelerationStructureModeKHR>(getBuildAccelerationStructureModeKHRName, value);                                                       }
-inline tcu::Format::Enum<VkAccelerationStructureBuildTypeKHR>                          getAccelerationStructureBuildTypeKHRStr                         (VkAccelerationStructureBuildTypeKHR value)                             { return tcu::Format::Enum<VkAccelerationStructureBuildTypeKHR>(getAccelerationStructureBuildTypeKHRName, value);                                                       }
-inline tcu::Format::Enum<VkAccelerationStructureCompatibilityKHR>                      getAccelerationStructureCompatibilityKHRStr                     (VkAccelerationStructureCompatibilityKHR value)                 { return tcu::Format::Enum<VkAccelerationStructureCompatibilityKHR>(getAccelerationStructureCompatibilityKHRName, value);                                       }
-inline tcu::Format::Enum<VkShaderGroupShaderKHR>                                                       getShaderGroupShaderKHRStr                                                      (VkShaderGroupShaderKHR value)                                                  { return tcu::Format::Enum<VkShaderGroupShaderKHR>(getShaderGroupShaderKHRName, value);                                                                                                         }
+inline tcu::Format::Enum<VkProvokingVertexModeEXT>                                                     getProvokingVertexModeEXTStr                                            (VkProvokingVertexModeEXT value)                                                { return tcu::Format::Enum<VkProvokingVertexModeEXT>(getProvokingVertexModeEXTName, value);                                                                                                     }
+inline tcu::Format::Enum<VkPipelineRobustnessBufferBehaviorEXT>                                getPipelineRobustnessBufferBehaviorEXTStr                       (VkPipelineRobustnessBufferBehaviorEXT value)                   { return tcu::Format::Enum<VkPipelineRobustnessBufferBehaviorEXT>(getPipelineRobustnessBufferBehaviorEXTName, value);                                           }
+inline tcu::Format::Enum<VkPipelineRobustnessImageBehaviorEXT>                         getPipelineRobustnessImageBehaviorEXTStr                        (VkPipelineRobustnessImageBehaviorEXT value)                    { return tcu::Format::Enum<VkPipelineRobustnessImageBehaviorEXT>(getPipelineRobustnessImageBehaviorEXTName, value);                                                     }
+inline tcu::Format::Enum<VkColorSpaceKHR>                                                                      getColorSpaceKHRStr                                                                     (VkColorSpaceKHR value)                                                                 { return tcu::Format::Enum<VkColorSpaceKHR>(getColorSpaceKHRName, value);                                                                                                                                       }
+inline tcu::Format::Enum<VkPresentModeKHR>                                                                     getPresentModeKHRStr                                                            (VkPresentModeKHR value)                                                                { return tcu::Format::Enum<VkPresentModeKHR>(getPresentModeKHRName, value);                                                                                                                                     }
+inline tcu::Format::Enum<VkDebugReportObjectTypeEXT>                                           getDebugReportObjectTypeEXTStr                                          (VkDebugReportObjectTypeEXT value)                                              { return tcu::Format::Enum<VkDebugReportObjectTypeEXT>(getDebugReportObjectTypeEXTName, value);                                                                                         }
+inline tcu::Format::Enum<VkDeviceMemoryReportEventTypeEXT>                                     getDeviceMemoryReportEventTypeEXTStr                            (VkDeviceMemoryReportEventTypeEXT value)                                { return tcu::Format::Enum<VkDeviceMemoryReportEventTypeEXT>(getDeviceMemoryReportEventTypeEXTName, 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<VkValidationFeatureEnableEXT>                                         getValidationFeatureEnableEXTStr                                        (VkValidationFeatureEnableEXT value)                                    { return tcu::Format::Enum<VkValidationFeatureEnableEXT>(getValidationFeatureEnableEXTName, value);                                                                                     }
+inline tcu::Format::Enum<VkValidationFeatureDisableEXT>                                                getValidationFeatureDisableEXTStr                                       (VkValidationFeatureDisableEXT value)                                   { return tcu::Format::Enum<VkValidationFeatureDisableEXT>(getValidationFeatureDisableEXTName, 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<VkTessellationDomainOrigin>                                           getTessellationDomainOriginStr                                          (VkTessellationDomainOrigin value)                                              { return tcu::Format::Enum<VkTessellationDomainOrigin>(getTessellationDomainOriginName, value);                                                                                         }
+inline tcu::Format::Enum<VkSamplerYcbcrModelConversion>                                                getSamplerYcbcrModelConversionStr                                       (VkSamplerYcbcrModelConversion value)                                   { return tcu::Format::Enum<VkSamplerYcbcrModelConversion>(getSamplerYcbcrModelConversionName, value);                                                                           }
+inline tcu::Format::Enum<VkSamplerYcbcrRange>                                                          getSamplerYcbcrRangeStr                                                         (VkSamplerYcbcrRange value)                                                             { return tcu::Format::Enum<VkSamplerYcbcrRange>(getSamplerYcbcrRangeName, value);                                                                                                                       }
+inline tcu::Format::Enum<VkChromaLocation>                                                                     getChromaLocationStr                                                            (VkChromaLocation value)                                                                { return tcu::Format::Enum<VkChromaLocation>(getChromaLocationName, value);                                                                                                                                     }
+inline tcu::Format::Enum<VkSamplerReductionMode>                                                       getSamplerReductionModeStr                                                      (VkSamplerReductionMode value)                                                  { return tcu::Format::Enum<VkSamplerReductionMode>(getSamplerReductionModeName, value);                                                                                                         }
+inline tcu::Format::Enum<VkBlendOverlapEXT>                                                                    getBlendOverlapEXTStr                                                           (VkBlendOverlapEXT value)                                                               { return tcu::Format::Enum<VkBlendOverlapEXT>(getBlendOverlapEXTName, value);                                                                                                                           }
+inline tcu::Format::Enum<VkFullScreenExclusiveEXT>                                                     getFullScreenExclusiveEXTStr                                            (VkFullScreenExclusiveEXT value)                                                { return tcu::Format::Enum<VkFullScreenExclusiveEXT>(getFullScreenExclusiveEXTName, value);                                                                                                     }
+inline tcu::Format::Enum<VkShaderFloatControlsIndependence>                                    getShaderFloatControlsIndependenceStr                           (VkShaderFloatControlsIndependence value)                               { return tcu::Format::Enum<VkShaderFloatControlsIndependence>(getShaderFloatControlsIndependenceName, value);                                                           }
+inline tcu::Format::Enum<VkFragmentShadingRateCombinerOpKHR>                           getFragmentShadingRateCombinerOpKHRStr                          (VkFragmentShadingRateCombinerOpKHR value)                              { return tcu::Format::Enum<VkFragmentShadingRateCombinerOpKHR>(getFragmentShadingRateCombinerOpKHRName, value);                                                         }
+inline tcu::Format::Enum<VkVendorId>                                                                           getVendorIdStr                                                                          (VkVendorId value)                                                                              { return tcu::Format::Enum<VkVendorId>(getVendorIdName, value);                                                                                                                                                         }
+inline tcu::Format::Enum<VkDriverId>                                                                           getDriverIdStr                                                                          (VkDriverId value)                                                                              { return tcu::Format::Enum<VkDriverId>(getDriverIdName, value);                                                                                                                                                         }
+inline tcu::Format::Enum<VkShadingRatePaletteEntryNV>                                          getShadingRatePaletteEntryNVStr                                         (VkShadingRatePaletteEntryNV value)                                             { return tcu::Format::Enum<VkShadingRatePaletteEntryNV>(getShadingRatePaletteEntryNVName, value);                                                                                       }
+inline tcu::Format::Enum<VkCoarseSampleOrderTypeNV>                                                    getCoarseSampleOrderTypeNVStr                                           (VkCoarseSampleOrderTypeNV value)                                               { return tcu::Format::Enum<VkCoarseSampleOrderTypeNV>(getCoarseSampleOrderTypeNVName, value);                                                                                           }
+inline tcu::Format::Enum<VkPipelineExecutableStatisticFormatKHR>                       getPipelineExecutableStatisticFormatKHRStr                      (VkPipelineExecutableStatisticFormatKHR value)                  { return tcu::Format::Enum<VkPipelineExecutableStatisticFormatKHR>(getPipelineExecutableStatisticFormatKHRName, value);                                         }
 inline tcu::Format::Enum<VkQueryResultStatusKHR>                                                       getQueryResultStatusKHRStr                                                      (VkQueryResultStatusKHR value)                                                  { return tcu::Format::Enum<VkQueryResultStatusKHR>(getQueryResultStatusKHRName, value);                                                                                                         }
+inline tcu::Format::Enum<VkAccelerationStructureMotionInstanceTypeNV>          getAccelerationStructureMotionInstanceTypeNVStr         (VkAccelerationStructureMotionInstanceTypeNV value)             { return tcu::Format::Enum<VkAccelerationStructureMotionInstanceTypeNV>(getAccelerationStructureMotionInstanceTypeNVName, value);                       }
 inline tcu::Format::Enum<StdVideoH264ChromaFormatIdc>                                          getdVideoH264ChromaFormatIdcStr                                         (StdVideoH264ChromaFormatIdc value)                                             { return tcu::Format::Enum<StdVideoH264ChromaFormatIdc>(getdVideoH264ChromaFormatIdcName, value);                                                                                       }
 inline tcu::Format::Enum<StdVideoH264ProfileIdc>                                                       getdVideoH264ProfileIdcStr                                                      (StdVideoH264ProfileIdc value)                                                  { return tcu::Format::Enum<StdVideoH264ProfileIdc>(getdVideoH264ProfileIdcName, value);                                                                                                         }
 inline tcu::Format::Enum<StdVideoH264Level>                                                                    getdVideoH264LevelStr                                                           (StdVideoH264Level value)                                                               { return tcu::Format::Enum<StdVideoH264Level>(getdVideoH264LevelName, value);                                                                                                                           }
@@ -241,116 +242,116 @@ inline tcu::Format::Enum<StdVideoH264DisableDeblockingFilterIdc>                        getdVideoH264
 inline tcu::Format::Enum<StdVideoH264SliceType>                                                                getdVideoH264SliceTypeStr                                                       (StdVideoH264SliceType value)                                                   { return tcu::Format::Enum<StdVideoH264SliceType>(getdVideoH264SliceTypeName, value);                                                                                                           }
 inline tcu::Format::Enum<StdVideoH264PictureType>                                                      getdVideoH264PictureTypeStr                                                     (StdVideoH264PictureType value)                                                 { return tcu::Format::Enum<StdVideoH264PictureType>(getdVideoH264PictureTypeName, value);                                                                                                       }
 inline tcu::Format::Enum<StdVideoH264NonVclNaluType>                                           getdVideoH264NonVclNaluTypeStr                                          (StdVideoH264NonVclNaluType value)                                              { return tcu::Format::Enum<StdVideoH264NonVclNaluType>(getdVideoH264NonVclNaluTypeName, value);                                                                                         }
+inline tcu::Format::Enum<StdVideoDecodeH264FieldOrderCount>                                    getdVideoDecodeH264FieldOrderCountStr                           (StdVideoDecodeH264FieldOrderCount value)                               { return tcu::Format::Enum<StdVideoDecodeH264FieldOrderCount>(getdVideoDecodeH264FieldOrderCountName, value);                                                           }
 inline tcu::Format::Enum<StdVideoH265ChromaFormatIdc>                                          getdVideoH265ChromaFormatIdcStr                                         (StdVideoH265ChromaFormatIdc value)                                             { return tcu::Format::Enum<StdVideoH265ChromaFormatIdc>(getdVideoH265ChromaFormatIdcName, value);                                                                                       }
 inline tcu::Format::Enum<StdVideoH265ProfileIdc>                                                       getdVideoH265ProfileIdcStr                                                      (StdVideoH265ProfileIdc value)                                                  { return tcu::Format::Enum<StdVideoH265ProfileIdc>(getdVideoH265ProfileIdcName, value);                                                                                                         }
 inline tcu::Format::Enum<StdVideoH265Level>                                                                    getdVideoH265LevelStr                                                           (StdVideoH265Level value)                                                               { return tcu::Format::Enum<StdVideoH265Level>(getdVideoH265LevelName, value);                                                                                                                           }
 inline tcu::Format::Enum<StdVideoH265SliceType>                                                                getdVideoH265SliceTypeStr                                                       (StdVideoH265SliceType value)                                                   { return tcu::Format::Enum<StdVideoH265SliceType>(getdVideoH265SliceTypeName, value);                                                                                                           }
 inline tcu::Format::Enum<StdVideoH265PictureType>                                                      getdVideoH265PictureTypeStr                                                     (StdVideoH265PictureType value)                                                 { return tcu::Format::Enum<StdVideoH265PictureType>(getdVideoH265PictureTypeName, value);                                                                                                       }
-inline tcu::Format::Enum<StdVideoDecodeH264FieldOrderCount>                                    getdVideoDecodeH264FieldOrderCountStr                           (StdVideoDecodeH264FieldOrderCount value)                               { return tcu::Format::Enum<StdVideoDecodeH264FieldOrderCount>(getdVideoDecodeH264FieldOrderCountName, value);                                                           }
-inline tcu::Format::Enum<VkFullScreenExclusiveEXT>                                                     getFullScreenExclusiveEXTStr                                            (VkFullScreenExclusiveEXT value)                                                { return tcu::Format::Enum<VkFullScreenExclusiveEXT>(getFullScreenExclusiveEXTName, value);                                                                                                     }
 
-inline std::ostream&   operator<<      (std::ostream& s, VkResult value)                                                                                       { return s << getResultStr(value);                                                                                      }
-inline std::ostream&   operator<<      (std::ostream& s, VkStructureType value)                                                                        { return s << getStructureTypeStr(value);                                                                       }
-inline std::ostream&   operator<<      (std::ostream& s, VkPipelineCacheHeaderVersion value)                                           { return s << getPipelineCacheHeaderVersionStr(value);                                          }
-inline std::ostream&   operator<<      (std::ostream& s, VkImageLayout value)                                                                          { return s << getImageLayoutStr(value);                                                                         }
-inline std::ostream&   operator<<      (std::ostream& s, VkObjectType value)                                                                           { return s << getObjectTypeStr(value);                                                                          }
-inline std::ostream&   operator<<      (std::ostream& s, VkVendorId value)                                                                                     { return s << getVendorIdStr(value);                                                                            }
-inline std::ostream&   operator<<      (std::ostream& s, VkSystemAllocationScope value)                                                        { return s << getSystemAllocationScopeStr(value);                                                       }
-inline std::ostream&   operator<<      (std::ostream& s, VkInternalAllocationType value)                                                       { return s << getInternalAllocationTypeStr(value);                                                      }
-inline std::ostream&   operator<<      (std::ostream& s, VkFormat value)                                                                                       { return s << getFormatStr(value);                                                                                      }
-inline std::ostream&   operator<<      (std::ostream& s, VkImageTiling value)                                                                          { return s << getImageTilingStr(value);                                                                         }
-inline std::ostream&   operator<<      (std::ostream& s, VkImageType value)                                                                            { return s << getImageTypeStr(value);                                                                           }
-inline std::ostream&   operator<<      (std::ostream& s, VkPhysicalDeviceType value)                                                           { return s << getPhysicalDeviceTypeStr(value);                                                          }
-inline std::ostream&   operator<<      (std::ostream& s, VkQueryType value)                                                                            { return s << getQueryTypeStr(value);                                                                           }
-inline std::ostream&   operator<<      (std::ostream& s, VkSharingMode value)                                                                          { return s << getSharingModeStr(value);                                                                         }
-inline std::ostream&   operator<<      (std::ostream& s, VkComponentSwizzle value)                                                                     { return s << getComponentSwizzleStr(value);                                                            }
-inline std::ostream&   operator<<      (std::ostream& s, VkImageViewType value)                                                                        { return s << getImageViewTypeStr(value);                                                                       }
+inline std::ostream&   operator<<      (std::ostream& s, VkAttachmentLoadOp value)                                                                     { return s << getAttachmentLoadOpStr(value);                                                            }
+inline std::ostream&   operator<<      (std::ostream& s, VkAttachmentStoreOp value)                                                            { return s << getAttachmentStoreOpStr(value);                                                           }
 inline std::ostream&   operator<<      (std::ostream& s, VkBlendFactor value)                                                                          { return s << getBlendFactorStr(value);                                                                         }
 inline std::ostream&   operator<<      (std::ostream& s, VkBlendOp value)                                                                                      { return s << getBlendOpStr(value);                                                                                     }
+inline std::ostream&   operator<<      (std::ostream& s, VkBorderColor value)                                                                          { return s << getBorderColorStr(value);                                                                         }
+inline std::ostream&   operator<<      (std::ostream& s, VkPipelineCacheHeaderVersion value)                                           { return s << getPipelineCacheHeaderVersionStr(value);                                          }
+inline std::ostream&   operator<<      (std::ostream& s, VkComponentSwizzle value)                                                                     { return s << getComponentSwizzleStr(value);                                                            }
+inline std::ostream&   operator<<      (std::ostream& s, VkCommandBufferLevel value)                                                           { return s << getCommandBufferLevelStr(value);                                                          }
 inline std::ostream&   operator<<      (std::ostream& s, VkCompareOp value)                                                                            { return s << getCompareOpStr(value);                                                                           }
+inline std::ostream&   operator<<      (std::ostream& s, VkDescriptorType value)                                                                       { return s << getDescriptorTypeStr(value);                                                                      }
 inline std::ostream&   operator<<      (std::ostream& s, VkDynamicState value)                                                                         { return s << getDynamicStateStr(value);                                                                        }
+inline std::ostream&   operator<<      (std::ostream& s, VkPolygonMode value)                                                                          { return s << getPolygonModeStr(value);                                                                         }
+inline std::ostream&   operator<<      (std::ostream& s, VkFormat value)                                                                                       { return s << getFormatStr(value);                                                                                      }
 inline std::ostream&   operator<<      (std::ostream& s, VkFrontFace value)                                                                            { return s << getFrontFaceStr(value);                                                                           }
-inline std::ostream&   operator<<      (std::ostream& s, VkVertexInputRate value)                                                                      { return s << getVertexInputRateStr(value);                                                                     }
+inline std::ostream&   operator<<      (std::ostream& s, VkImageLayout value)                                                                          { return s << getImageLayoutStr(value);                                                                         }
+inline std::ostream&   operator<<      (std::ostream& s, VkImageTiling value)                                                                          { return s << getImageTilingStr(value);                                                                         }
+inline std::ostream&   operator<<      (std::ostream& s, VkImageType value)                                                                            { return s << getImageTypeStr(value);                                                                           }
+inline std::ostream&   operator<<      (std::ostream& s, VkImageViewType value)                                                                        { return s << getImageViewTypeStr(value);                                                                       }
+inline std::ostream&   operator<<      (std::ostream& s, VkSharingMode value)                                                                          { return s << getSharingModeStr(value);                                                                         }
+inline std::ostream&   operator<<      (std::ostream& s, VkIndexType value)                                                                            { return s << getIndexTypeStr(value);                                                                           }
+inline std::ostream&   operator<<      (std::ostream& s, VkLogicOp value)                                                                                      { return s << getLogicOpStr(value);                                                                                     }
+inline std::ostream&   operator<<      (std::ostream& s, VkPhysicalDeviceType value)                                                           { return s << getPhysicalDeviceTypeStr(value);                                                          }
+inline std::ostream&   operator<<      (std::ostream& s, VkPipelineBindPoint value)                                                            { return s << getPipelineBindPointStr(value);                                                           }
 inline std::ostream&   operator<<      (std::ostream& s, VkPrimitiveTopology value)                                                            { return s << getPrimitiveTopologyStr(value);                                                           }
-inline std::ostream&   operator<<      (std::ostream& s, VkPolygonMode value)                                                                          { return s << getPolygonModeStr(value);                                                                         }
+inline std::ostream&   operator<<      (std::ostream& s, VkQueryType value)                                                                            { return s << getQueryTypeStr(value);                                                                           }
+inline std::ostream&   operator<<      (std::ostream& s, VkSubpassContents value)                                                                      { return s << getSubpassContentsStr(value);                                                                     }
+inline std::ostream&   operator<<      (std::ostream& s, VkResult value)                                                                                       { return s << getResultStr(value);                                                                                      }
 inline std::ostream&   operator<<      (std::ostream& s, VkStencilOp value)                                                                            { return s << getStencilOpStr(value);                                                                           }
-inline std::ostream&   operator<<      (std::ostream& s, VkLogicOp value)                                                                                      { return s << getLogicOpStr(value);                                                                                     }
-inline std::ostream&   operator<<      (std::ostream& s, VkBorderColor value)                                                                          { return s << getBorderColorStr(value);                                                                         }
-inline std::ostream&   operator<<      (std::ostream& s, VkFilter value)                                                                                       { return s << getFilterStr(value);                                                                                      }
+inline std::ostream&   operator<<      (std::ostream& s, VkStructureType value)                                                                        { return s << getStructureTypeStr(value);                                                                       }
+inline std::ostream&   operator<<      (std::ostream& s, VkSystemAllocationScope value)                                                        { return s << getSystemAllocationScopeStr(value);                                                       }
+inline std::ostream&   operator<<      (std::ostream& s, VkInternalAllocationType value)                                                       { return s << getInternalAllocationTypeStr(value);                                                      }
 inline std::ostream&   operator<<      (std::ostream& s, VkSamplerAddressMode value)                                                           { return s << getSamplerAddressModeStr(value);                                                          }
+inline std::ostream&   operator<<      (std::ostream& s, VkFilter value)                                                                                       { return s << getFilterStr(value);                                                                                      }
 inline std::ostream&   operator<<      (std::ostream& s, VkSamplerMipmapMode value)                                                            { return s << getSamplerMipmapModeStr(value);                                                           }
-inline std::ostream&   operator<<      (std::ostream& s, VkDescriptorType value)                                                                       { return s << getDescriptorTypeStr(value);                                                                      }
-inline std::ostream&   operator<<      (std::ostream& s, VkAttachmentLoadOp value)                                                                     { return s << getAttachmentLoadOpStr(value);                                                            }
-inline std::ostream&   operator<<      (std::ostream& s, VkAttachmentStoreOp value)                                                            { return s << getAttachmentStoreOpStr(value);                                                           }
-inline std::ostream&   operator<<      (std::ostream& s, VkPipelineBindPoint value)                                                            { return s << getPipelineBindPointStr(value);                                                           }
-inline std::ostream&   operator<<      (std::ostream& s, VkCommandBufferLevel value)                                                           { return s << getCommandBufferLevelStr(value);                                                          }
-inline std::ostream&   operator<<      (std::ostream& s, VkIndexType value)                                                                            { return s << getIndexTypeStr(value);                                                                           }
-inline std::ostream&   operator<<      (std::ostream& s, VkSubpassContents value)                                                                      { return s << getSubpassContentsStr(value);                                                                     }
-inline std::ostream&   operator<<      (std::ostream& s, VkPointClippingBehavior value)                                                        { return s << getPointClippingBehaviorStr(value);                                                       }
-inline std::ostream&   operator<<      (std::ostream& s, VkTessellationDomainOrigin value)                                                     { return s << getTessellationDomainOriginStr(value);                                            }
-inline std::ostream&   operator<<      (std::ostream& s, VkSamplerYcbcrModelConversion value)                                          { return s << getSamplerYcbcrModelConversionStr(value);                                         }
-inline std::ostream&   operator<<      (std::ostream& s, VkSamplerYcbcrRange value)                                                            { return s << getSamplerYcbcrRangeStr(value);                                                           }
-inline std::ostream&   operator<<      (std::ostream& s, VkChromaLocation value)                                                                       { return s << getChromaLocationStr(value);                                                                      }
+inline std::ostream&   operator<<      (std::ostream& s, VkVertexInputRate value)                                                                      { return s << getVertexInputRateStr(value);                                                                     }
+inline std::ostream&   operator<<      (std::ostream& s, VkObjectType value)                                                                           { return s << getObjectTypeStr(value);                                                                          }
+inline std::ostream&   operator<<      (std::ostream& s, VkIndirectCommandsTokenTypeNV value)                                          { return s << getIndirectCommandsTokenTypeNVStr(value);                                         }
 inline std::ostream&   operator<<      (std::ostream& s, VkDescriptorUpdateTemplateType value)                                         { return s << getDescriptorUpdateTemplateTypeStr(value);                                        }
-inline std::ostream&   operator<<      (std::ostream& s, VkDriverId value)                                                                                     { return s << getDriverIdStr(value);                                                                            }
-inline std::ostream&   operator<<      (std::ostream& s, VkShaderFloatControlsIndependence value)                                      { return s << getShaderFloatControlsIndependenceStr(value);                                     }
-inline std::ostream&   operator<<      (std::ostream& s, VkSamplerReductionMode value)                                                         { return s << getSamplerReductionModeStr(value);                                                        }
-inline std::ostream&   operator<<      (std::ostream& s, VkSemaphoreType value)                                                                        { return s << getSemaphoreTypeStr(value);                                                                       }
-inline std::ostream&   operator<<      (std::ostream& s, VkPresentModeKHR value)                                                                       { return s << getPresentModeKHRStr(value);                                                                      }
-inline std::ostream&   operator<<      (std::ostream& s, VkColorSpaceKHR value)                                                                        { return s << getColorSpaceKHRStr(value);                                                                       }
-inline std::ostream&   operator<<      (std::ostream& s, VkPerformanceCounterUnitKHR value)                                            { return s << getPerformanceCounterUnitKHRStr(value);                                           }
-inline std::ostream&   operator<<      (std::ostream& s, VkPerformanceCounterScopeKHR value)                                           { return s << getPerformanceCounterScopeKHRStr(value);                                          }
-inline std::ostream&   operator<<      (std::ostream& s, VkPerformanceCounterStorageKHR value)                                         { return s << getPerformanceCounterStorageKHRStr(value);                                        }
-inline std::ostream&   operator<<      (std::ostream& s, VkQueueGlobalPriorityKHR value)                                                       { return s << getQueueGlobalPriorityKHRStr(value);                                                      }
-inline std::ostream&   operator<<      (std::ostream& s, VkFragmentShadingRateCombinerOpKHR value)                                     { return s << getFragmentShadingRateCombinerOpKHRStr(value);                            }
-inline std::ostream&   operator<<      (std::ostream& s, VkPipelineExecutableStatisticFormatKHR value)                         { return s << getPipelineExecutableStatisticFormatKHRStr(value);                        }
-inline std::ostream&   operator<<      (std::ostream& s, VkDebugReportObjectTypeEXT value)                                                     { return s << getDebugReportObjectTypeEXTStr(value);                                            }
-inline std::ostream&   operator<<      (std::ostream& s, VkRasterizationOrderAMD value)                                                        { return s << getRasterizationOrderAMDStr(value);                                                       }
-inline std::ostream&   operator<<      (std::ostream& s, VkShaderInfoTypeAMD value)                                                            { return s << getShaderInfoTypeAMDStr(value);                                                           }
-inline std::ostream&   operator<<      (std::ostream& s, VkValidationCheckEXT value)                                                           { return s << getValidationCheckEXTStr(value);                                                          }
-inline std::ostream&   operator<<      (std::ostream& s, VkPipelineRobustnessBufferBehaviorEXT value)                          { return s << getPipelineRobustnessBufferBehaviorEXTStr(value);                         }
-inline std::ostream&   operator<<      (std::ostream& s, VkPipelineRobustnessImageBehaviorEXT value)                           { return s << getPipelineRobustnessImageBehaviorEXTStr(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, VkConservativeRasterizationModeEXT value)                                     { return s << getConservativeRasterizationModeEXTStr(value);                            }
-inline std::ostream&   operator<<      (std::ostream& s, VkBlendOverlapEXT value)                                                                      { return s << getBlendOverlapEXTStr(value);                                                                     }
+inline std::ostream&   operator<<      (std::ostream& s, VkPointClippingBehavior value)                                                        { return s << getPointClippingBehaviorStr(value);                                                       }
 inline std::ostream&   operator<<      (std::ostream& s, VkCoverageModulationModeNV value)                                                     { return s << getCoverageModulationModeNVStr(value);                                            }
+inline std::ostream&   operator<<      (std::ostream& s, VkCoverageReductionModeNV value)                                                      { return s << getCoverageReductionModeNVStr(value);                                                     }
 inline std::ostream&   operator<<      (std::ostream& s, VkValidationCacheHeaderVersionEXT value)                                      { return s << getValidationCacheHeaderVersionEXTStr(value);                                     }
-inline std::ostream&   operator<<      (std::ostream& s, VkShadingRatePaletteEntryNV value)                                            { return s << getShadingRatePaletteEntryNVStr(value);                                           }
-inline std::ostream&   operator<<      (std::ostream& s, VkCoarseSampleOrderTypeNV value)                                                      { return s << getCoarseSampleOrderTypeNVStr(value);                                                     }
-inline std::ostream&   operator<<      (std::ostream& s, VkRayTracingShaderGroupTypeKHR value)                                         { return s << getRayTracingShaderGroupTypeKHRStr(value);                                        }
-inline std::ostream&   operator<<      (std::ostream& s, VkGeometryTypeKHR value)                                                                      { return s << getGeometryTypeKHRStr(value);                                                                     }
-inline std::ostream&   operator<<      (std::ostream& s, VkAccelerationStructureTypeKHR value)                                         { return s << getAccelerationStructureTypeKHRStr(value);                                        }
+inline std::ostream&   operator<<      (std::ostream& s, VkShaderInfoTypeAMD value)                                                            { return s << getShaderInfoTypeAMDStr(value);                                                           }
+inline std::ostream&   operator<<      (std::ostream& s, VkQueueGlobalPriorityKHR value)                                                       { return s << getQueueGlobalPriorityKHRStr(value);                                                      }
+inline std::ostream&   operator<<      (std::ostream& s, VkTimeDomainEXT value)                                                                        { return s << getTimeDomainEXTStr(value);                                                                       }
+inline std::ostream&   operator<<      (std::ostream& s, VkConservativeRasterizationModeEXT value)                                     { return s << getConservativeRasterizationModeEXTStr(value);                            }
+inline std::ostream&   operator<<      (std::ostream& s, VkSemaphoreType value)                                                                        { return s << getSemaphoreTypeStr(value);                                                                       }
+inline std::ostream&   operator<<      (std::ostream& s, VkBuildAccelerationStructureModeKHR value)                            { return s << getBuildAccelerationStructureModeKHRStr(value);                           }
 inline std::ostream&   operator<<      (std::ostream& s, VkCopyAccelerationStructureModeKHR value)                                     { return s << getCopyAccelerationStructureModeKHRStr(value);                            }
+inline std::ostream&   operator<<      (std::ostream& s, VkAccelerationStructureTypeKHR value)                                         { return s << getAccelerationStructureTypeKHRStr(value);                                        }
+inline std::ostream&   operator<<      (std::ostream& s, VkGeometryTypeKHR value)                                                                      { return s << getGeometryTypeKHRStr(value);                                                                     }
+inline std::ostream&   operator<<      (std::ostream& s, VkRayTracingShaderGroupTypeKHR value)                                         { return s << getRayTracingShaderGroupTypeKHRStr(value);                                        }
 inline std::ostream&   operator<<      (std::ostream& s, VkAccelerationStructureMemoryRequirementsTypeNV value)        { return s << getAccelerationStructureMemoryRequirementsTypeNVStr(value);       }
-inline std::ostream&   operator<<      (std::ostream& s, VkTimeDomainEXT value)                                                                        { return s << getTimeDomainEXTStr(value);                                                                       }
+inline std::ostream&   operator<<      (std::ostream& s, VkAccelerationStructureBuildTypeKHR value)                            { return s << getAccelerationStructureBuildTypeKHRStr(value);                           }
+inline std::ostream&   operator<<      (std::ostream& s, VkAccelerationStructureCompatibilityKHR value)                        { return s << getAccelerationStructureCompatibilityKHRStr(value);                       }
+inline std::ostream&   operator<<      (std::ostream& s, VkShaderGroupShaderKHR value)                                                         { return s << getShaderGroupShaderKHRStr(value);                                                        }
 inline std::ostream&   operator<<      (std::ostream& s, VkMemoryOverallocationBehaviorAMD value)                                      { return s << getMemoryOverallocationBehaviorAMDStr(value);                                     }
+inline std::ostream&   operator<<      (std::ostream& s, VkScopeNV value)                                                                                      { return s << getScopeNVStr(value);                                                                                     }
+inline std::ostream&   operator<<      (std::ostream& s, VkComponentTypeNV value)                                                                      { return s << getComponentTypeNVStr(value);                                                                     }
+inline std::ostream&   operator<<      (std::ostream& s, VkPerformanceCounterScopeKHR value)                                           { return s << getPerformanceCounterScopeKHRStr(value);                                          }
+inline std::ostream&   operator<<      (std::ostream& s, VkPerformanceCounterUnitKHR value)                                            { return s << getPerformanceCounterUnitKHRStr(value);                                           }
+inline std::ostream&   operator<<      (std::ostream& s, VkPerformanceCounterStorageKHR value)                                         { return s << getPerformanceCounterStorageKHRStr(value);                                        }
 inline std::ostream&   operator<<      (std::ostream& s, VkPerformanceConfigurationTypeINTEL value)                            { return s << getPerformanceConfigurationTypeINTELStr(value);                           }
 inline std::ostream&   operator<<      (std::ostream& s, VkQueryPoolSamplingModeINTEL value)                                           { return s << getQueryPoolSamplingModeINTELStr(value);                                          }
 inline std::ostream&   operator<<      (std::ostream& s, VkPerformanceOverrideTypeINTEL value)                                         { return s << getPerformanceOverrideTypeINTELStr(value);                                        }
 inline std::ostream&   operator<<      (std::ostream& s, VkPerformanceParameterTypeINTEL value)                                        { return s << getPerformanceParameterTypeINTELStr(value);                                       }
 inline std::ostream&   operator<<      (std::ostream& s, VkPerformanceValueTypeINTEL value)                                            { return s << getPerformanceValueTypeINTELStr(value);                                           }
-inline std::ostream&   operator<<      (std::ostream& s, VkValidationFeatureEnableEXT value)                                           { return s << getValidationFeatureEnableEXTStr(value);                                          }
-inline std::ostream&   operator<<      (std::ostream& s, VkValidationFeatureDisableEXT value)                                          { return s << getValidationFeatureDisableEXTStr(value);                                         }
-inline std::ostream&   operator<<      (std::ostream& s, VkComponentTypeNV value)                                                                      { return s << getComponentTypeNVStr(value);                                                                     }
-inline std::ostream&   operator<<      (std::ostream& s, VkScopeNV value)                                                                                      { return s << getScopeNVStr(value);                                                                                     }
-inline std::ostream&   operator<<      (std::ostream& s, VkCoverageReductionModeNV value)                                                      { return s << getCoverageReductionModeNVStr(value);                                                     }
-inline std::ostream&   operator<<      (std::ostream& s, VkProvokingVertexModeEXT value)                                                       { return s << getProvokingVertexModeEXTStr(value);                                                      }
 inline std::ostream&   operator<<      (std::ostream& s, VkLineRasterizationModeEXT value)                                                     { return s << getLineRasterizationModeEXTStr(value);                                            }
-inline std::ostream&   operator<<      (std::ostream& s, VkIndirectCommandsTokenTypeNV value)                                          { return s << getIndirectCommandsTokenTypeNVStr(value);                                         }
-inline std::ostream&   operator<<      (std::ostream& s, VkDeviceMemoryReportEventTypeEXT value)                                       { return s << getDeviceMemoryReportEventTypeEXTStr(value);                                      }
-inline std::ostream&   operator<<      (std::ostream& s, VkFragmentShadingRateTypeNV value)                                            { return s << getFragmentShadingRateTypeNVStr(value);                                           }
 inline std::ostream&   operator<<      (std::ostream& s, VkFragmentShadingRateNV value)                                                        { return s << getFragmentShadingRateNVStr(value);                                                       }
-inline std::ostream&   operator<<      (std::ostream& s, VkAccelerationStructureMotionInstanceTypeNV value)            { return s << getAccelerationStructureMotionInstanceTypeNVStr(value);           }
+inline std::ostream&   operator<<      (std::ostream& s, VkFragmentShadingRateTypeNV value)                                            { return s << getFragmentShadingRateTypeNVStr(value);                                           }
 inline std::ostream&   operator<<      (std::ostream& s, VkSubpassMergeStatusEXT value)                                                        { return s << getSubpassMergeStatusEXTStr(value);                                                       }
-inline std::ostream&   operator<<      (std::ostream& s, VkBuildAccelerationStructureModeKHR value)                            { return s << getBuildAccelerationStructureModeKHRStr(value);                           }
-inline std::ostream&   operator<<      (std::ostream& s, VkAccelerationStructureBuildTypeKHR value)                            { return s << getAccelerationStructureBuildTypeKHRStr(value);                           }
-inline std::ostream&   operator<<      (std::ostream& s, VkAccelerationStructureCompatibilityKHR value)                        { return s << getAccelerationStructureCompatibilityKHRStr(value);                       }
-inline std::ostream&   operator<<      (std::ostream& s, VkShaderGroupShaderKHR value)                                                         { return s << getShaderGroupShaderKHRStr(value);                                                        }
+inline std::ostream&   operator<<      (std::ostream& s, VkProvokingVertexModeEXT value)                                                       { return s << getProvokingVertexModeEXTStr(value);                                                      }
+inline std::ostream&   operator<<      (std::ostream& s, VkPipelineRobustnessBufferBehaviorEXT value)                          { return s << getPipelineRobustnessBufferBehaviorEXTStr(value);                         }
+inline std::ostream&   operator<<      (std::ostream& s, VkPipelineRobustnessImageBehaviorEXT value)                           { return s << getPipelineRobustnessImageBehaviorEXTStr(value);                          }
+inline std::ostream&   operator<<      (std::ostream& s, VkColorSpaceKHR value)                                                                        { return s << getColorSpaceKHRStr(value);                                                                       }
+inline std::ostream&   operator<<      (std::ostream& s, VkPresentModeKHR value)                                                                       { return s << getPresentModeKHRStr(value);                                                                      }
+inline std::ostream&   operator<<      (std::ostream& s, VkDebugReportObjectTypeEXT value)                                                     { return s << getDebugReportObjectTypeEXTStr(value);                                            }
+inline std::ostream&   operator<<      (std::ostream& s, VkDeviceMemoryReportEventTypeEXT value)                                       { return s << getDeviceMemoryReportEventTypeEXTStr(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, VkValidationFeatureEnableEXT value)                                           { return s << getValidationFeatureEnableEXTStr(value);                                          }
+inline std::ostream&   operator<<      (std::ostream& s, VkValidationFeatureDisableEXT value)                                          { return s << getValidationFeatureDisableEXTStr(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, VkTessellationDomainOrigin value)                                                     { return s << getTessellationDomainOriginStr(value);                                            }
+inline std::ostream&   operator<<      (std::ostream& s, VkSamplerYcbcrModelConversion value)                                          { return s << getSamplerYcbcrModelConversionStr(value);                                         }
+inline std::ostream&   operator<<      (std::ostream& s, VkSamplerYcbcrRange value)                                                            { return s << getSamplerYcbcrRangeStr(value);                                                           }
+inline std::ostream&   operator<<      (std::ostream& s, VkChromaLocation value)                                                                       { return s << getChromaLocationStr(value);                                                                      }
+inline std::ostream&   operator<<      (std::ostream& s, VkSamplerReductionMode value)                                                         { return s << getSamplerReductionModeStr(value);                                                        }
+inline std::ostream&   operator<<      (std::ostream& s, VkBlendOverlapEXT value)                                                                      { return s << getBlendOverlapEXTStr(value);                                                                     }
+inline std::ostream&   operator<<      (std::ostream& s, VkFullScreenExclusiveEXT value)                                                       { return s << getFullScreenExclusiveEXTStr(value);                                                      }
+inline std::ostream&   operator<<      (std::ostream& s, VkShaderFloatControlsIndependence value)                                      { return s << getShaderFloatControlsIndependenceStr(value);                                     }
+inline std::ostream&   operator<<      (std::ostream& s, VkFragmentShadingRateCombinerOpKHR value)                                     { return s << getFragmentShadingRateCombinerOpKHRStr(value);                            }
+inline std::ostream&   operator<<      (std::ostream& s, VkVendorId value)                                                                                     { return s << getVendorIdStr(value);                                                                            }
+inline std::ostream&   operator<<      (std::ostream& s, VkDriverId value)                                                                                     { return s << getDriverIdStr(value);                                                                            }
+inline std::ostream&   operator<<      (std::ostream& s, VkShadingRatePaletteEntryNV value)                                            { return s << getShadingRatePaletteEntryNVStr(value);                                           }
+inline std::ostream&   operator<<      (std::ostream& s, VkCoarseSampleOrderTypeNV value)                                                      { return s << getCoarseSampleOrderTypeNVStr(value);                                                     }
+inline std::ostream&   operator<<      (std::ostream& s, VkPipelineExecutableStatisticFormatKHR value)                         { return s << getPipelineExecutableStatisticFormatKHRStr(value);                        }
 inline std::ostream&   operator<<      (std::ostream& s, VkQueryResultStatusKHR value)                                                         { return s << getQueryResultStatusKHRStr(value);                                                        }
+inline std::ostream&   operator<<      (std::ostream& s, VkAccelerationStructureMotionInstanceTypeNV value)            { return s << getAccelerationStructureMotionInstanceTypeNVStr(value);           }
 inline std::ostream&   operator<<      (std::ostream& s, StdVideoH264ChromaFormatIdc value)                                            { return s << getdVideoH264ChromaFormatIdcStr(value);                                           }
 inline std::ostream&   operator<<      (std::ostream& s, StdVideoH264ProfileIdc value)                                                         { return s << getdVideoH264ProfileIdcStr(value);                                                        }
 inline std::ostream&   operator<<      (std::ostream& s, StdVideoH264Level value)                                                                      { return s << getdVideoH264LevelStr(value);                                                                     }
@@ -364,115 +365,171 @@ inline std::ostream&    operator<<      (std::ostream& s, StdVideoH264DisableDeblockingF
 inline std::ostream&   operator<<      (std::ostream& s, StdVideoH264SliceType value)                                                          { return s << getdVideoH264SliceTypeStr(value);                                                         }
 inline std::ostream&   operator<<      (std::ostream& s, StdVideoH264PictureType value)                                                        { return s << getdVideoH264PictureTypeStr(value);                                                       }
 inline std::ostream&   operator<<      (std::ostream& s, StdVideoH264NonVclNaluType value)                                                     { return s << getdVideoH264NonVclNaluTypeStr(value);                                            }
+inline std::ostream&   operator<<      (std::ostream& s, StdVideoDecodeH264FieldOrderCount value)                                      { return s << getdVideoDecodeH264FieldOrderCountStr(value);                                     }
 inline std::ostream&   operator<<      (std::ostream& s, StdVideoH265ChromaFormatIdc value)                                            { return s << getdVideoH265ChromaFormatIdcStr(value);                                           }
 inline std::ostream&   operator<<      (std::ostream& s, StdVideoH265ProfileIdc value)                                                         { return s << getdVideoH265ProfileIdcStr(value);                                                        }
 inline std::ostream&   operator<<      (std::ostream& s, StdVideoH265Level value)                                                                      { return s << getdVideoH265LevelStr(value);                                                                     }
 inline std::ostream&   operator<<      (std::ostream& s, StdVideoH265SliceType value)                                                          { return s << getdVideoH265SliceTypeStr(value);                                                         }
 inline std::ostream&   operator<<      (std::ostream& s, StdVideoH265PictureType value)                                                        { return s << getdVideoH265PictureTypeStr(value);                                                       }
-inline std::ostream&   operator<<      (std::ostream& s, StdVideoDecodeH264FieldOrderCount value)                                      { return s << getdVideoDecodeH264FieldOrderCountStr(value);                                     }
-inline std::ostream&   operator<<      (std::ostream& s, VkFullScreenExclusiveEXT value)                                                       { return s << getFullScreenExclusiveEXTStr(value);                                                      }
 
-tcu::Format::Bitfield<32>      getAccessFlagsStr                                                                                       (VkAccessFlags value);
-tcu::Format::Bitfield<32>      getImageAspectFlagsStr                                                                          (VkImageAspectFlags value);
-tcu::Format::Bitfield<32>      getFormatFeatureFlagsStr                                                                        (VkFormatFeatureFlags value);
-tcu::Format::Bitfield<32>      getImageCreateFlagsStr                                                                          (VkImageCreateFlags value);
-tcu::Format::Bitfield<32>      getSampleCountFlagsStr                                                                          (VkSampleCountFlags value);
-tcu::Format::Bitfield<32>      getImageUsageFlagsStr                                                                           (VkImageUsageFlags value);
-tcu::Format::Bitfield<32>      getInstanceCreateFlagsStr                                                                       (VkInstanceCreateFlags value);
-tcu::Format::Bitfield<32>      getMemoryHeapFlagsStr                                                                           (VkMemoryHeapFlags value);
-tcu::Format::Bitfield<32>      getMemoryPropertyFlagsStr                                                                       (VkMemoryPropertyFlags value);
-tcu::Format::Bitfield<32>      getQueueFlagsStr                                                                                        (VkQueueFlags value);
-tcu::Format::Bitfield<32>      getDeviceQueueCreateFlagsStr                                                            (VkDeviceQueueCreateFlags value);
-tcu::Format::Bitfield<32>      getPipelineStageFlagsStr                                                                        (VkPipelineStageFlags value);
-tcu::Format::Bitfield<32>      getSparseMemoryBindFlagsStr                                                                     (VkSparseMemoryBindFlags value);
-tcu::Format::Bitfield<32>      getSparseImageFormatFlagsStr                                                            (VkSparseImageFormatFlags value);
-tcu::Format::Bitfield<32>      getFenceCreateFlagsStr                                                                          (VkFenceCreateFlags value);
-tcu::Format::Bitfield<32>      getEventCreateFlagsStr                                                                          (VkEventCreateFlags 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>      getImageViewCreateFlagsStr                                                                      (VkImageViewCreateFlags value);
+tcu::Format::Bitfield<32>      getFramebufferCreateFlagsStr                                                            (VkFramebufferCreateFlags value);
+tcu::Format::Bitfield<32>      getQueryPoolCreateFlagsStr                                                                      (VkQueryPoolCreateFlags value);
+tcu::Format::Bitfield<32>      getRenderPassCreateFlagsStr                                                                     (VkRenderPassCreateFlags value);
+tcu::Format::Bitfield<32>      getSamplerCreateFlagsStr                                                                        (VkSamplerCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineLayoutCreateFlagsStr                                                         (VkPipelineLayoutCreateFlags value);
 tcu::Format::Bitfield<32>      getPipelineCacheCreateFlagsStr                                                          (VkPipelineCacheCreateFlags value);
-tcu::Format::Bitfield<32>      getColorComponentFlagsStr                                                                       (VkColorComponentFlags value);
-tcu::Format::Bitfield<32>      getPipelineCreateFlagsStr                                                                       (VkPipelineCreateFlags value);
-tcu::Format::Bitfield<32>      getPipelineShaderStageCreateFlagsStr                                            (VkPipelineShaderStageCreateFlags value);
-tcu::Format::Bitfield<32>      getShaderStageFlagsStr                                                                          (VkShaderStageFlags value);
-tcu::Format::Bitfield<32>      getCullModeFlagsStr                                                                                     (VkCullModeFlags value);
 tcu::Format::Bitfield<32>      getPipelineDepthStencilStateCreateFlagsStr                                      (VkPipelineDepthStencilStateCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineDynamicStateCreateFlagsStr                                           (VkPipelineDynamicStateCreateFlags value);
 tcu::Format::Bitfield<32>      getPipelineColorBlendStateCreateFlagsStr                                        (VkPipelineColorBlendStateCreateFlags value);
-tcu::Format::Bitfield<32>      getPipelineLayoutCreateFlagsStr                                                         (VkPipelineLayoutCreateFlags value);
-tcu::Format::Bitfield<32>      getSamplerCreateFlagsStr                                                                        (VkSamplerCreateFlags value);
-tcu::Format::Bitfield<32>      getDescriptorPoolCreateFlagsStr                                                         (VkDescriptorPoolCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineMultisampleStateCreateFlagsStr                                       (VkPipelineMultisampleStateCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineRasterizationStateCreateFlagsStr                                     (VkPipelineRasterizationStateCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineViewportStateCreateFlagsStr                                          (VkPipelineViewportStateCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineTessellationStateCreateFlagsStr                                      (VkPipelineTessellationStateCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineInputAssemblyStateCreateFlagsStr                                     (VkPipelineInputAssemblyStateCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineVertexInputStateCreateFlagsStr                                       (VkPipelineVertexInputStateCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineShaderStageCreateFlagsStr                                            (VkPipelineShaderStageCreateFlags value);
 tcu::Format::Bitfield<32>      getDescriptorSetLayoutCreateFlagsStr                                            (VkDescriptorSetLayoutCreateFlags value);
-tcu::Format::Bitfield<32>      getAttachmentDescriptionFlagsStr                                                        (VkAttachmentDescriptionFlags value);
-tcu::Format::Bitfield<32>      getDependencyFlagsStr                                                                           (VkDependencyFlags value);
-tcu::Format::Bitfield<32>      getFramebufferCreateFlagsStr                                                            (VkFramebufferCreateFlags value);
-tcu::Format::Bitfield<32>      getRenderPassCreateFlagsStr                                                                     (VkRenderPassCreateFlags value);
-tcu::Format::Bitfield<32>      getSubpassDescriptionFlagsStr                                                           (VkSubpassDescriptionFlags value);
+tcu::Format::Bitfield<32>      getBufferViewCreateFlagsStr                                                                     (VkBufferViewCreateFlags value);
+tcu::Format::Bitfield<32>      getInstanceCreateFlagsStr                                                                       (VkInstanceCreateFlags value);
+tcu::Format::Bitfield<32>      getDeviceCreateFlagsStr                                                                         (VkDeviceCreateFlags value);
+tcu::Format::Bitfield<32>      getDeviceQueueCreateFlagsStr                                                            (VkDeviceQueueCreateFlags 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>      getAccessFlagsStr                                                                                       (VkAccessFlags value);
+tcu::Format::Bitfield<32>      getBufferUsageFlagsStr                                                                          (VkBufferUsageFlags value);
+tcu::Format::Bitfield<32>      getBufferCreateFlagsStr                                                                         (VkBufferCreateFlags value);
+tcu::Format::Bitfield<32>      getShaderStageFlagsStr                                                                          (VkShaderStageFlags value);
+tcu::Format::Bitfield<32>      getImageUsageFlagsStr                                                                           (VkImageUsageFlags value);
+tcu::Format::Bitfield<32>      getImageCreateFlagsStr                                                                          (VkImageCreateFlags value);
+tcu::Format::Bitfield<32>      getImageViewCreateFlagsStr                                                                      (VkImageViewCreateFlags value);
+tcu::Format::Bitfield<32>      getPipelineCreateFlagsStr                                                                       (VkPipelineCreateFlags value);
+tcu::Format::Bitfield<32>      getColorComponentFlagsStr                                                                       (VkColorComponentFlags value);
+tcu::Format::Bitfield<32>      getFenceCreateFlagsStr                                                                          (VkFenceCreateFlags value);
+tcu::Format::Bitfield<32>      getSemaphoreCreateFlagsStr                                                                      (VkSemaphoreCreateFlags value);
+tcu::Format::Bitfield<32>      getFormatFeatureFlagsStr                                                                        (VkFormatFeatureFlags value);
+tcu::Format::Bitfield<32>      getQueryControlFlagsStr                                                                         (VkQueryControlFlags value);
+tcu::Format::Bitfield<32>      getQueryResultFlagsStr                                                                          (VkQueryResultFlags value);
+tcu::Format::Bitfield<32>      getShaderModuleCreateFlagsStr                                                           (VkShaderModuleCreateFlags value);
+tcu::Format::Bitfield<32>      getEventCreateFlagsStr                                                                          (VkEventCreateFlags 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>      getCommandBufferUsageFlagsStr                                                           (VkCommandBufferUsageFlags value);
+tcu::Format::Bitfield<32>      getQueryPipelineStatisticFlagsStr                                                       (VkQueryPipelineStatisticFlags value);
+tcu::Format::Bitfield<32>      getMemoryMapFlagsStr                                                                            (VkMemoryMapFlags value);
+tcu::Format::Bitfield<32>      getImageAspectFlagsStr                                                                          (VkImageAspectFlags value);
+tcu::Format::Bitfield<32>      getSparseMemoryBindFlagsStr                                                                     (VkSparseMemoryBindFlags value);
+tcu::Format::Bitfield<32>      getSparseImageFormatFlagsStr                                                            (VkSparseImageFormatFlags value);
+tcu::Format::Bitfield<32>      getSubpassDescriptionFlagsStr                                                           (VkSubpassDescriptionFlags value);
+tcu::Format::Bitfield<32>      getPipelineStageFlagsStr                                                                        (VkPipelineStageFlags value);
+tcu::Format::Bitfield<32>      getSampleCountFlagsStr                                                                          (VkSampleCountFlags value);
+tcu::Format::Bitfield<32>      getAttachmentDescriptionFlagsStr                                                        (VkAttachmentDescriptionFlags value);
 tcu::Format::Bitfield<32>      getStencilFaceFlagsStr                                                                          (VkStencilFaceFlags value);
+tcu::Format::Bitfield<32>      getCullModeFlagsStr                                                                                     (VkCullModeFlags value);
+tcu::Format::Bitfield<32>      getDescriptorPoolCreateFlagsStr                                                         (VkDescriptorPoolCreateFlags value);
+tcu::Format::Bitfield<32>      getDescriptorPoolResetFlagsStr                                                          (VkDescriptorPoolResetFlags value);
+tcu::Format::Bitfield<32>      getDependencyFlagsStr                                                                           (VkDependencyFlags value);
 tcu::Format::Bitfield<32>      getSubgroupFeatureFlagsStr                                                                      (VkSubgroupFeatureFlags value);
-tcu::Format::Bitfield<32>      getPeerMemoryFeatureFlagsStr                                                            (VkPeerMemoryFeatureFlags value);
-tcu::Format::Bitfield<32>      getMemoryAllocateFlagsStr                                                                       (VkMemoryAllocateFlags value);
-tcu::Format::Bitfield<32>      getExternalMemoryHandleTypeFlagsStr                                                     (VkExternalMemoryHandleTypeFlags value);
-tcu::Format::Bitfield<32>      getExternalMemoryFeatureFlagsStr                                                        (VkExternalMemoryFeatureFlags value);
-tcu::Format::Bitfield<32>      getExternalFenceHandleTypeFlagsStr                                                      (VkExternalFenceHandleTypeFlags value);
-tcu::Format::Bitfield<32>      getExternalFenceFeatureFlagsStr                                                         (VkExternalFenceFeatureFlags value);
-tcu::Format::Bitfield<32>      getFenceImportFlagsStr                                                                          (VkFenceImportFlags value);
-tcu::Format::Bitfield<32>      getSemaphoreImportFlagsStr                                                                      (VkSemaphoreImportFlags value);
-tcu::Format::Bitfield<32>      getExternalSemaphoreHandleTypeFlagsStr                                          (VkExternalSemaphoreHandleTypeFlags value);
-tcu::Format::Bitfield<32>      getExternalSemaphoreFeatureFlagsStr                                                     (VkExternalSemaphoreFeatureFlags value);
-tcu::Format::Bitfield<32>      getResolveModeFlagsStr                                                                          (VkResolveModeFlags value);
-tcu::Format::Bitfield<32>      getDescriptorBindingFlagsStr                                                            (VkDescriptorBindingFlags value);
-tcu::Format::Bitfield<32>      getSemaphoreWaitFlagsStr                                                                        (VkSemaphoreWaitFlags value);
+tcu::Format::Bitfield<32>      getIndirectCommandsLayoutUsageFlagsNVStr                                        (VkIndirectCommandsLayoutUsageFlagsNV value);
+tcu::Format::Bitfield<32>      getIndirectStateFlagsNVStr                                                                      (VkIndirectStateFlagsNV value);
+tcu::Format::Bitfield<32>      getGeometryFlagsKHRStr                                                                          (VkGeometryFlagsKHR value);
+tcu::Format::Bitfield<32>      getGeometryInstanceFlagsKHRStr                                                          (VkGeometryInstanceFlagsKHR value);
+tcu::Format::Bitfield<32>      getBuildAccelerationStructureFlagsKHRStr                                        (VkBuildAccelerationStructureFlagsKHR value);
+tcu::Format::Bitfield<32>      getPrivateDataSlotCreateFlagsStr                                                        (VkPrivateDataSlotCreateFlags value);
+tcu::Format::Bitfield<32>      getAccelerationStructureCreateFlagsKHRStr                                       (VkAccelerationStructureCreateFlagsKHR value);
+tcu::Format::Bitfield<32>      getDescriptorUpdateTemplateCreateFlagsStr                                       (VkDescriptorUpdateTemplateCreateFlags value);
 tcu::Format::Bitfield<32>      getPipelineCreationFeedbackFlagsStr                                                     (VkPipelineCreationFeedbackFlags value);
-tcu::Format::Bitfield<32>      getToolPurposeFlagsStr                                                                          (VkToolPurposeFlags value);
-tcu::Format::Bitfield<32>      getSubmitFlagsStr                                                                                       (VkSubmitFlags value);
+tcu::Format::Bitfield<32>      getPerformanceCounterDescriptionFlagsKHRStr                                     (VkPerformanceCounterDescriptionFlagsKHR value);
+tcu::Format::Bitfield<32>      getAcquireProfilingLockFlagsKHRStr                                                      (VkAcquireProfilingLockFlagsKHR value);
+tcu::Format::Bitfield<32>      getSemaphoreWaitFlagsStr                                                                        (VkSemaphoreWaitFlags value);
+tcu::Format::Bitfield<32>      getPipelineCompilerControlFlagsAMDStr                                           (VkPipelineCompilerControlFlagsAMD value);
+tcu::Format::Bitfield<32>      getShaderCorePropertiesFlagsAMDStr                                                      (VkShaderCorePropertiesFlagsAMD value);
+tcu::Format::Bitfield<32>      getDeviceDiagnosticsConfigFlagsNVStr                                            (VkDeviceDiagnosticsConfigFlagsNV value);
+tcu::Format::Bitfield<64>      getAccessFlags2Str                                                                                      (VkAccessFlags2 value);
+tcu::Format::Bitfield<64>      getPipelineStageFlags2Str                                                                       (VkPipelineStageFlags2 value);
+tcu::Format::Bitfield<32>      getAccelerationStructureMotionInfoFlagsNVStr                            (VkAccelerationStructureMotionInfoFlagsNV value);
+tcu::Format::Bitfield<32>      getAccelerationStructureMotionInstanceFlagsNVStr                        (VkAccelerationStructureMotionInstanceFlagsNV value);
+tcu::Format::Bitfield<64>      getFormatFeatureFlags2Str                                                                       (VkFormatFeatureFlags2 value);
 tcu::Format::Bitfield<32>      getRenderingFlagsStr                                                                            (VkRenderingFlags value);
-tcu::Format::Bitfield<32>      getSurfaceTransformFlagsKHRStr                                                          (VkSurfaceTransformFlagsKHR value);
 tcu::Format::Bitfield<32>      getCompositeAlphaFlagsKHRStr                                                            (VkCompositeAlphaFlagsKHR value);
+tcu::Format::Bitfield<32>      getDisplayPlaneAlphaFlagsKHRStr                                                         (VkDisplayPlaneAlphaFlagsKHR value);
+tcu::Format::Bitfield<32>      getSurfaceTransformFlagsKHRStr                                                          (VkSurfaceTransformFlagsKHR value);
 tcu::Format::Bitfield<32>      getSwapchainCreateFlagsKHRStr                                                           (VkSwapchainCreateFlagsKHR value);
+tcu::Format::Bitfield<32>      getDisplayModeCreateFlagsKHRStr                                                         (VkDisplayModeCreateFlagsKHR value);
+tcu::Format::Bitfield<32>      getDisplaySurfaceCreateFlagsKHRStr                                                      (VkDisplaySurfaceCreateFlagsKHR value);
+tcu::Format::Bitfield<32>      getAndroidSurfaceCreateFlagsKHRStr                                                      (VkAndroidSurfaceCreateFlagsKHR value);
+tcu::Format::Bitfield<32>      getViSurfaceCreateFlagsNNStr                                                            (VkViSurfaceCreateFlagsNN value);
+tcu::Format::Bitfield<32>      getWaylandSurfaceCreateFlagsKHRStr                                                      (VkWaylandSurfaceCreateFlagsKHR value);
+tcu::Format::Bitfield<32>      getWin32SurfaceCreateFlagsKHRStr                                                        (VkWin32SurfaceCreateFlagsKHR value);
+tcu::Format::Bitfield<32>      getXlibSurfaceCreateFlagsKHRStr                                                         (VkXlibSurfaceCreateFlagsKHR value);
+tcu::Format::Bitfield<32>      getXcbSurfaceCreateFlagsKHRStr                                                          (VkXcbSurfaceCreateFlagsKHR value);
+tcu::Format::Bitfield<32>      getDirectFBSurfaceCreateFlagsEXTStr                                                     (VkDirectFBSurfaceCreateFlagsEXT value);
+tcu::Format::Bitfield<32>      getIOSSurfaceCreateFlagsMVKStr                                                          (VkIOSSurfaceCreateFlagsMVK value);
+tcu::Format::Bitfield<32>      getMacOSSurfaceCreateFlagsMVKStr                                                        (VkMacOSSurfaceCreateFlagsMVK value);
+tcu::Format::Bitfield<32>      getMetalSurfaceCreateFlagsEXTStr                                                        (VkMetalSurfaceCreateFlagsEXT value);
+tcu::Format::Bitfield<32>      getImagePipeSurfaceCreateFlagsFUCHSIAStr                                        (VkImagePipeSurfaceCreateFlagsFUCHSIA value);
+tcu::Format::Bitfield<32>      getStreamDescriptorSurfaceCreateFlagsGGPStr                                     (VkStreamDescriptorSurfaceCreateFlagsGGP value);
+tcu::Format::Bitfield<32>      getHeadlessSurfaceCreateFlagsEXTStr                                                     (VkHeadlessSurfaceCreateFlagsEXT value);
+tcu::Format::Bitfield<32>      getScreenSurfaceCreateFlagsQNXStr                                                       (VkScreenSurfaceCreateFlagsQNX value);
+tcu::Format::Bitfield<32>      getPeerMemoryFeatureFlagsStr                                                            (VkPeerMemoryFeatureFlags value);
+tcu::Format::Bitfield<32>      getMemoryAllocateFlagsStr                                                                       (VkMemoryAllocateFlags value);
 tcu::Format::Bitfield<32>      getDeviceGroupPresentModeFlagsKHRStr                                            (VkDeviceGroupPresentModeFlagsKHR value);
-tcu::Format::Bitfield<32>      getDisplayPlaneAlphaFlagsKHRStr                                                         (VkDisplayPlaneAlphaFlagsKHR value);
-tcu::Format::Bitfield<32>      getPerformanceCounterDescriptionFlagsKHRStr                                     (VkPerformanceCounterDescriptionFlagsKHR value);
-tcu::Format::Bitfield<32>      getAcquireProfilingLockFlagsKHRStr                                                      (VkAcquireProfilingLockFlagsKHR value);
 tcu::Format::Bitfield<32>      getDebugReportFlagsEXTStr                                                                       (VkDebugReportFlagsEXT value);
+tcu::Format::Bitfield<32>      getCommandPoolTrimFlagsStr                                                                      (VkCommandPoolTrimFlags value);
 tcu::Format::Bitfield<32>      getExternalMemoryHandleTypeFlagsNVStr                                           (VkExternalMemoryHandleTypeFlagsNV value);
 tcu::Format::Bitfield<32>      getExternalMemoryFeatureFlagsNVStr                                                      (VkExternalMemoryFeatureFlagsNV value);
-tcu::Format::Bitfield<32>      getConditionalRenderingFlagsEXTStr                                                      (VkConditionalRenderingFlagsEXT value);
+tcu::Format::Bitfield<32>      getExternalMemoryHandleTypeFlagsStr                                                     (VkExternalMemoryHandleTypeFlags value);
+tcu::Format::Bitfield<32>      getExternalMemoryFeatureFlagsStr                                                        (VkExternalMemoryFeatureFlags value);
+tcu::Format::Bitfield<32>      getExternalSemaphoreHandleTypeFlagsStr                                          (VkExternalSemaphoreHandleTypeFlags value);
+tcu::Format::Bitfield<32>      getExternalSemaphoreFeatureFlagsStr                                                     (VkExternalSemaphoreFeatureFlags value);
+tcu::Format::Bitfield<32>      getSemaphoreImportFlagsStr                                                                      (VkSemaphoreImportFlags value);
+tcu::Format::Bitfield<32>      getExternalFenceHandleTypeFlagsStr                                                      (VkExternalFenceHandleTypeFlags value);
+tcu::Format::Bitfield<32>      getExternalFenceFeatureFlagsStr                                                         (VkExternalFenceFeatureFlags value);
+tcu::Format::Bitfield<32>      getFenceImportFlagsStr                                                                          (VkFenceImportFlags value);
 tcu::Format::Bitfield<32>      getSurfaceCounterFlagsEXTStr                                                            (VkSurfaceCounterFlagsEXT 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);
+tcu::Format::Bitfield<32>      getPipelineCoverageReductionStateCreateFlagsNVStr                       (VkPipelineCoverageReductionStateCreateFlagsNV value);
+tcu::Format::Bitfield<32>      getValidationCacheCreateFlagsEXTStr                                                     (VkValidationCacheCreateFlagsEXT value);
 tcu::Format::Bitfield<32>      getDebugUtilsMessageSeverityFlagsEXTStr                                         (VkDebugUtilsMessageSeverityFlagsEXT value);
 tcu::Format::Bitfield<32>      getDebugUtilsMessageTypeFlagsEXTStr                                                     (VkDebugUtilsMessageTypeFlagsEXT value);
-tcu::Format::Bitfield<32>      getGeometryFlagsKHRStr                                                                          (VkGeometryFlagsKHR value);
-tcu::Format::Bitfield<32>      getGeometryInstanceFlagsKHRStr                                                          (VkGeometryInstanceFlagsKHR value);
-tcu::Format::Bitfield<32>      getBuildAccelerationStructureFlagsKHRStr                                        (VkBuildAccelerationStructureFlagsKHR value);
-tcu::Format::Bitfield<32>      getPipelineCompilerControlFlagsAMDStr                                           (VkPipelineCompilerControlFlagsAMD value);
-tcu::Format::Bitfield<32>      getShaderCorePropertiesFlagsAMDStr                                                      (VkShaderCorePropertiesFlagsAMD value);
-tcu::Format::Bitfield<32>      getIndirectStateFlagsNVStr                                                                      (VkIndirectStateFlagsNV value);
-tcu::Format::Bitfield<32>      getIndirectCommandsLayoutUsageFlagsNVStr                                        (VkIndirectCommandsLayoutUsageFlagsNV value);
-tcu::Format::Bitfield<32>      getDeviceDiagnosticsConfigFlagsNVStr                                            (VkDeviceDiagnosticsConfigFlagsNV value);
+tcu::Format::Bitfield<32>      getDebugUtilsMessengerCreateFlagsEXTStr                                         (VkDebugUtilsMessengerCreateFlagsEXT value);
+tcu::Format::Bitfield<32>      getDebugUtilsMessengerCallbackDataFlagsEXTStr                           (VkDebugUtilsMessengerCallbackDataFlagsEXT value);
+tcu::Format::Bitfield<32>      getDeviceMemoryReportFlagsEXTStr                                                        (VkDeviceMemoryReportFlagsEXT value);
+tcu::Format::Bitfield<32>      getPipelineRasterizationConservativeStateCreateFlagsEXTStr      (VkPipelineRasterizationConservativeStateCreateFlagsEXT value);
+tcu::Format::Bitfield<32>      getDescriptorBindingFlagsStr                                                            (VkDescriptorBindingFlags value);
+tcu::Format::Bitfield<32>      getConditionalRenderingFlagsEXTStr                                                      (VkConditionalRenderingFlagsEXT value);
+tcu::Format::Bitfield<32>      getResolveModeFlagsStr                                                                          (VkResolveModeFlags value);
+tcu::Format::Bitfield<32>      getPipelineRasterizationStateStreamCreateFlagsEXTStr            (VkPipelineRasterizationStateStreamCreateFlagsEXT value);
+tcu::Format::Bitfield<32>      getPipelineRasterizationDepthClipStateCreateFlagsEXTStr         (VkPipelineRasterizationDepthClipStateCreateFlagsEXT value);
+tcu::Format::Bitfield<32>      getSwapchainImageUsageFlagsANDROIDStr                                           (VkSwapchainImageUsageFlagsANDROID value);
+tcu::Format::Bitfield<32>      getToolPurposeFlagsStr                                                                          (VkToolPurposeFlags value);
+tcu::Format::Bitfield<32>      getSubmitFlagsStr                                                                                       (VkSubmitFlags value);
+tcu::Format::Bitfield<32>      getImageFormatConstraintsFlagsFUCHSIAStr                                        (VkImageFormatConstraintsFlagsFUCHSIA value);
+tcu::Format::Bitfield<32>      getImageConstraintsInfoFlagsFUCHSIAStr                                          (VkImageConstraintsInfoFlagsFUCHSIA value);
 tcu::Format::Bitfield<32>      getGraphicsPipelineLibraryFlagsEXTStr                                           (VkGraphicsPipelineLibraryFlagsEXT value);
 tcu::Format::Bitfield<32>      getImageCompressionFlagsEXTStr                                                          (VkImageCompressionFlagsEXT value);
 tcu::Format::Bitfield<32>      getImageCompressionFixedRateFlagsEXTStr                                         (VkImageCompressionFixedRateFlagsEXT value);
-tcu::Format::Bitfield<32>      getAccelerationStructureCreateFlagsKHRStr                                       (VkAccelerationStructureCreateFlagsKHR value);
+tcu::Format::Bitfield<32>      getExportMetalObjectTypeFlagsEXTStr                                                     (VkExportMetalObjectTypeFlagsEXT value);
 tcu::Format::Bitfield<32>      getVideoCodecOperationFlagsKHRStr                                                       (VkVideoCodecOperationFlagsKHR value);
-tcu::Format::Bitfield<32>      getVideoChromaSubsamplingFlagsKHRStr                                            (VkVideoChromaSubsamplingFlagsKHR value);
-tcu::Format::Bitfield<32>      getVideoComponentBitDepthFlagsKHRStr                                            (VkVideoComponentBitDepthFlagsKHR value);
 tcu::Format::Bitfield<32>      getVideoCapabilityFlagsKHRStr                                                           (VkVideoCapabilityFlagsKHR value);
 tcu::Format::Bitfield<32>      getVideoSessionCreateFlagsKHRStr                                                        (VkVideoSessionCreateFlagsKHR value);
-tcu::Format::Bitfield<32>      getVideoCodingControlFlagsKHRStr                                                        (VkVideoCodingControlFlagsKHR value);
+tcu::Format::Bitfield<32>      getVideoBeginCodingFlagsKHRStr                                                          (VkVideoBeginCodingFlagsKHR value);
+tcu::Format::Bitfield<32>      getVideoEndCodingFlagsKHRStr                                                            (VkVideoEndCodingFlagsKHR value);
 tcu::Format::Bitfield<32>      getVideoCodingQualityPresetFlagsKHRStr                                          (VkVideoCodingQualityPresetFlagsKHR value);
+tcu::Format::Bitfield<32>      getVideoCodingControlFlagsKHRStr                                                        (VkVideoCodingControlFlagsKHR value);
 tcu::Format::Bitfield<32>      getVideoDecodeCapabilityFlagsKHRStr                                                     (VkVideoDecodeCapabilityFlagsKHR value);
 tcu::Format::Bitfield<32>      getVideoDecodeFlagsKHRStr                                                                       (VkVideoDecodeFlagsKHR value);
+tcu::Format::Bitfield<32>      getVideoDecodeH264PictureLayoutFlagsEXTStr                                      (VkVideoDecodeH264PictureLayoutFlagsEXT value);
 tcu::Format::Bitfield<32>      getVideoEncodeFlagsKHRStr                                                                       (VkVideoEncodeFlagsKHR value);
 tcu::Format::Bitfield<32>      getVideoEncodeCapabilityFlagsKHRStr                                                     (VkVideoEncodeCapabilityFlagsKHR value);
-tcu::Format::Bitfield<32>      getVideoEncodeRateControlModeFlagsKHRStr                                        (VkVideoEncodeRateControlModeFlagsKHR value);
 tcu::Format::Bitfield<32>      getVideoEncodeRateControlFlagsKHRStr                                            (VkVideoEncodeRateControlFlagsKHR value);
+tcu::Format::Bitfield<32>      getVideoEncodeRateControlModeFlagsKHRStr                                        (VkVideoEncodeRateControlModeFlagsKHR value);
+tcu::Format::Bitfield<32>      getVideoChromaSubsamplingFlagsKHRStr                                            (VkVideoChromaSubsamplingFlagsKHR value);
+tcu::Format::Bitfield<32>      getVideoComponentBitDepthFlagsKHRStr                                            (VkVideoComponentBitDepthFlagsKHR value);
 tcu::Format::Bitfield<32>      getVideoEncodeH264CapabilityFlagsEXTStr                                         (VkVideoEncodeH264CapabilityFlagsEXT value);
 tcu::Format::Bitfield<32>      getVideoEncodeH264InputModeFlagsEXTStr                                          (VkVideoEncodeH264InputModeFlagsEXT value);
 tcu::Format::Bitfield<32>      getVideoEncodeH264OutputModeFlagsEXTStr                                         (VkVideoEncodeH264OutputModeFlagsEXT value);
@@ -480,119 +537,71 @@ tcu::Format::Bitfield<32>        getVideoEncodeH264RateControlStructureFlagsEXTStr                       (V
 tcu::Format::Bitfield<32>      getVideoEncodeH265CapabilityFlagsEXTStr                                         (VkVideoEncodeH265CapabilityFlagsEXT value);
 tcu::Format::Bitfield<32>      getVideoEncodeH265InputModeFlagsEXTStr                                          (VkVideoEncodeH265InputModeFlagsEXT value);
 tcu::Format::Bitfield<32>      getVideoEncodeH265OutputModeFlagsEXTStr                                         (VkVideoEncodeH265OutputModeFlagsEXT value);
+tcu::Format::Bitfield<32>      getVideoEncodeH265RateControlStructureFlagsEXTStr                       (VkVideoEncodeH265RateControlStructureFlagsEXT value);
 tcu::Format::Bitfield<32>      getVideoEncodeH265CtbSizeFlagsEXTStr                                            (VkVideoEncodeH265CtbSizeFlagsEXT value);
 tcu::Format::Bitfield<32>      getVideoEncodeH265TransformBlockSizeFlagsEXTStr                         (VkVideoEncodeH265TransformBlockSizeFlagsEXT value);
-tcu::Format::Bitfield<32>      getVideoEncodeH265RateControlStructureFlagsEXTStr                       (VkVideoEncodeH265RateControlStructureFlagsEXT value);
-tcu::Format::Bitfield<32>      getVideoDecodeH264PictureLayoutFlagsEXTStr                                      (VkVideoDecodeH264PictureLayoutFlagsEXT value);
-tcu::Format::Bitfield<32>      getImageConstraintsInfoFlagsFUCHSIAStr                                          (VkImageConstraintsInfoFlagsFUCHSIA value);
-tcu::Format::Bitfield<32>      getExportMetalObjectTypeFlagsEXTStr                                                     (VkExportMetalObjectTypeFlagsEXT 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>      getQueryPoolCreateFlagsStr                                                                      (VkQueryPoolCreateFlags value);
-tcu::Format::Bitfield<32>      getBufferViewCreateFlagsStr                                                                     (VkBufferViewCreateFlags value);
-tcu::Format::Bitfield<32>      getShaderModuleCreateFlagsStr                                                           (VkShaderModuleCreateFlags 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>      getPipelineDynamicStateCreateFlagsStr                                           (VkPipelineDynamicStateCreateFlags value);
-tcu::Format::Bitfield<32>      getDescriptorPoolResetFlagsStr                                                          (VkDescriptorPoolResetFlags value);
-tcu::Format::Bitfield<32>      getCommandPoolTrimFlagsStr                                                                      (VkCommandPoolTrimFlags value);
-tcu::Format::Bitfield<32>      getDescriptorUpdateTemplateCreateFlagsStr                                       (VkDescriptorUpdateTemplateCreateFlags value);
-tcu::Format::Bitfield<32>      getPrivateDataSlotCreateFlagsStr                                                        (VkPrivateDataSlotCreateFlags value);
-tcu::Format::Bitfield<32>      getDisplayModeCreateFlagsKHRStr                                                         (VkDisplayModeCreateFlagsKHR value);
-tcu::Format::Bitfield<32>      getDisplaySurfaceCreateFlagsKHRStr                                                      (VkDisplaySurfaceCreateFlagsKHR value);
-tcu::Format::Bitfield<32>      getPipelineRasterizationStateStreamCreateFlagsEXTStr            (VkPipelineRasterizationStateStreamCreateFlagsEXT value);
-tcu::Format::Bitfield<32>      getPipelineViewportSwizzleStateCreateFlagsNVStr                         (VkPipelineViewportSwizzleStateCreateFlagsNV value);
-tcu::Format::Bitfield<32>      getPipelineDiscardRectangleStateCreateFlagsEXTStr                       (VkPipelineDiscardRectangleStateCreateFlagsEXT value);
-tcu::Format::Bitfield<32>      getPipelineRasterizationConservativeStateCreateFlagsEXTStr      (VkPipelineRasterizationConservativeStateCreateFlagsEXT value);
-tcu::Format::Bitfield<32>      getPipelineRasterizationDepthClipStateCreateFlagsEXTStr         (VkPipelineRasterizationDepthClipStateCreateFlagsEXT value);
-tcu::Format::Bitfield<32>      getDebugUtilsMessengerCallbackDataFlagsEXTStr                           (VkDebugUtilsMessengerCallbackDataFlagsEXT value);
-tcu::Format::Bitfield<32>      getDebugUtilsMessengerCreateFlagsEXTStr                                         (VkDebugUtilsMessengerCreateFlagsEXT value);
-tcu::Format::Bitfield<32>      getPipelineCoverageToColorStateCreateFlagsNVStr                         (VkPipelineCoverageToColorStateCreateFlagsNV value);
-tcu::Format::Bitfield<32>      getPipelineCoverageModulationStateCreateFlagsNVStr                      (VkPipelineCoverageModulationStateCreateFlagsNV value);
-tcu::Format::Bitfield<32>      getValidationCacheCreateFlagsEXTStr                                                     (VkValidationCacheCreateFlagsEXT value);
-tcu::Format::Bitfield<32>      getPipelineCoverageReductionStateCreateFlagsNVStr                       (VkPipelineCoverageReductionStateCreateFlagsNV value);
-tcu::Format::Bitfield<32>      getHeadlessSurfaceCreateFlagsEXTStr                                                     (VkHeadlessSurfaceCreateFlagsEXT value);
-tcu::Format::Bitfield<32>      getDeviceMemoryReportFlagsEXTStr                                                        (VkDeviceMemoryReportFlagsEXT value);
-tcu::Format::Bitfield<32>      getAccelerationStructureMotionInfoFlagsNVStr                            (VkAccelerationStructureMotionInfoFlagsNV value);
-tcu::Format::Bitfield<32>      getAccelerationStructureMotionInstanceFlagsNVStr                        (VkAccelerationStructureMotionInstanceFlagsNV value);
-tcu::Format::Bitfield<32>      getAndroidSurfaceCreateFlagsKHRStr                                                      (VkAndroidSurfaceCreateFlagsKHR value);
-tcu::Format::Bitfield<32>      getVideoBeginCodingFlagsKHRStr                                                          (VkVideoBeginCodingFlagsKHR value);
-tcu::Format::Bitfield<32>      getVideoEndCodingFlagsKHRStr                                                            (VkVideoEndCodingFlagsKHR value);
-tcu::Format::Bitfield<32>      getImagePipeSurfaceCreateFlagsFUCHSIAStr                                        (VkImagePipeSurfaceCreateFlagsFUCHSIA value);
-tcu::Format::Bitfield<32>      getImageFormatConstraintsFlagsFUCHSIAStr                                        (VkImageFormatConstraintsFlagsFUCHSIA value);
-tcu::Format::Bitfield<32>      getStreamDescriptorSurfaceCreateFlagsGGPStr                                     (VkStreamDescriptorSurfaceCreateFlagsGGP value);
-tcu::Format::Bitfield<32>      getIOSSurfaceCreateFlagsMVKStr                                                          (VkIOSSurfaceCreateFlagsMVK value);
-tcu::Format::Bitfield<32>      getMacOSSurfaceCreateFlagsMVKStr                                                        (VkMacOSSurfaceCreateFlagsMVK value);
-tcu::Format::Bitfield<32>      getMetalSurfaceCreateFlagsEXTStr                                                        (VkMetalSurfaceCreateFlagsEXT value);
-tcu::Format::Bitfield<32>      getViSurfaceCreateFlagsNNStr                                                            (VkViSurfaceCreateFlagsNN value);
-tcu::Format::Bitfield<32>      getWaylandSurfaceCreateFlagsKHRStr                                                      (VkWaylandSurfaceCreateFlagsKHR value);
-tcu::Format::Bitfield<32>      getWin32SurfaceCreateFlagsKHRStr                                                        (VkWin32SurfaceCreateFlagsKHR value);
-tcu::Format::Bitfield<32>      getXcbSurfaceCreateFlagsKHRStr                                                          (VkXcbSurfaceCreateFlagsKHR value);
-tcu::Format::Bitfield<32>      getXlibSurfaceCreateFlagsKHRStr                                                         (VkXlibSurfaceCreateFlagsKHR value);
-tcu::Format::Bitfield<32>      getBuildAccelerationStructureFlagsNVStr                                         (VkBuildAccelerationStructureFlagsNV value);
 
-std::ostream&  operator<<      (std::ostream& s, const VkExtent2D& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExtent3D& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBaseOutStructure& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBaseInStructure& value);
 std::ostream&  operator<<      (std::ostream& s, const VkOffset2D& value);
 std::ostream&  operator<<      (std::ostream& s, const VkOffset3D& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExtent2D& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExtent3D& value);
+std::ostream&  operator<<      (std::ostream& s, const VkViewport& value);
 std::ostream&  operator<<      (std::ostream& s, const VkRect2D& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBaseInStructure& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBaseOutStructure& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBufferMemoryBarrier& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDispatchIndirectCommand& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDrawIndexedIndirectCommand& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDrawIndirectCommand& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageSubresourceRange& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageMemoryBarrier& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMemoryBarrier& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineCacheHeaderVersionOne& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAllocationCallbacks& value);
-std::ostream&  operator<<      (std::ostream& s, const VkApplicationInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkFormatProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageFormatProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkInstanceCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMemoryHeap& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMemoryType& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceLimits& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMemoryProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSparseProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkClearRect& value);
+std::ostream&  operator<<      (std::ostream& s, const VkComponentMapping& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkQueueFamilyProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceQueueCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceCreateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkExtensionProperties& value);
 std::ostream&  operator<<      (std::ostream& s, const VkLayerProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSubmitInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMappedMemoryRange& value);
+std::ostream&  operator<<      (std::ostream& s, const VkApplicationInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAllocationCallbacks& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceQueueCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkInstanceCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkQueueFamilyProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMemoryProperties& value);
 std::ostream&  operator<<      (std::ostream& s, const VkMemoryAllocateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkMemoryRequirements& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSparseMemoryBind& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSparseBufferMemoryBindInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSparseImageOpaqueMemoryBindInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageSubresource& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSparseImageMemoryBind& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSparseImageMemoryBindInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBindSparseInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkSparseImageFormatProperties& value);
 std::ostream&  operator<<      (std::ostream& s, const VkSparseImageMemoryRequirements& value);
-std::ostream&  operator<<      (std::ostream& s, const VkFenceCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSemaphoreCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkEventCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkQueryPoolCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBufferCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBufferViewCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSubresourceLayout& value);
-std::ostream&  operator<<      (std::ostream& s, const VkComponentMapping& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMemoryType& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMemoryHeap& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMappedMemoryRange& value);
+std::ostream&  operator<<      (std::ostream& s, const VkFormatProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageFormatProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDescriptorBufferInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDescriptorImageInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkWriteDescriptorSet& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCopyDescriptorSet& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBufferCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBufferViewCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageSubresource& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageSubresourceLayers& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageSubresourceRange& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMemoryBarrier& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBufferMemoryBarrier& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageMemoryBarrier& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSubresourceLayout& value);
 std::ostream&  operator<<      (std::ostream& s, const VkImageViewCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBufferCopy& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSparseMemoryBind& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSparseImageMemoryBind& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSparseBufferMemoryBindInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSparseImageOpaqueMemoryBindInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSparseImageMemoryBindInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBindSparseInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageCopy& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageBlit& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBufferImageCopy& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageResolve& value);
 std::ostream&  operator<<      (std::ostream& s, const VkShaderModuleCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineCacheCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDescriptorSetLayoutBinding& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDescriptorSetLayoutCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDescriptorPoolSize& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDescriptorPoolCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDescriptorSetAllocateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkSpecializationMapEntry& value);
 std::ostream&  operator<<      (std::ostream& s, const VkSpecializationInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineShaderStageCreateInfo& value);
@@ -602,70 +611,102 @@ std::ostream&    operator<<      (std::ostream& s, const VkVertexInputAttributeDescripti
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineVertexInputStateCreateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineInputAssemblyStateCreateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineTessellationStateCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkViewport& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineViewportStateCreateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineRasterizationStateCreateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineMultisampleStateCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkStencilOpState& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineDepthStencilStateCreateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineColorBlendAttachmentState& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineColorBlendStateCreateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineDynamicStateCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkStencilOpState& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineDepthStencilStateCreateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkGraphicsPipelineCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineCacheCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineCacheHeaderVersionOne& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPushConstantRange& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineLayoutCreateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkSamplerCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkCopyDescriptorSet& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDescriptorBufferInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDescriptorImageInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDescriptorPoolSize& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDescriptorPoolCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDescriptorSetAllocateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDescriptorSetLayoutBinding& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDescriptorSetLayoutCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkWriteDescriptorSet& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAttachmentDescription& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAttachmentReference& value);
-std::ostream&  operator<<      (std::ostream& s, const VkFramebufferCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSubpassDescription& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSubpassDependency& value);
-std::ostream&  operator<<      (std::ostream& s, const VkRenderPassCreateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkCommandPoolCreateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkCommandBufferAllocateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkCommandBufferInheritanceInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkCommandBufferBeginInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBufferCopy& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageSubresourceLayers& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBufferImageCopy& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRenderPassBeginInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkClearColorValue& value);
 std::ostream&  operator<<      (std::ostream& s, const VkClearDepthStencilValue& value);
 std::ostream&  operator<<      (std::ostream& s, const VkClearValue& value);
 std::ostream&  operator<<      (std::ostream& s, const VkClearAttachment& value);
-std::ostream&  operator<<      (std::ostream& s, const VkClearRect& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageBlit& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageCopy& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageResolve& value);
-std::ostream&  operator<<      (std::ostream& s, const VkRenderPassBeginInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSubgroupProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBindBufferMemoryInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBindImageMemoryInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevice16BitStorageFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMemoryDedicatedRequirements& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMemoryDedicatedAllocateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMemoryAllocateFlagsInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupRenderPassBeginInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupCommandBufferBeginInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupSubmitInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupBindSparseInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBindBufferMemoryDeviceGroupInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBindImageMemoryDeviceGroupInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceGroupProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupDeviceCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBufferMemoryRequirementsInfo2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageMemoryRequirementsInfo2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageSparseMemoryRequirementsInfo2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMemoryRequirements2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSparseImageMemoryRequirements2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAttachmentDescription& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAttachmentReference& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSubpassDescription& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSubpassDependency& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRenderPassCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkEventCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkFenceCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSparseProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceLimits& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSemaphoreCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkQueryPoolCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkFramebufferCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDrawIndirectCommand& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDrawIndexedIndirectCommand& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDispatchIndirectCommand& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMultiDrawInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMultiDrawIndexedInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSubmitInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDisplayPropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDisplayPlanePropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDisplayModeParametersKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDisplayModePropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDisplayModeCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDisplayPlaneCapabilitiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDisplaySurfaceCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDisplayPresentInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSurfaceCapabilitiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkViSurfaceCreateInfoNN& value);
+std::ostream&  operator<<      (std::ostream& s, const VkWaylandSurfaceCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkWin32SurfaceCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkXlibSurfaceCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkXcbSurfaceCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImagePipeSurfaceCreateInfoFUCHSIA& value);
+std::ostream&  operator<<      (std::ostream& s, const VkStreamDescriptorSurfaceCreateInfoGGP& value);
+std::ostream&  operator<<      (std::ostream& s, const VkScreenSurfaceCreateInfoQNX& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSurfaceFormatKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSwapchainCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPresentInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkValidationFlagsEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkValidationFeaturesEXT& 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 VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDevicePrivateDataCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPrivateDataSlotCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePrivateDataFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMultiDrawPropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkGraphicsShaderGroupCreateInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkGraphicsPipelineShaderGroupsCreateInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBindShaderGroupIndirectCommandNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBindIndexBufferIndirectCommandNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBindVertexBufferIndirectCommandNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSetStateFlagsIndirectCommandNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkIndirectCommandsStreamNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkIndirectCommandsLayoutTokenNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkIndirectCommandsLayoutCreateInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkGeneratedCommandsInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkGeneratedCommandsMemoryRequirementsInfoNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFeatures2& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceProperties2& value);
 std::ostream&  operator<<      (std::ostream& s, const VkFormatProperties2& value);
@@ -675,27 +716,13 @@ std::ostream&     operator<<      (std::ostream& s, const VkQueueFamilyProperties2& value
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMemoryProperties2& value);
 std::ostream&  operator<<      (std::ostream& s, const VkSparseImageFormatProperties2& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSparseImageFormatInfo2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePointClippingProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkInputAttachmentAspectReference& value);
-std::ostream&  operator<<      (std::ostream& s, const VkRenderPassInputAttachmentAspectCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageViewUsageCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineTessellationDomainOriginStateCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkRenderPassMultiviewCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMultiviewFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMultiviewProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePushDescriptorPropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkConformanceVersion& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDriverProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPresentRegionsKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPresentRegionKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRectLayerKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVariablePointersFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceProtectedMemoryFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceProtectedMemoryProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceQueueInfo2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkProtectedSubmitInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSamplerYcbcrConversionCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSamplerYcbcrConversionInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBindImagePlaneMemoryInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImagePlaneMemoryRequirementsInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSamplerYcbcrConversionFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSamplerYcbcrConversionImageFormatProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDescriptorUpdateTemplateEntry& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDescriptorUpdateTemplateCreateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkExternalMemoryProperties& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceExternalImageFormatInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkExternalImageFormatProperties& value);
@@ -705,161 +732,86 @@ std::ostream&    operator<<      (std::ostream& s, const VkPhysicalDeviceIDProperties& v
 std::ostream&  operator<<      (std::ostream& s, const VkExternalMemoryImageCreateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkExternalMemoryBufferCreateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkExportMemoryAllocateInfo& 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 VkImportMemoryZirconHandleInfoFUCHSIA& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMemoryZirconHandlePropertiesFUCHSIA& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMemoryGetZirconHandleInfoFUCHSIA& 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 VkPhysicalDeviceExternalSemaphoreInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExternalSemaphoreProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExportSemaphoreCreateInfo& 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 VkImportSemaphoreZirconHandleInfoFUCHSIA& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSemaphoreGetZirconHandleInfoFUCHSIA& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceExternalFenceInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkExternalFenceProperties& value);
 std::ostream&  operator<<      (std::ostream& s, const VkExportFenceCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExportSemaphoreCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceExternalSemaphoreInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExternalSemaphoreProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMaintenance3Properties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDescriptorSetLayoutSupport& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderDrawParametersFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVulkan11Features& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVulkan11Properties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVulkan12Features& value);
-std::ostream&  operator<<      (std::ostream& s, const VkConformanceVersion& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVulkan12Properties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageFormatListCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAttachmentDescription2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAttachmentReference2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSubpassDescription2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSubpassDependency2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkRenderPassCreateInfo2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSubpassBeginInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSubpassEndInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevice8BitStorageFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDriverProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderAtomicInt64Features& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderFloat16Int8Features& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFloatControlsProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDescriptorSetLayoutBindingFlagsCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDescriptorSetVariableDescriptorCountAllocateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDescriptorSetVariableDescriptorCountLayoutSupport& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSubpassDescriptionDepthStencilResolve& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDepthStencilResolveProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceScalarBlockLayoutFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageStencilUsageCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSamplerReductionModeCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSamplerFilterMinmaxProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVulkanMemoryModelFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceImagelessFramebufferFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkFramebufferAttachmentImageInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkFramebufferAttachmentsCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkRenderPassAttachmentBeginInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceUniformBufferStandardLayoutFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAttachmentReferenceStencilLayout& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAttachmentDescriptionStencilLayout& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceHostQueryResetFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSemaphoreTypeCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkTimelineSemaphoreSubmitInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSemaphoreWaitInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSemaphoreSignalInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBufferDeviceAddressInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBufferOpaqueCaptureAddressCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMemoryOpaqueCaptureAddressAllocateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceMemoryOpaqueCaptureAddressInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVulkan13Features& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVulkan13Properties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineCreationFeedback& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineCreationFeedbackCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderTerminateInvocationFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceToolProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePrivateDataFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDevicePrivateDataCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPrivateDataSlotCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePipelineCreationCacheControlFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMemoryBarrier2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBufferMemoryBarrier2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageMemoryBarrier2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDependencyInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSemaphoreSubmitInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkCommandBufferSubmitInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSubmitInfo2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSynchronization2Features& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceImageRobustnessFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBufferCopy2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkCopyBufferInfo2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageCopy2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkCopyImageInfo2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBufferImageCopy2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkCopyBufferToImageInfo2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkCopyImageToBufferInfo2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageBlit2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBlitImageInfo2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageResolve2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkResolveImageInfo2& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkWriteDescriptorSetInlineUniformBlock& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDescriptorPoolInlineUniformBlockCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceTextureCompressionASTCHDRFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkRenderingAttachmentInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkRenderingInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineRenderingCreateInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDynamicRenderingFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkCommandBufferInheritanceRenderingInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductFeatures& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentProperties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkFormatProperties3& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMaintenance4Features& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMaintenance4Properties& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceBufferMemoryRequirements& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceImageMemoryRequirements& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSurfaceCapabilitiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSurfaceFormatKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSwapchainCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPresentInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImportFenceWin32HandleInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExportFenceWin32HandleInfoKHR& value);
+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 VkPhysicalDeviceMultiviewFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMultiviewProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRenderPassMultiviewCreateInfo& 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 VkPhysicalDeviceGroupProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMemoryAllocateFlagsInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBindBufferMemoryInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBindBufferMemoryDeviceGroupInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBindImageMemoryInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBindImageMemoryDeviceGroupInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupRenderPassBeginInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupCommandBufferBeginInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupSubmitInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupBindSparseInfo& 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 VkDeviceGroupPresentCapabilitiesKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupPresentInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupDeviceCreateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkDeviceGroupSwapchainCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDisplayModeParametersKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDisplayModeCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDisplayModePropertiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDisplayPlaneCapabilitiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDisplayPlanePropertiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDisplayPropertiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDisplaySurfaceCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDisplayPresentInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkRenderingFragmentShadingRateAttachmentInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkRenderingFragmentDensityMapAttachmentInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAttachmentSampleCountInfoAMD& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMultiviewPerViewAttributesInfoNVX& 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 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 VkRectLayerKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPresentRegionKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPresentRegionsKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSharedPresentSurfaceCapabilitiesKHR& 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 VkPhysicalDevicePerformanceQueryFeaturesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePerformanceQueryPropertiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPerformanceCounterKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPerformanceCounterDescriptionKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkQueryPoolPerformanceCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPerformanceCounterResultKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAcquireProfilingLockInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPerformanceQuerySubmitInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDescriptorUpdateTemplateEntry& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDescriptorUpdateTemplateCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkXYColorEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePresentIdFeaturesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPresentIdKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePresentWaitFeaturesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkHdrMetadataEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDisplayNativeHdrSurfaceCapabilitiesAMD& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSwapchainDisplayNativeHdrCreateInfoAMD& 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 VkPresentTimesInfoGOOGLE& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPresentTimeGOOGLE& value);
+std::ostream&  operator<<      (std::ostream& s, const VkIOSSurfaceCreateInfoMVK& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMacOSSurfaceCreateInfoMVK& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMetalSurfaceCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkViewportWScalingNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineViewportWScalingStateCreateInfoNV& 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 VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& value);
+std::ostream&  operator<<      (std::ostream& s, const VkInputAttachmentAspectReference& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRenderPassInputAttachmentAspectCreateInfo& 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);
@@ -868,94 +820,36 @@ std::ostream&     operator<<      (std::ostream& s, const VkDisplayPlaneProperties2KHR& v
 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 VkPhysicalDeviceShaderClockFeaturesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceQueueGlobalPriorityCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkQueueFamilyGlobalPriorityPropertiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkFragmentShadingRateAttachmentInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineFragmentShadingRateStateCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateFeaturesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentShadingRatePropertiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSurfaceProtectedCapabilitiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePresentWaitFeaturesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineExecutablePropertiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineExecutableInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineExecutableStatisticValueKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineExecutableStatisticKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineExecutableInternalRepresentationKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineLibraryCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPresentIdKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePresentIdFeaturesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkQueueFamilyCheckpointProperties2NV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkCheckpointData2NV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkTraceRaysIndirectCommand2KHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& 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 VkPhysicalDeviceTransformFeedbackFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceTransformFeedbackPropertiesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineRasterizationStateStreamCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkCuModuleCreateInfoNVX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkCuFunctionCreateInfoNVX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkCuLaunchInfoNVX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageViewHandleInfoNVX& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageViewAddressPropertiesNVX& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSharedPresentSurfaceCapabilitiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevice16BitStorageFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSubgroupProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBufferMemoryRequirementsInfo2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceBufferMemoryRequirements& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageMemoryRequirementsInfo2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageSparseMemoryRequirementsInfo2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceImageMemoryRequirements& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMemoryRequirements2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSparseImageMemoryRequirements2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePointClippingProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMemoryDedicatedRequirements& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMemoryDedicatedAllocateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageViewUsageCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineTessellationDomainOriginStateCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSamplerYcbcrConversionInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSamplerYcbcrConversionCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBindImagePlaneMemoryInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImagePlaneMemoryRequirementsInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSamplerYcbcrConversionFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSamplerYcbcrConversionImageFormatProperties& value);
 std::ostream&  operator<<      (std::ostream& s, const VkTextureLODGatherFormatPropertiesAMD& value);
-std::ostream&  operator<<      (std::ostream& s, const VkShaderResourceUsageAMD& value);
-std::ostream&  operator<<      (std::ostream& s, const VkShaderStatisticsInfoAMD& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceCornerSampledImageFeaturesNV& 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 VkValidationFlagsEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageViewASTCDecodeModeEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceASTCDecodeFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePipelineRobustnessFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePipelineRobustnessPropertiesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineRobustnessCreateInfoEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkConditionalRenderingBeginInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceConditionalRenderingFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkCommandBufferInheritanceConditionalRenderingInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkViewportWScalingNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineViewportWScalingStateCreateInfoNV& 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 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 VkPhysicalDeviceConservativeRasterizationPropertiesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineRasterizationConservativeStateCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDepthClipEnableFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineRasterizationDepthClipStateCreateInfoEXT& 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 VkDebugUtilsLabelEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDebugUtilsObjectNameInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDebugUtilsMessengerCallbackDataEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDebugUtilsMessengerCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDebugUtilsObjectTagInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkProtectedSubmitInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceProtectedMemoryFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceProtectedMemoryProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceQueueInfo2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineCoverageToColorStateCreateInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSamplerFilterMinmaxProperties& 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);
@@ -964,32 +858,116 @@ std::ostream&    operator<<      (std::ostream& s, const VkRenderPassSampleLocationsBegi
 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 VkSamplerReductionModeCreateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMultiDrawFeaturesEXT& 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 VkPhysicalDeviceInlineUniformBlockFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkWriteDescriptorSetInlineUniformBlock& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDescriptorPoolInlineUniformBlockCreateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineCoverageModulationStateCreateInfoNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDrmFormatModifierPropertiesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDrmFormatModifierPropertiesListEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceImageDrmFormatModifierInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageDrmFormatModifierListCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageDrmFormatModifierExplicitCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageDrmFormatModifierPropertiesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDrmFormatModifierProperties2EXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDrmFormatModifierPropertiesList2EXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageFormatListCreateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkValidationCacheCreateInfoEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkShaderModuleValidationCacheCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMaintenance3Properties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMaintenance4Features& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMaintenance4Properties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDescriptorSetLayoutSupport& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderDrawParametersFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderFloat16Int8Features& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFloatControlsProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceHostQueryResetFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkShaderResourceUsageAMD& value);
+std::ostream&  operator<<      (std::ostream& s, const VkShaderStatisticsInfoAMD& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceQueueGlobalPriorityCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkQueueFamilyGlobalPriorityPropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDebugUtilsObjectNameInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDebugUtilsObjectTagInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDebugUtilsLabelEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDebugUtilsMessengerCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDebugUtilsMessengerCallbackDataEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceDeviceMemoryReportCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceMemoryReportCallbackDataEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImportMemoryHostPointerInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMemoryHostPointerPropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceExternalMemoryHostPropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceConservativeRasterizationPropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCalibratedTimestampInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderCorePropertiesAMD& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderCoreProperties2AMD& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineRasterizationConservativeStateCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDescriptorSetLayoutBindingFlagsCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDescriptorSetVariableDescriptorCountAllocateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDescriptorSetVariableDescriptorCountLayoutSupport& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAttachmentDescription2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAttachmentReference2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSubpassDescription2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSubpassDependency2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRenderPassCreateInfo2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSubpassBeginInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSubpassEndInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSemaphoreTypeCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkTimelineSemaphoreSubmitInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSemaphoreWaitInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSemaphoreSignalInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVertexInputBindingDivisorDescriptionEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineVertexInputDivisorStateCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePCIBusInfoPropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImportAndroidHardwareBufferInfoANDROID& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAndroidHardwareBufferUsageANDROID& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAndroidHardwareBufferPropertiesANDROID& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMemoryGetAndroidHardwareBufferInfoANDROID& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAndroidHardwareBufferFormatPropertiesANDROID& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCommandBufferInheritanceConditionalRenderingInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExternalFormatANDROID& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevice8BitStorageFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceConditionalRenderingFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVulkanMemoryModelFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderAtomicInt64Features& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkQueueFamilyCheckpointPropertiesNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCheckpointDataNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDepthStencilResolveProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSubpassDescriptionDepthStencilResolve& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageViewASTCDecodeModeEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceASTCDecodeFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceTransformFeedbackFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceTransformFeedbackPropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineRasterizationStateStreamCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineRepresentativeFragmentTestStateCreateInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceExclusiveScissorFeaturesNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineViewportExclusiveScissorStateCreateInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceCornerSampledImageFeaturesNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderImageFootprintFeaturesNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkShadingRatePaletteNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineViewportShadingRateImageStateCreateInfoNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShadingRateImageFeaturesNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShadingRateImagePropertiesNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI& value);
 std::ostream&  operator<<      (std::ostream& s, const VkCoarseSampleLocationNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkCoarseSampleOrderCustomNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMeshShaderFeaturesNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMeshShaderPropertiesNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDrawMeshTasksIndirectCommandNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkRayTracingShaderGroupCreateInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRayTracingShaderGroupCreateInfoKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkRayTracingPipelineCreateInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRayTracingPipelineCreateInfoKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkGeometryTrianglesNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkGeometryAABBNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkGeometryDataNV& value);
@@ -997,254 +975,377 @@ std::ostream&   operator<<      (std::ostream& s, const VkGeometryNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureInfoNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureCreateInfoNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkBindAccelerationStructureMemoryInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureMemoryRequirementsInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceAccelerationStructureFeaturesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceRayTracingPipelineFeaturesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceRayQueryFeaturesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceAccelerationStructurePropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceRayTracingPipelinePropertiesKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceRayTracingPropertiesNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkTransformMatrixKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAabbPositionsKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureInstanceKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineRepresentativeFragmentTestStateCreateInfoNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceImageViewImageFormatInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkFilterCubicImageViewImageFormatPropertiesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImportMemoryHostPointerInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMemoryHostPointerPropertiesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceExternalMemoryHostPropertiesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineCompilerControlCreateInfoAMD& value);
-std::ostream&  operator<<      (std::ostream& s, const VkCalibratedTimestampInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderCorePropertiesAMD& value);
+std::ostream&  operator<<      (std::ostream& s, const VkStridedDeviceAddressRegionKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkTraceRaysIndirectCommandKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkTraceRaysIndirectCommand2KHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDrmFormatModifierPropertiesListEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDrmFormatModifierPropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceImageDrmFormatModifierInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageDrmFormatModifierListCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageDrmFormatModifierExplicitCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageDrmFormatModifierPropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageStencilUsageCreateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkDeviceMemoryOverallocationCreateInfoAMD& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVertexInputBindingDivisorDescriptionEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineVertexInputDivisorStateCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMeshShaderFeaturesNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMeshShaderPropertiesNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDrawMeshTasksIndirectCommandNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderImageFootprintFeaturesNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineViewportExclusiveScissorStateCreateInfoNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceExclusiveScissorFeaturesNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkQueueFamilyCheckpointPropertiesNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkCheckpointDataNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPerformanceValueDataINTEL& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPerformanceValueINTEL& value);
-std::ostream&  operator<<      (std::ostream& s, const VkInitializePerformanceApiInfoINTEL& value);
-std::ostream&  operator<<      (std::ostream& s, const VkQueryPoolPerformanceQueryCreateInfoINTEL& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPerformanceMarkerInfoINTEL& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPerformanceStreamMarkerInfoINTEL& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPerformanceOverrideInfoINTEL& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPerformanceConfigurationAcquireInfoINTEL& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePCIBusInfoPropertiesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDisplayNativeHdrSurfaceCapabilitiesAMD& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSwapchainDisplayNativeHdrCreateInfoAMD& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapPropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM& value);
 std::ostream&  operator<<      (std::ostream& s, const VkRenderPassFragmentDensityMapCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderCoreProperties2AMD& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceCoherentMemoryFeaturesAMD& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSubpassFragmentDensityMapOffsetEndInfoQCOM& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceScalarBlockLayoutFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSurfaceProtectedCapabilitiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceUniformBufferStandardLayoutFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDepthClipEnableFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineRasterizationDepthClipStateCreateInfoEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMemoryBudgetPropertiesEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMemoryPriorityFeaturesEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkMemoryPriorityAllocateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeatures& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBufferDeviceAddressInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBufferOpaqueCaptureAddressCreateInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkBufferDeviceAddressCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkValidationFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkCooperativeMatrixPropertiesNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceImageViewImageFormatInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkFilterCubicImageViewImageFormatPropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceImagelessFramebufferFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkFramebufferAttachmentsCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkFramebufferAttachmentImageInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRenderPassAttachmentBeginInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceTextureCompressionASTCHDRFeatures& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixFeaturesNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixPropertiesNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCooperativeMatrixPropertiesNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageViewHandleInfoNVX& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageViewAddressPropertiesNVX& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPresentFrameTokenGGP& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineCreationFeedback& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineCreationFeedbackCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSurfaceFullScreenExclusiveInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSurfaceFullScreenExclusiveWin32InfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSurfaceCapabilitiesFullScreenExclusiveEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePerformanceQueryFeaturesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePerformanceQueryPropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPerformanceCounterKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPerformanceCounterDescriptionKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkQueryPoolPerformanceCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPerformanceCounterResultKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAcquireProfilingLockInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPerformanceQuerySubmitInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkHeadlessSurfaceCreateInfoEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceCoverageReductionModeFeaturesNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineCoverageReductionStateCreateInfoNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkFramebufferMixedSamplesCombinationNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPerformanceValueDataINTEL& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPerformanceValueINTEL& value);
+std::ostream&  operator<<      (std::ostream& s, const VkInitializePerformanceApiInfoINTEL& value);
+std::ostream&  operator<<      (std::ostream& s, const VkQueryPoolPerformanceQueryCreateInfoINTEL& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPerformanceMarkerInfoINTEL& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPerformanceStreamMarkerInfoINTEL& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPerformanceOverrideInfoINTEL& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPerformanceConfigurationAcquireInfoINTEL& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderClockFeaturesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceIndexTypeUint8FeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceProvokingVertexFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceProvokingVertexPropertiesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkHeadlessSurfaceCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAttachmentReferenceStencilLayout& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAttachmentDescriptionStencilLayout& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineExecutablePropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineExecutableInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineExecutableStatisticValueKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineExecutableStatisticKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineExecutableInternalRepresentationKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSubpassShadingPipelineCreateInfoHUAWEI& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMemoryOpaqueCaptureAddressAllocateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceMemoryOpaqueCaptureAddressInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceLineRasterizationFeaturesEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceLineRasterizationPropertiesEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineRasterizationLineStateCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceIndexTypeUint8FeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkGraphicsShaderGroupCreateInfoNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkGraphicsPipelineShaderGroupsCreateInfoNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBindShaderGroupIndirectCommandNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBindIndexBufferIndirectCommandNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBindVertexBufferIndirectCommandNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSetStateFlagsIndirectCommandNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkIndirectCommandsStreamNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkIndirectCommandsLayoutTokenNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkIndirectCommandsLayoutCreateInfoNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkGeneratedCommandsInfoNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkGeneratedCommandsMemoryRequirementsInfoNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceInheritedViewportScissorFeaturesNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkCommandBufferInheritanceViewportScissorInfoNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkRenderPassTransformBeginInfoQCOM& value);
-std::ostream&  operator<<      (std::ostream& s, const VkCommandBufferInheritanceRenderPassTransformInfoQCOM& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceMemoryReportCallbackDataEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceDeviceMemoryReportCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceRobustness2FeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceRobustness2PropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePipelineCreationCacheControlFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVulkan11Features& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVulkan11Properties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVulkan12Features& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVulkan12Properties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVulkan13Features& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVulkan13Properties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineCompilerControlCreateInfoAMD& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceCoherentMemoryFeaturesAMD& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceToolProperties& value);
 std::ostream&  operator<<      (std::ostream& s, const VkSamplerCustomBorderColorCreateInfoEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceCustomBorderColorPropertiesEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceCustomBorderColorFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSamplerBorderColorComponentMappingCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceOrHostAddressKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDeviceOrHostAddressConstKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureGeometryTrianglesDataKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureGeometryAabbsDataKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureGeometryInstancesDataKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureGeometryDataKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureGeometryKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureBuildGeometryInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureBuildRangeInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAabbPositionsKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkTransformMatrixKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureInstanceKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureDeviceAddressInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureVersionInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCopyAccelerationStructureInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCopyAccelerationStructureToMemoryInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCopyMemoryToAccelerationStructureInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRayTracingPipelineInterfaceCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineLibraryCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRenderPassTransformBeginInfoQCOM& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCopyCommandTransformInfoQCOM& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCommandBufferInheritanceRenderPassTransformInfoQCOM& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDiagnosticsConfigFeaturesNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkDeviceDiagnosticsConfigCreateInfoNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkGraphicsPipelineLibraryCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceRobustness2FeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceRobustness2PropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceImageRobustnessFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePortabilitySubsetFeaturesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePortabilitySubsetPropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevice4444FormatsFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBufferCopy2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageCopy2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageBlit2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBufferImageCopy2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageResolve2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCopyBufferInfo2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCopyImageInfo2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBlitImageInfo2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCopyBufferToImageInfo2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCopyImageToBufferInfo2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkResolveImageInfo2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkFragmentShadingRateAttachmentInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineFragmentShadingRateStateCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateFeaturesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentShadingRatePropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderTerminateInvocationFeatures& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineFragmentShadingRateEnumStateCreateInfoNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceOrHostAddressConstKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureGeometryMotionTrianglesDataNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureMotionInfoNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureMatrixMotionInstanceNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSRTDataNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureSRTMotionInstanceNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureMotionInstanceDataNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureMotionInstanceNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkCopyCommandTransformInfoQCOM& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceImageCompressionControlFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageCompressionControlEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSubresourceLayout2EXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageSubresource2EXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageCompressionPropertiesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevice4444FormatsFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureBuildSizesInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE& value);
 std::ostream&  operator<<      (std::ostream& s, const VkMutableDescriptorTypeListVALVE& value);
 std::ostream&  operator<<      (std::ostream& s, const VkMutableDescriptorTypeCreateInfoVALVE& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVertexInputBindingDescription2EXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVertexInputAttributeDescription2EXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDrmPropertiesEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDepthClipControlFeaturesEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineViewportDepthClipControlCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSubpassShadingPipelineCreateInfoHUAWEI& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMemoryGetRemoteAddressInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelinePropertiesIdentifierEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePipelinePropertiesFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSubpassResolvePerformanceQueryEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMultisampledRenderToSingleSampledInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVertexInputBindingDescription2EXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVertexInputAttributeDescription2EXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceColorWriteEnableFeaturesEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineColorWriteCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMemoryBarrier2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageMemoryBarrier2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBufferMemoryBarrier2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDependencyInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSemaphoreSubmitInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCommandBufferSubmitInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSubmitInfo2& value);
+std::ostream&  operator<<      (std::ostream& s, const VkQueueFamilyCheckpointProperties2NV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCheckpointData2NV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSynchronization2Features& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSubpassResolvePerformanceQueryEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMultisampledRenderToSingleSampledInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoQueueFamilyProperties2KHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkQueueFamilyQueryResultStatusProperties2KHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoProfilesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVideoFormatInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoFormatPropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoProfileKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoCapabilitiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoGetMemoryPropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoBindMemoryKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoPictureResourceKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoReferenceSlotKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeCapabilitiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH264ProfileEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH264CapabilitiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH264SessionParametersAddInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH264SessionParametersCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH264PictureInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH264DpbSlotInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH264MvcEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH265ProfileEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH265CapabilitiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH265SessionParametersAddInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH265SessionParametersCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH265PictureInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH265DpbSlotInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoSessionCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoSessionParametersCreateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoSessionParametersUpdateInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoBeginCodingInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEndCodingInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoCodingControlInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeRateControlInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeRateControlLayerInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeCapabilitiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264CapabilitiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264SessionParametersAddInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264SessionParametersCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264DpbSlotInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264VclFrameInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264ReferenceListsEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264EmitPictureParametersEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264ProfileEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264NaluSliceEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264RateControlInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264QpEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264FrameSizeEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264RateControlLayerInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265CapabilitiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265SessionParametersAddInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265SessionParametersCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265VclFrameInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265EmitPictureParametersEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265NaluSliceSegmentEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265RateControlInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265QpEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265FrameSizeEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265RateControlLayerInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265ProfileEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265DpbSlotInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265ReferenceListsEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceInheritedViewportScissorFeaturesNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCommandBufferInheritanceViewportScissorInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceProvokingVertexFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceProvokingVertexPropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCuModuleCreateInfoNVX& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCuFunctionCreateInfoNVX& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCuLaunchInfoNVX& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductProperties& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDrmPropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureGeometryMotionTrianglesDataNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureMotionInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSRTDataNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureSRTMotionInstanceNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureMatrixMotionInstanceNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureMotionInstanceDataNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureMotionInstanceNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMemoryGetRemoteAddressInfoNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImportMemoryBufferCollectionFUCHSIA& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBufferCollectionImageCreateInfoFUCHSIA& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBufferCollectionBufferCreateInfoFUCHSIA& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBufferCollectionCreateInfoFUCHSIA& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBufferCollectionPropertiesFUCHSIA& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBufferConstraintsInfoFUCHSIA& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSysmemColorSpaceFUCHSIA& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageFormatConstraintsInfoFUCHSIA& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageConstraintsInfoFUCHSIA& value);
+std::ostream&  operator<<      (std::ostream& s, const VkBufferCollectionConstraintsInfoFUCHSIA& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkFormatProperties3& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDrmFormatModifierPropertiesList2EXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkDrmFormatModifierProperties2EXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAndroidHardwareBufferFormatProperties2ANDROID& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineRenderingCreateInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRenderingInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRenderingAttachmentInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRenderingFragmentShadingRateAttachmentInfoKHR& value);
+std::ostream&  operator<<      (std::ostream& s, const VkRenderingFragmentDensityMapAttachmentInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDynamicRenderingFeatures& value);
+std::ostream&  operator<<      (std::ostream& s, const VkCommandBufferInheritanceRenderingInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAttachmentSampleCountInfoAMD& value);
+std::ostream&  operator<<      (std::ostream& s, const VkMultiviewPerViewAttributesInfoNVX& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceImageViewMinLodFeaturesEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkImageViewMinLodCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMultiDrawFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceMultiDrawPropertiesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMultiDrawInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMultiDrawIndexedInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSamplerBorderColorComponentMappingCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceLinearColorAttachmentFeaturesNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkGraphicsPipelineLibraryCreateInfoEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE& value);
 std::ostream&  operator<<      (std::ostream& s, const VkDescriptorSetBindingReferenceVALVE& value);
 std::ostream&  operator<<      (std::ostream& s, const VkDescriptorSetLayoutHostMappingInfoVALVE& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSubpassFragmentDensityMapOffsetEndInfoQCOM& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceLinearColorAttachmentFeaturesNV& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineShaderStageModuleIdentifierCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkShaderModuleIdentifierEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageCompressionControlEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceImageCompressionControlFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageCompressionPropertiesEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageViewSampleWeightCreateInfoQCOM& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceImageProcessingFeaturesQCOM& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceImageProcessingPropertiesQCOM& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageSubresource2EXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkSubresourceLayout2EXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkRenderPassCreationControlEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkRenderPassCreationFeedbackInfoEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkRenderPassCreationFeedbackCreateInfoEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkRenderPassSubpassFeedbackInfoEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkRenderPassSubpassFeedbackCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPipelineShaderStageModuleIdentifierCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkShaderModuleIdentifierEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelinePropertiesIdentifierEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePipelinePropertiesFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExportMetalObjectCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExportMetalObjectsInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExportMetalDeviceInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExportMetalCommandQueueInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExportMetalBufferInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImportMetalBufferInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExportMetalTextureInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImportMetalTextureInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExportMetalIOSurfaceInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImportMetalIOSurfaceInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkExportMetalSharedEventInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImportMetalSharedEventInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePipelineRobustnessFeaturesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPipelineRobustnessCreateInfoEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePipelineRobustnessPropertiesEXT& value);
+std::ostream&  operator<<      (std::ostream& s, const VkImageViewSampleWeightCreateInfoQCOM& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceImageProcessingFeaturesQCOM& value);
+std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceImageProcessingPropertiesQCOM& value);
 std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceTilePropertiesFeaturesQCOM& value);
 std::ostream&  operator<<      (std::ostream& s, const VkTilePropertiesQCOM& value);
-std::ostream&  operator<<      (std::ostream& s, const VkDeviceOrHostAddressKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureBuildRangeInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureGeometryTrianglesDataKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureGeometryAabbsDataKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureGeometryInstancesDataKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureGeometryDataKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureGeometryKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureBuildGeometryInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceAccelerationStructureFeaturesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceAccelerationStructurePropertiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureDeviceAddressInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureVersionInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkCopyAccelerationStructureToMemoryInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkCopyMemoryToAccelerationStructureInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkCopyAccelerationStructureInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAccelerationStructureBuildSizesInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkRayTracingShaderGroupCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkRayTracingPipelineInterfaceCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkRayTracingPipelineCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceRayTracingPipelineFeaturesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceRayTracingPipelinePropertiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkStridedDeviceAddressRegionKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkTraceRaysIndirectCommandKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceRayQueryFeaturesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAndroidHardwareBufferUsageANDROID& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAndroidHardwareBufferPropertiesANDROID& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAndroidHardwareBufferFormatPropertiesANDROID& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImportAndroidHardwareBufferInfoANDROID& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMemoryGetAndroidHardwareBufferInfoANDROID& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExternalFormatANDROID& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAndroidHardwareBufferFormatProperties2ANDROID& value);
-std::ostream&  operator<<      (std::ostream& s, const VkQueueFamilyQueryResultStatusProperties2KHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoQueueFamilyProperties2KHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoProfileKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoProfilesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoCapabilitiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceVideoFormatInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoFormatPropertiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoPictureResourceKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoReferenceSlotKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoGetMemoryPropertiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoBindMemoryKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoSessionCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoSessionParametersCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoSessionParametersUpdateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoBeginCodingInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEndCodingInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoCodingControlInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeCapabilitiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePortabilitySubsetFeaturesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDevicePortabilitySubsetPropertiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeCapabilitiesKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeRateControlLayerInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeRateControlInfoKHR& value);
 std::ostream&  operator<<      (std::ostream& s, const StdVideoH264SpsVuiFlags& value);
 std::ostream&  operator<<      (std::ostream& s, const StdVideoH264HrdParameters& value);
 std::ostream&  operator<<      (std::ostream& s, const StdVideoH264SequenceParameterSetVui& value);
@@ -1253,6 +1354,13 @@ std::ostream&    operator<<      (std::ostream& s, const StdVideoH264ScalingLists& value
 std::ostream&  operator<<      (std::ostream& s, const StdVideoH264SequenceParameterSet& value);
 std::ostream&  operator<<      (std::ostream& s, const StdVideoH264PpsFlags& value);
 std::ostream&  operator<<      (std::ostream& s, const StdVideoH264PictureParameterSet& value);
+std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH264PictureInfoFlags& value);
+std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH264PictureInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH264ReferenceInfoFlags& value);
+std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH264ReferenceInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH264MvcElementFlags& value);
+std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH264MvcElement& value);
+std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH264Mvc& value);
 std::ostream&  operator<<      (std::ostream& s, const StdVideoEncodeH264WeightTableFlags& value);
 std::ostream&  operator<<      (std::ostream& s, const StdVideoEncodeH264WeightTable& value);
 std::ostream&  operator<<      (std::ostream& s, const StdVideoEncodeH264SliceHeaderFlags& value);
@@ -1265,19 +1373,6 @@ std::ostream&    operator<<      (std::ostream& s, const StdVideoEncodeH264RefMemMgmtCtr
 std::ostream&  operator<<      (std::ostream& s, const StdVideoEncodeH264PictureInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const StdVideoEncodeH264ReferenceInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const StdVideoEncodeH264SliceHeader& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264CapabilitiesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264SessionParametersAddInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264SessionParametersCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264DpbSlotInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264ReferenceListsEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264NaluSliceEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264VclFrameInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264EmitPictureParametersEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264ProfileEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264RateControlInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264QpEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264FrameSizeEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH264RateControlLayerInfoEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const StdVideoH265DecPicBufMgr& value);
 std::ostream&  operator<<      (std::ostream& s, const StdVideoH265SubLayerHrdParameters& value);
 std::ostream&  operator<<      (std::ostream& s, const StdVideoH265HrdFlags& value);
@@ -1292,6 +1387,10 @@ std::ostream&    operator<<      (std::ostream& s, const StdVideoH265SpsFlags& value);
 std::ostream&  operator<<      (std::ostream& s, const StdVideoH265SequenceParameterSet& value);
 std::ostream&  operator<<      (std::ostream& s, const StdVideoH265PpsFlags& value);
 std::ostream&  operator<<      (std::ostream& s, const StdVideoH265PictureParameterSet& value);
+std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH265PictureInfoFlags& value);
+std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH265PictureInfo& value);
+std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH265ReferenceInfoFlags& value);
+std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH265ReferenceInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const StdVideoEncodeH265WeightTableFlags& value);
 std::ostream&  operator<<      (std::ostream& s, const StdVideoEncodeH265WeightTable& value);
 std::ostream&  operator<<      (std::ostream& s, const StdVideoEncodeH265SliceSegmentHeaderFlags& value);
@@ -1302,96 +1401,3 @@ std::ostream&    operator<<      (std::ostream& s, const StdVideoEncodeH265PictureInfoFl
 std::ostream&  operator<<      (std::ostream& s, const StdVideoEncodeH265PictureInfo& value);
 std::ostream&  operator<<      (std::ostream& s, const StdVideoEncodeH265ReferenceInfoFlags& value);
 std::ostream&  operator<<      (std::ostream& s, const StdVideoEncodeH265ReferenceInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265CapabilitiesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265SessionParametersAddInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265SessionParametersCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265DpbSlotInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265ReferenceListsEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265NaluSliceSegmentEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265VclFrameInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265EmitPictureParametersEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265ProfileEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265RateControlInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265QpEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265FrameSizeEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoEncodeH265RateControlLayerInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH264PictureInfoFlags& value);
-std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH264PictureInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH264ReferenceInfoFlags& value);
-std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH264ReferenceInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH264MvcElementFlags& value);
-std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH264MvcElement& value);
-std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH264Mvc& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH264ProfileEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH264CapabilitiesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH264SessionParametersAddInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH264SessionParametersCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH264PictureInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH264MvcEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH264DpbSlotInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH265PictureInfoFlags& value);
-std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH265PictureInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH265ReferenceInfoFlags& value);
-std::ostream&  operator<<      (std::ostream& s, const StdVideoDecodeH265ReferenceInfo& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH265ProfileEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH265CapabilitiesEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH265SessionParametersAddInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH265SessionParametersCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH265PictureInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkVideoDecodeH265DpbSlotInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImagePipeSurfaceCreateInfoFUCHSIA& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImportMemoryZirconHandleInfoFUCHSIA& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMemoryZirconHandlePropertiesFUCHSIA& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMemoryGetZirconHandleInfoFUCHSIA& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImportSemaphoreZirconHandleInfoFUCHSIA& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSemaphoreGetZirconHandleInfoFUCHSIA& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBufferCollectionCreateInfoFUCHSIA& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImportMemoryBufferCollectionFUCHSIA& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBufferCollectionImageCreateInfoFUCHSIA& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBufferCollectionConstraintsInfoFUCHSIA& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBufferConstraintsInfoFUCHSIA& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBufferCollectionBufferCreateInfoFUCHSIA& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSysmemColorSpaceFUCHSIA& value);
-std::ostream&  operator<<      (std::ostream& s, const VkBufferCollectionPropertiesFUCHSIA& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageFormatConstraintsInfoFUCHSIA& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImageConstraintsInfoFUCHSIA& value);
-std::ostream&  operator<<      (std::ostream& s, const VkStreamDescriptorSurfaceCreateInfoGGP& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPresentFrameTokenGGP& value);
-std::ostream&  operator<<      (std::ostream& s, const VkIOSSurfaceCreateInfoMVK& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMacOSSurfaceCreateInfoMVK& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMetalSurfaceCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExportMetalObjectCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExportMetalObjectsInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExportMetalDeviceInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExportMetalCommandQueueInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExportMetalBufferInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImportMetalBufferInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExportMetalTextureInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImportMetalTextureInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExportMetalIOSurfaceInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImportMetalIOSurfaceInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExportMetalSharedEventInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkImportMetalSharedEventInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkViSurfaceCreateInfoNN& value);
-std::ostream&  operator<<      (std::ostream& s, const VkWaylandSurfaceCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkWin32SurfaceCreateInfoKHR& 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 VkWin32KeyedMutexAcquireReleaseInfoKHR& 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 VkImportFenceWin32HandleInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkExportFenceWin32HandleInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkFenceGetWin32HandleInfoKHR& 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 VkSurfaceFullScreenExclusiveInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSurfaceCapabilitiesFullScreenExclusiveEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkSurfaceFullScreenExclusiveWin32InfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkXcbSurfaceCreateInfoKHR& value);
-std::ostream&  operator<<      (std::ostream& s, const VkXlibSurfaceCreateInfoKHR& value);
index 7874388..7f47f04 100644 (file)
@@ -3,51 +3,51 @@
  * This file was generated by /scripts/gen_framework.py
  */
 
-template<> const char* getTypeName<VkBuffer>                                                   (void) { return "VkBuffer";                                                     }
-template<> const char* getTypeName<VkImage>                                                    (void) { return "VkImage";                                                      }
 template<> const char* getTypeName<VkInstance>                                                 (void) { return "VkInstance";                                           }
 template<> const char* getTypeName<VkPhysicalDevice>                                   (void) { return "VkPhysicalDevice";                                     }
 template<> const char* getTypeName<VkDevice>                                                   (void) { return "VkDevice";                                                     }
 template<> const char* getTypeName<VkQueue>                                                    (void) { return "VkQueue";                                                      }
-template<> const char* getTypeName<VkSemaphore>                                                (void) { return "VkSemaphore";                                          }
 template<> const char* getTypeName<VkCommandBuffer>                                    (void) { return "VkCommandBuffer";                                      }
-template<> const char* getTypeName<VkFence>                                                    (void) { return "VkFence";                                                      }
 template<> const char* getTypeName<VkDeviceMemory>                                             (void) { return "VkDeviceMemory";                                       }
-template<> const char* getTypeName<VkEvent>                                                    (void) { return "VkEvent";                                                      }
-template<> const char* getTypeName<VkQueryPool>                                                (void) { return "VkQueryPool";                                          }
+template<> const char* getTypeName<VkCommandPool>                                              (void) { return "VkCommandPool";                                        }
+template<> const char* getTypeName<VkBuffer>                                                   (void) { return "VkBuffer";                                                     }
 template<> const char* getTypeName<VkBufferView>                                               (void) { return "VkBufferView";                                         }
+template<> const char* getTypeName<VkImage>                                                    (void) { return "VkImage";                                                      }
 template<> const char* getTypeName<VkImageView>                                                (void) { return "VkImageView";                                          }
 template<> const char* getTypeName<VkShaderModule>                                             (void) { return "VkShaderModule";                                       }
-template<> const char* getTypeName<VkPipelineCache>                                    (void) { return "VkPipelineCache";                                      }
-template<> const char* getTypeName<VkPipelineLayout>                                   (void) { return "VkPipelineLayout";                                     }
 template<> const char* getTypeName<VkPipeline>                                                 (void) { return "VkPipeline";                                           }
-template<> const char* getTypeName<VkRenderPass>                                               (void) { return "VkRenderPass";                                         }
-template<> const char* getTypeName<VkDescriptorSetLayout>                              (void) { return "VkDescriptorSetLayout";                        }
+template<> const char* getTypeName<VkPipelineLayout>                                   (void) { return "VkPipelineLayout";                                     }
 template<> const char* getTypeName<VkSampler>                                                  (void) { return "VkSampler";                                            }
 template<> const char* getTypeName<VkDescriptorSet>                                    (void) { return "VkDescriptorSet";                                      }
+template<> const char* getTypeName<VkDescriptorSetLayout>                              (void) { return "VkDescriptorSetLayout";                        }
 template<> const char* getTypeName<VkDescriptorPool>                                   (void) { return "VkDescriptorPool";                                     }
+template<> const char* getTypeName<VkFence>                                                    (void) { return "VkFence";                                                      }
+template<> const char* getTypeName<VkSemaphore>                                                (void) { return "VkSemaphore";                                          }
+template<> const char* getTypeName<VkEvent>                                                    (void) { return "VkEvent";                                                      }
+template<> const char* getTypeName<VkQueryPool>                                                (void) { return "VkQueryPool";                                          }
 template<> const char* getTypeName<VkFramebuffer>                                              (void) { return "VkFramebuffer";                                        }
-template<> const char* getTypeName<VkCommandPool>                                              (void) { return "VkCommandPool";                                        }
-template<> const char* getTypeName<VkSamplerYcbcrConversion>                   (void) { return "VkSamplerYcbcrConversion";                     }
+template<> const char* getTypeName<VkRenderPass>                                               (void) { return "VkRenderPass";                                         }
+template<> const char* getTypeName<VkPipelineCache>                                    (void) { return "VkPipelineCache";                                      }
+template<> const char* getTypeName<VkIndirectCommandsLayoutNV>                 (void) { return "VkIndirectCommandsLayoutNV";           }
 template<> const char* getTypeName<VkDescriptorUpdateTemplate>                 (void) { return "VkDescriptorUpdateTemplate";           }
+template<> const char* getTypeName<VkSamplerYcbcrConversion>                   (void) { return "VkSamplerYcbcrConversion";                     }
+template<> const char* getTypeName<VkValidationCacheEXT>                               (void) { return "VkValidationCacheEXT";                         }
+template<> const char* getTypeName<VkAccelerationStructureKHR>                 (void) { return "VkAccelerationStructureKHR";           }
+template<> const char* getTypeName<VkAccelerationStructureNV>                  (void) { return "VkAccelerationStructureNV";            }
+template<> const char* getTypeName<VkPerformanceConfigurationINTEL>    (void) { return "VkPerformanceConfigurationINTEL";      }
+template<> const char* getTypeName<VkBufferCollectionFUCHSIA>                  (void) { return "VkBufferCollectionFUCHSIA";            }
+template<> const char* getTypeName<VkDeferredOperationKHR>                             (void) { return "VkDeferredOperationKHR";                       }
 template<> const char* getTypeName<VkPrivateDataSlot>                                  (void) { return "VkPrivateDataSlot";                            }
-template<> const char* getTypeName<VkSurfaceKHR>                                               (void) { return "VkSurfaceKHR";                                         }
-template<> const char* getTypeName<VkSwapchainKHR>                                             (void) { return "VkSwapchainKHR";                                       }
+template<> const char* getTypeName<VkCuModuleNVX>                                              (void) { return "VkCuModuleNVX";                                        }
+template<> const char* getTypeName<VkCuFunctionNVX>                                    (void) { return "VkCuFunctionNVX";                                      }
 template<> const char* getTypeName<VkDisplayKHR>                                               (void) { return "VkDisplayKHR";                                         }
 template<> const char* getTypeName<VkDisplayModeKHR>                                   (void) { return "VkDisplayModeKHR";                                     }
-template<> const char* getTypeName<VkDeferredOperationKHR>                             (void) { return "VkDeferredOperationKHR";                       }
+template<> const char* getTypeName<VkSurfaceKHR>                                               (void) { return "VkSurfaceKHR";                                         }
+template<> const char* getTypeName<VkSwapchainKHR>                                             (void) { return "VkSwapchainKHR";                                       }
 template<> const char* getTypeName<VkDebugReportCallbackEXT>                   (void) { return "VkDebugReportCallbackEXT";                     }
-template<> const char* getTypeName<VkCuModuleNVX>                                              (void) { return "VkCuModuleNVX";                                        }
-template<> const char* getTypeName<VkCuFunctionNVX>                                    (void) { return "VkCuFunctionNVX";                                      }
 template<> const char* getTypeName<VkDebugUtilsMessengerEXT>                   (void) { return "VkDebugUtilsMessengerEXT";                     }
-template<> const char* getTypeName<VkValidationCacheEXT>                               (void) { return "VkValidationCacheEXT";                         }
-template<> const char* getTypeName<VkAccelerationStructureNV>                  (void) { return "VkAccelerationStructureNV";            }
-template<> const char* getTypeName<VkPerformanceConfigurationINTEL>    (void) { return "VkPerformanceConfigurationINTEL";      }
-template<> const char* getTypeName<VkIndirectCommandsLayoutNV>                 (void) { return "VkIndirectCommandsLayoutNV";           }
-template<> const char* getTypeName<VkAccelerationStructureKHR>                 (void) { return "VkAccelerationStructureKHR";           }
 template<> const char* getTypeName<VkVideoSessionKHR>                                  (void) { return "VkVideoSessionKHR";                            }
 template<> const char* getTypeName<VkVideoSessionParametersKHR>                (void) { return "VkVideoSessionParametersKHR";          }
-template<> const char* getTypeName<VkBufferCollectionFUCHSIA>                  (void) { return "VkBufferCollectionFUCHSIA";            }
 
 namespace pt
 {
@@ -74,6 +74,8 @@ std::ostream& operator<< (std::ostream& s, zx_handle_t                                        v) { return s << tcu:
 std::ostream& operator<< (std::ostream& s, GgpFrameToken                               v) { return s << tcu::toHex(v.internal); }
 std::ostream& operator<< (std::ostream& s, GgpStreamDescriptor                 v) { return s << tcu::toHex(v.internal); }
 std::ostream& operator<< (std::ostream& s, CAMetalLayer                                        v) { return s << tcu::toHex(v.internal); }
+std::ostream& operator<< (std::ostream& s, QNXScreenContextPtr                 v) { return s << tcu::toHex(v.internal); }
+std::ostream& operator<< (std::ostream& s, QNXScreenWindowPtr                  v) { return s << tcu::toHex(v.internal); }
 std::ostream& operator<< (std::ostream& s, MTLDevice_id                                        v) { return s << tcu::toHex(v.internal); }
 std::ostream& operator<< (std::ostream& s, MTLCommandQueue_id                  v) { return s << tcu::toHex(v.internal); }
 std::ostream& operator<< (std::ostream& s, MTLBuffer_id                                        v) { return s << tcu::toHex(v.internal); }
@@ -82,1244 +84,26 @@ std::ostream& operator<< (std::ostream& s, IOSurfaceRef                                   v) { return s << tcu
 std::ostream& operator<< (std::ostream& s, MTLSharedEvent_id                   v) { return s << tcu::toHex(v.internal); }
 }
 
-const char* getResultName (VkResult value)
+const char* getAttachmentLoadOpName (VkAttachmentLoadOp value)
 {
        switch (value)
        {
-               case VK_SUCCESS:                                                                                        return "VK_SUCCESS";
-               case VK_NOT_READY:                                                                                      return "VK_NOT_READY";
-               case VK_TIMEOUT:                                                                                        return "VK_TIMEOUT";
-               case VK_EVENT_SET:                                                                                      return "VK_EVENT_SET";
-               case VK_EVENT_RESET:                                                                            return "VK_EVENT_RESET";
-               case VK_INCOMPLETE:                                                                                     return "VK_INCOMPLETE";
-               case VK_ERROR_OUT_OF_HOST_MEMORY:                                                       return "VK_ERROR_OUT_OF_HOST_MEMORY";
-               case VK_ERROR_OUT_OF_DEVICE_MEMORY:                                                     return "VK_ERROR_OUT_OF_DEVICE_MEMORY";
-               case VK_ERROR_INITIALIZATION_FAILED:                                            return "VK_ERROR_INITIALIZATION_FAILED";
-               case VK_ERROR_DEVICE_LOST:                                                                      return "VK_ERROR_DEVICE_LOST";
-               case VK_ERROR_MEMORY_MAP_FAILED:                                                        return "VK_ERROR_MEMORY_MAP_FAILED";
-               case VK_ERROR_LAYER_NOT_PRESENT:                                                        return "VK_ERROR_LAYER_NOT_PRESENT";
-               case VK_ERROR_EXTENSION_NOT_PRESENT:                                            return "VK_ERROR_EXTENSION_NOT_PRESENT";
-               case VK_ERROR_FEATURE_NOT_PRESENT:                                                      return "VK_ERROR_FEATURE_NOT_PRESENT";
-               case VK_ERROR_INCOMPATIBLE_DRIVER:                                                      return "VK_ERROR_INCOMPATIBLE_DRIVER";
-               case VK_ERROR_TOO_MANY_OBJECTS:                                                         return "VK_ERROR_TOO_MANY_OBJECTS";
-               case VK_ERROR_FORMAT_NOT_SUPPORTED:                                                     return "VK_ERROR_FORMAT_NOT_SUPPORTED";
-               case VK_ERROR_FRAGMENTED_POOL:                                                          return "VK_ERROR_FRAGMENTED_POOL";
-               case VK_ERROR_UNKNOWN:                                                                          return "VK_ERROR_UNKNOWN";
-               case VK_ERROR_OUT_OF_POOL_MEMORY:                                                       return "VK_ERROR_OUT_OF_POOL_MEMORY";
-               case VK_ERROR_INVALID_EXTERNAL_HANDLE:                                          return "VK_ERROR_INVALID_EXTERNAL_HANDLE";
-               case VK_ERROR_FRAGMENTATION:                                                            return "VK_ERROR_FRAGMENTATION";
-               case VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS:                           return "VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS";
-               case VK_PIPELINE_COMPILE_REQUIRED:                                                      return "VK_PIPELINE_COMPILE_REQUIRED";
-               case VK_ERROR_SURFACE_LOST_KHR:                                                         return "VK_ERROR_SURFACE_LOST_KHR";
-               case VK_ERROR_NATIVE_WINDOW_IN_USE_KHR:                                         return "VK_ERROR_NATIVE_WINDOW_IN_USE_KHR";
-               case VK_SUBOPTIMAL_KHR:                                                                         return "VK_SUBOPTIMAL_KHR";
-               case VK_ERROR_OUT_OF_DATE_KHR:                                                          return "VK_ERROR_OUT_OF_DATE_KHR";
-               case VK_ERROR_INCOMPATIBLE_DISPLAY_KHR:                                         return "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR";
-               case VK_ERROR_VALIDATION_FAILED_EXT:                                            return "VK_ERROR_VALIDATION_FAILED_EXT";
-               case VK_ERROR_INVALID_SHADER_NV:                                                        return "VK_ERROR_INVALID_SHADER_NV";
-               case VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR:                            return "VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR";
-               case VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR:           return "VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR";
-               case VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR:        return "VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR";
-               case VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR:           return "VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR";
-               case VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR:            return "VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR";
-               case VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR:                      return "VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR";
-               case VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT:     return "VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT";
-               case VK_ERROR_NOT_PERMITTED_KHR:                                                        return "VK_ERROR_NOT_PERMITTED_KHR";
-               case VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT:                      return "VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT";
-               case VK_THREAD_IDLE_KHR:                                                                        return "VK_THREAD_IDLE_KHR";
-               case VK_THREAD_DONE_KHR:                                                                        return "VK_THREAD_DONE_KHR";
-               case VK_OPERATION_DEFERRED_KHR:                                                         return "VK_OPERATION_DEFERRED_KHR";
-               case VK_OPERATION_NOT_DEFERRED_KHR:                                                     return "VK_OPERATION_NOT_DEFERRED_KHR";
-               case VK_ERROR_COMPRESSION_EXHAUSTED_EXT:                                        return "VK_ERROR_COMPRESSION_EXHAUSTED_EXT";
-               case VK_RESULT_MAX_ENUM:                                                                        return "VK_RESULT_MAX_ENUM";
-               default:                                                                                                        return DE_NULL;
+               case VK_ATTACHMENT_LOAD_OP_LOAD:                return "VK_ATTACHMENT_LOAD_OP_LOAD";
+               case VK_ATTACHMENT_LOAD_OP_CLEAR:               return "VK_ATTACHMENT_LOAD_OP_CLEAR";
+               case VK_ATTACHMENT_LOAD_OP_DONT_CARE:   return "VK_ATTACHMENT_LOAD_OP_DONT_CARE";
+               case VK_ATTACHMENT_LOAD_OP_NONE_EXT:    return "VK_ATTACHMENT_LOAD_OP_NONE_EXT";
+               default:                                                                return DE_NULL;
        }
 }
 
-const char* getStructureTypeName (VkStructureType value)
+const char* getAttachmentStoreOpName (VkAttachmentStoreOp 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_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES";
-               case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO:                                                                                         return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO";
-               case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO:                                                                                          return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:                                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES";
-               case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:                                                                           return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS";
-               case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:                                                                          return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO";
-               case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:                                                                                      return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO";
-               case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:                                                                     return "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO";
-               case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:                                                          return "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO";
-               case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:                                                                                        return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO";
-               case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO:                                                                           return "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO";
-               case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:                                                            return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO";
-               case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:                                                                     return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES:                                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES";
-               case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:                                                                         return "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2:                                                                       return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2";
-               case VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2:                                                                        return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2";
-               case VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2:                                                         return "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2";
-               case VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2:                                                                                           return "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2";
-               case VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2:                                                                      return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:                                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2:                                                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2";
-               case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2:                                                                                                     return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2";
-               case VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2:                                                                                       return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2";
-               case VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2:                                                                                       return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2";
-               case VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2:                                                                        return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES";
-               case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:                                         return "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:                           return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:                                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES";
-               case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:                                                                                           return "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES";
-               case VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2:                                                                                                     return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2";
-               case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO:                                                            return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:                                                                           return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO";
-               case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:                                                                            return "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO";
-               case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:                                                            return "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES";
-               case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES";
-               case VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO:                                                          return "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO";
-               case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:                                                                        return "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO:                                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO";
-               case VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES:                                                                                      return "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:                                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES";
-               case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:                                                                      return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:                                                                                     return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO";
-               case VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES:                                                                                       return "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES";
-               case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:                                                                                        return "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO";
-               case VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES:                                                                           return "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES";
-               case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT:                                                                           return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES";
-               case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:                                                                           return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2:                                                                                        return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2";
-               case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2:                                                                                          return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2";
-               case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2:                                                                                           return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2";
-               case VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2:                                                                                            return "VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2";
-               case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2:                                                                                       return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2";
-               case VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO:                                                                                                      return "VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO";
-               case VK_STRUCTURE_TYPE_SUBPASS_END_INFO:                                                                                                        return "VK_STRUCTURE_TYPE_SUBPASS_END_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:                                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES";
-               case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:                                         return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES";
-               case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:                          return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO";
-               case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:                         return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES";
-               case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:                                                       return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES";
-               case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:                                                                         return "VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES";
-               case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:                                                                      return "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES";
-               case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:                                                                     return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO:                                                                       return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO";
-               case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:                                                                       return "VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES";
-               case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:                                                                     return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT";
-               case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:                                                           return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES";
-               case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:                                                                                      return "VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:                                                                          return "VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO";
-               case VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO:                                                                                                     return "VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO";
-               case VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO:                                                                                           return "VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES";
-               case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO:                                                                                      return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO";
-               case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:                                                       return "VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:                                                     return "VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO";
-               case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO:                                                       return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES";
-               case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO:                                                          return "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES:                                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES";
-               case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO:                                                                         return "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO:                                                                           return "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES";
-               case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2:                                                                                                        return "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2";
-               case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2:                                                                                         return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2";
-               case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2:                                                                                          return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2";
-               case VK_STRUCTURE_TYPE_DEPENDENCY_INFO:                                                                                                         return "VK_STRUCTURE_TYPE_DEPENDENCY_INFO";
-               case VK_STRUCTURE_TYPE_SUBMIT_INFO_2:                                                                                                           return "VK_STRUCTURE_TYPE_SUBMIT_INFO_2";
-               case VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO:                                                                                           return "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO";
-               case VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO:                                                                                      return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES";
-               case VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2:                                                                                                      return "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2";
-               case VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2:                                                                                                       return "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2";
-               case VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2:                                                                                     return "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2";
-               case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2:                                                                                     return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2";
-               case VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2:                                                                                                       return "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2";
-               case VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2:                                                                                            return "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2";
-               case VK_STRUCTURE_TYPE_BUFFER_COPY_2:                                                                                                           return "VK_STRUCTURE_TYPE_BUFFER_COPY_2";
-               case VK_STRUCTURE_TYPE_IMAGE_COPY_2:                                                                                                            return "VK_STRUCTURE_TYPE_IMAGE_COPY_2";
-               case VK_STRUCTURE_TYPE_IMAGE_BLIT_2:                                                                                                            return "VK_STRUCTURE_TYPE_IMAGE_BLIT_2";
-               case VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2:                                                                                                     return "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2";
-               case VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2:                                                                                                         return "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES";
-               case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO:                        return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES";
-               case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK:                                                       return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK";
-               case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO:                                        return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES";
-               case VK_STRUCTURE_TYPE_RENDERING_INFO:                                                                                                          return "VK_STRUCTURE_TYPE_RENDERING_INFO";
-               case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO:                                                                                       return "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO";
-               case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO:                                                                          return "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES";
-               case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO:                                                       return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES";
-               case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3:                                                                                                     return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:                                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES:                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES";
-               case VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS:                                                                       return "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS";
-               case VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS:                                                                        return "VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS";
-               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_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_ACQUIRE_NEXT_IMAGE_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_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_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_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_VIDEO_PROFILE_KHR:                                                                                                       return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR";
-               case VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR:                                                                                          return "VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR";
-               case VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR:                                                                                      return "VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR";
-               case VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR:                                                                         return "VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR";
-               case VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR:                                                                                           return "VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR";
-               case VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR";
-               case VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR:                                                                                       return "VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR";
-               case VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR";
-               case VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR:                                                                                        return "VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR";
-               case VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR";
-               case VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR:                                                                                                      return "VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR";
-               case VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR:                                                                                     return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR";
-               case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR:                                       return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR";
-               case VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR:                                                                                           return "VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR";
-               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_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT";
-               case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:                                     return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX:                                                                                       return "VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX";
-               case VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX:                                                                                     return "VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX";
-               case VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX:                                                                                                      return "VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX";
-               case VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX:                                                                                      return "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX";
-               case VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX:                                                                       return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT:                                                                        return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT:                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT:                                                         return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT:                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_EXT:                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_EXT:                                                        return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT:                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT:                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT:                                                         return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT:                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT:                                                                                       return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT";
-               case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:                                                        return "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD";
-               case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:                                     return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
-               case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT";
-               case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:                                                                        return "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD";
-               case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:                                                          return "VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX";
-               case VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP:                                                       return "VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV";
-               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_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_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:                                                                         return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT";
-               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_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_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:                       return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT";
-               case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:                                                                                                     return "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR";
-               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_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_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT";
-               case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:                       return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:                         return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_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_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_PERFORMANCE_QUERY_FEATURES_KHR:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR";
-               case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:                                                                       return "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR";
-               case VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR";
-               case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR:                                                                                         return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR";
-               case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR:                                                                     return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_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_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_DEBUG_UTILS_OBJECT_NAME_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT";
-               case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT:                                                                         return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT";
-               case VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT:                                                                                           return "VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT";
-               case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT:                                                         return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT";
-               case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:                                                           return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:                                                           return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID";
-               case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID:                                                      return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID";
-               case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:                                       return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_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_EXTERNAL_FORMAT_ANDROID:                                                                                         return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID";
-               case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID:                                     return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID";
-               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_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_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:                                         return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR";
-               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR";
-               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR";
-               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR:                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR";
-               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR:                                      return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR";
-               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR:                                      return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR";
-               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR:                                                                     return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR";
-               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR:                                                         return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR";
-               case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR:                                                            return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR";
-               case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR";
-               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR:                                                     return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR";
-               case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR:                                                            return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:                                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR";
-               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_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV";
-               case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:                                                         return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT";
-               case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:                                          return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT:                                                        return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT";
-               case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:                                                       return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT";
-               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_PORTABILITY_SUBSET_FEATURES_KHR:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR";
-               case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV:                       return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV";
-               case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV:                      return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV";
-               case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV:                                                                     return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV";
-               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV:                                                           return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV";
-               case VK_STRUCTURE_TYPE_GEOMETRY_NV:                                                                                                                     return "VK_STRUCTURE_TYPE_GEOMETRY_NV";
-               case VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV:                                                                                           return "VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV";
-               case VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV:                                                                                                        return "VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV";
-               case VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV:                                                      return "VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV";
-               case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:                                          return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV";
-               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV:                                      return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV";
-               case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV:                                                         return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV";
-               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV:                                                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV";
-               case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:                      return "VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT";
-               case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:                                     return "VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT";
-               case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT";
-               case VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR";
-               case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:                                                       return "VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD";
-               case VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD";
-               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT";
-               case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR:                                            return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR";
-               case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR:                                                     return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR";
-               case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:                                            return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT";
-               case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT:                                     return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:                                                                                         return "VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV";
-               case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:                        return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV";
-               case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV:                                                                                                      return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV";
-               case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:                                                           return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL";
-               case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:                                          return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL";
-               case VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL:                                                           return "VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL";
-               case VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL:                                                                           return "VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL";
-               case VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL:                                                            return "VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL";
-               case VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL:                                                                         return "VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL";
-               case VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL:                                            return "VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT";
-               case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:                                                     return "VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD";
-               case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:                                            return "VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD";
-               case VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA";
-               case VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT";
-               case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT:                                        return "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:                                                       return "VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
-               case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:                            return "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:                                                                       return "VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:                                                                      return "VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:                                                           return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:                                                                                         return "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV";
-               case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV:                                                                        return "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV";
-               case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:                                        return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV";
-               case VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV:                                                        return "VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:           return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT";
-               case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:                                                          return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:                                          return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT";
-               case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:                                            return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT";
-               case VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR";
-               case VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR:                                                                                                       return "VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR:                                                                      return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR";
-               case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR:                                                                            return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR:                                                                       return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR";
-               case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR:                                         return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV";
-               case VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV:                                                            return "VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV";
-               case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:                                          return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV";
-               case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV:                                                                       return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV";
-               case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV:                                                         return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV";
-               case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV:                                                                                      return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV";
-               case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV:                                          return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV";
-               case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:                                     return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:                      return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM";
-               case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:                                                           return "VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:                                                     return "VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT:                                                          return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT";
-               case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:                                                     return "VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR:                                                                        return "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:                                                                                                          return "VK_STRUCTURE_TYPE_PRESENT_ID_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR:                                                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR";
-               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV";
-               case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:                                                        return "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV";
-               case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT";
-               case VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT:                                                                            return "VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT:                                                                            return "VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT";
-               case VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT:                                                                            return "VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT";
-               case VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT";
-               case VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT";
-               case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:                                                         return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV";
-               case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV:                                                                                            return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT";
-               case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT:                                                       return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD:       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR:                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR:       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV";
-               case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV:                        return "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV";
-               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:                        return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV";
-               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:                                                           return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT";
-               case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:                                                                        return "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT:                                                                           return "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT";
-               case VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT:                                                                                        return "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT";
-               case VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT:                                                                                         return "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT";
-               case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT:                                                                        return "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM:      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE";
-               case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE:                                                       return "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT:                                                          return "VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT";
-               case VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT:                                                        return "VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:                                                        return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA";
-               case VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA:                                                         return "VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA";
-               case VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
-               case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA:                                                     return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA";
-               case VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA:                                                        return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
-               case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA";
-               case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:                                                         return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA";
-               case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:                                                     return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA";
-               case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA:                                                            return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA";
-               case VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA:                                                                         return "VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA";
-               case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:                                            return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA";
-               case VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA:                                                                          return "VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA";
-               case VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA";
-               case VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA:                                                                                      return "VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA";
-               case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA:                                                      return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA";
-               case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:                                                     return "VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI";
-               case VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV:                                                                       return "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV";
-               case VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT:                                                                      return "VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT:      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT:                                                           return "VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT";
-               case VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT:                                          return "VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX:                                                                          return "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:                          return "VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE:                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE";
-               case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE:                                                          return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE";
-               case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE:                                           return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM:                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM";
-               case VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM:                                       return "VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT:        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM";
-               case VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM:                                                       return "VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT:                                                                        return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT";
-               case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT:                                           return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT:                                            return "VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT";
-               case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT:                         return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT";
-               case VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT:                                                                            return "VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM";
-               case VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM:                                                                                            return "VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM";
-               case VK_STRUCTURE_TYPE_MAX_ENUM:                                                                                                                        return "VK_STRUCTURE_TYPE_MAX_ENUM";
-               default:                                                                                                                                                                        return DE_NULL;
-       }
-}
-
-const char* getPipelineCacheHeaderVersionName (VkPipelineCacheHeaderVersion value)
-{
-       switch (value)
-       {
-               case VK_PIPELINE_CACHE_HEADER_VERSION_ONE:              return "VK_PIPELINE_CACHE_HEADER_VERSION_ONE";
-               case VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM: return "VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM";
-               default:                                                                                return DE_NULL;
-       }
-}
-
-const char* getImageLayoutName (VkImageLayout value)
-{
-       switch (value)
-       {
-               case VK_IMAGE_LAYOUT_UNDEFINED:                                                                         return "VK_IMAGE_LAYOUT_UNDEFINED";
-               case VK_IMAGE_LAYOUT_GENERAL:                                                                           return "VK_IMAGE_LAYOUT_GENERAL";
-               case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:                                          return "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL";
-               case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:                          return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL";
-               case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL:                           return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL";
-               case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:                                          return "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL";
-               case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:                                                      return "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL";
-               case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:                                                      return "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL";
-               case VK_IMAGE_LAYOUT_PREINITIALIZED:                                                            return "VK_IMAGE_LAYOUT_PREINITIALIZED";
-               case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL:        return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL";
-               case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL:        return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL";
-               case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL:                                          return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL";
-               case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL:                                           return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL";
-               case VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL:                                        return "VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL";
-               case VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL:                                         return "VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL";
-               case VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL:                                                         return "VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL";
-               case VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL:                                                        return "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL";
-               case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR:                                                           return "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR";
-               case VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR";
-               case VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR";
-               case VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR";
-               case VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR:                                                        return "VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR";
-               case VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT:                          return "VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT";
-               case VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR:      return "VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR";
-               case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR";
-               case VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR";
-               case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR";
-               case VK_IMAGE_LAYOUT_MAX_ENUM:                                                                          return "VK_IMAGE_LAYOUT_MAX_ENUM";
-               default:                                                                                                                        return DE_NULL;
-       }
-}
-
-const char* getObjectTypeName (VkObjectType value)
-{
-       switch (value)
-       {
-               case VK_OBJECT_TYPE_UNKNOWN:                                                    return "VK_OBJECT_TYPE_UNKNOWN";
-               case VK_OBJECT_TYPE_INSTANCE:                                                   return "VK_OBJECT_TYPE_INSTANCE";
-               case VK_OBJECT_TYPE_PHYSICAL_DEVICE:                                    return "VK_OBJECT_TYPE_PHYSICAL_DEVICE";
-               case VK_OBJECT_TYPE_DEVICE:                                                             return "VK_OBJECT_TYPE_DEVICE";
-               case VK_OBJECT_TYPE_QUEUE:                                                              return "VK_OBJECT_TYPE_QUEUE";
-               case VK_OBJECT_TYPE_SEMAPHORE:                                                  return "VK_OBJECT_TYPE_SEMAPHORE";
-               case VK_OBJECT_TYPE_COMMAND_BUFFER:                                             return "VK_OBJECT_TYPE_COMMAND_BUFFER";
-               case VK_OBJECT_TYPE_FENCE:                                                              return "VK_OBJECT_TYPE_FENCE";
-               case VK_OBJECT_TYPE_DEVICE_MEMORY:                                              return "VK_OBJECT_TYPE_DEVICE_MEMORY";
-               case VK_OBJECT_TYPE_BUFFER:                                                             return "VK_OBJECT_TYPE_BUFFER";
-               case VK_OBJECT_TYPE_IMAGE:                                                              return "VK_OBJECT_TYPE_IMAGE";
-               case VK_OBJECT_TYPE_EVENT:                                                              return "VK_OBJECT_TYPE_EVENT";
-               case VK_OBJECT_TYPE_QUERY_POOL:                                                 return "VK_OBJECT_TYPE_QUERY_POOL";
-               case VK_OBJECT_TYPE_BUFFER_VIEW:                                                return "VK_OBJECT_TYPE_BUFFER_VIEW";
-               case VK_OBJECT_TYPE_IMAGE_VIEW:                                                 return "VK_OBJECT_TYPE_IMAGE_VIEW";
-               case VK_OBJECT_TYPE_SHADER_MODULE:                                              return "VK_OBJECT_TYPE_SHADER_MODULE";
-               case VK_OBJECT_TYPE_PIPELINE_CACHE:                                             return "VK_OBJECT_TYPE_PIPELINE_CACHE";
-               case VK_OBJECT_TYPE_PIPELINE_LAYOUT:                                    return "VK_OBJECT_TYPE_PIPELINE_LAYOUT";
-               case VK_OBJECT_TYPE_RENDER_PASS:                                                return "VK_OBJECT_TYPE_RENDER_PASS";
-               case VK_OBJECT_TYPE_PIPELINE:                                                   return "VK_OBJECT_TYPE_PIPELINE";
-               case VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT:                              return "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT";
-               case VK_OBJECT_TYPE_SAMPLER:                                                    return "VK_OBJECT_TYPE_SAMPLER";
-               case VK_OBJECT_TYPE_DESCRIPTOR_POOL:                                    return "VK_OBJECT_TYPE_DESCRIPTOR_POOL";
-               case VK_OBJECT_TYPE_DESCRIPTOR_SET:                                             return "VK_OBJECT_TYPE_DESCRIPTOR_SET";
-               case VK_OBJECT_TYPE_FRAMEBUFFER:                                                return "VK_OBJECT_TYPE_FRAMEBUFFER";
-               case VK_OBJECT_TYPE_COMMAND_POOL:                                               return "VK_OBJECT_TYPE_COMMAND_POOL";
-               case VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION:                   return "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION";
-               case VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE:                 return "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE";
-               case VK_OBJECT_TYPE_PRIVATE_DATA_SLOT:                                  return "VK_OBJECT_TYPE_PRIVATE_DATA_SLOT";
-               case VK_OBJECT_TYPE_SURFACE_KHR:                                                return "VK_OBJECT_TYPE_SURFACE_KHR";
-               case VK_OBJECT_TYPE_SWAPCHAIN_KHR:                                              return "VK_OBJECT_TYPE_SWAPCHAIN_KHR";
-               case VK_OBJECT_TYPE_DISPLAY_KHR:                                                return "VK_OBJECT_TYPE_DISPLAY_KHR";
-               case VK_OBJECT_TYPE_DISPLAY_MODE_KHR:                                   return "VK_OBJECT_TYPE_DISPLAY_MODE_KHR";
-               case VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT:                  return "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT";
-               case VK_OBJECT_TYPE_VIDEO_SESSION_KHR:                                  return "VK_OBJECT_TYPE_VIDEO_SESSION_KHR";
-               case VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR:               return "VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR";
-               case VK_OBJECT_TYPE_CU_MODULE_NVX:                                              return "VK_OBJECT_TYPE_CU_MODULE_NVX";
-               case VK_OBJECT_TYPE_CU_FUNCTION_NVX:                                    return "VK_OBJECT_TYPE_CU_FUNCTION_NVX";
-               case VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT:                  return "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT";
-               case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR:                 return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR";
-               case VK_OBJECT_TYPE_VALIDATION_CACHE_EXT:                               return "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT";
-               case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV:                  return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV";
-               case VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL:    return "VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL";
-               case VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR:                             return "VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR";
-               case VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV:                return "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV";
-               case VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA:                  return "VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA";
-               case VK_OBJECT_TYPE_MAX_ENUM:                                                   return "VK_OBJECT_TYPE_MAX_ENUM";
-               default:                                                                                                return DE_NULL;
-       }
-}
-
-const char* getVendorIdName (VkVendorId value)
-{
-       switch (value)
-       {
-               case VK_VENDOR_ID_VIV:          return "VK_VENDOR_ID_VIV";
-               case VK_VENDOR_ID_VSI:          return "VK_VENDOR_ID_VSI";
-               case VK_VENDOR_ID_KAZAN:        return "VK_VENDOR_ID_KAZAN";
-               case VK_VENDOR_ID_CODEPLAY:     return "VK_VENDOR_ID_CODEPLAY";
-               case VK_VENDOR_ID_MESA:         return "VK_VENDOR_ID_MESA";
-               case VK_VENDOR_ID_POCL:         return "VK_VENDOR_ID_POCL";
-               case VK_VENDOR_ID_MAX_ENUM:     return "VK_VENDOR_ID_MAX_ENUM";
-               default:                                        return DE_NULL;
-       }
-}
-
-const char* getSystemAllocationScopeName (VkSystemAllocationScope value)
-{
-       switch (value)
-       {
-               case VK_SYSTEM_ALLOCATION_SCOPE_COMMAND:        return "VK_SYSTEM_ALLOCATION_SCOPE_COMMAND";
-               case VK_SYSTEM_ALLOCATION_SCOPE_OBJECT:         return "VK_SYSTEM_ALLOCATION_SCOPE_OBJECT";
-               case VK_SYSTEM_ALLOCATION_SCOPE_CACHE:          return "VK_SYSTEM_ALLOCATION_SCOPE_CACHE";
-               case VK_SYSTEM_ALLOCATION_SCOPE_DEVICE:         return "VK_SYSTEM_ALLOCATION_SCOPE_DEVICE";
-               case VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE:       return "VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE";
-               case VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM:       return "VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM";
-               default:                                                                        return DE_NULL;
-       }
-}
-
-const char* getInternalAllocationTypeName (VkInternalAllocationType value)
-{
-       switch (value)
-       {
-               case VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE:    return "VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE";
-               case VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM:              return "VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM";
-               default:                                                                                return DE_NULL;
-       }
-}
-
-const char* getFormatName (VkFormat value)
-{
-       switch (value)
-       {
-               case VK_FORMAT_UNDEFINED:                                                                       return "VK_FORMAT_UNDEFINED";
-               case VK_FORMAT_R4G4_UNORM_PACK8:                                                        return "VK_FORMAT_R4G4_UNORM_PACK8";
-               case VK_FORMAT_R4G4B4A4_UNORM_PACK16:                                           return "VK_FORMAT_R4G4B4A4_UNORM_PACK16";
-               case VK_FORMAT_B4G4R4A4_UNORM_PACK16:                                           return "VK_FORMAT_B4G4R4A4_UNORM_PACK16";
-               case VK_FORMAT_R5G6B5_UNORM_PACK16:                                                     return "VK_FORMAT_R5G6B5_UNORM_PACK16";
-               case VK_FORMAT_B5G6R5_UNORM_PACK16:                                                     return "VK_FORMAT_B5G6R5_UNORM_PACK16";
-               case VK_FORMAT_R5G5B5A1_UNORM_PACK16:                                           return "VK_FORMAT_R5G5B5A1_UNORM_PACK16";
-               case VK_FORMAT_B5G5R5A1_UNORM_PACK16:                                           return "VK_FORMAT_B5G5R5A1_UNORM_PACK16";
-               case VK_FORMAT_A1R5G5B5_UNORM_PACK16:                                           return "VK_FORMAT_A1R5G5B5_UNORM_PACK16";
-               case VK_FORMAT_R8_UNORM:                                                                        return "VK_FORMAT_R8_UNORM";
-               case VK_FORMAT_R8_SNORM:                                                                        return "VK_FORMAT_R8_SNORM";
-               case VK_FORMAT_R8_USCALED:                                                                      return "VK_FORMAT_R8_USCALED";
-               case VK_FORMAT_R8_SSCALED:                                                                      return "VK_FORMAT_R8_SSCALED";
-               case VK_FORMAT_R8_UINT:                                                                         return "VK_FORMAT_R8_UINT";
-               case VK_FORMAT_R8_SINT:                                                                         return "VK_FORMAT_R8_SINT";
-               case VK_FORMAT_R8_SRGB:                                                                         return "VK_FORMAT_R8_SRGB";
-               case VK_FORMAT_R8G8_UNORM:                                                                      return "VK_FORMAT_R8G8_UNORM";
-               case VK_FORMAT_R8G8_SNORM:                                                                      return "VK_FORMAT_R8G8_SNORM";
-               case VK_FORMAT_R8G8_USCALED:                                                            return "VK_FORMAT_R8G8_USCALED";
-               case VK_FORMAT_R8G8_SSCALED:                                                            return "VK_FORMAT_R8G8_SSCALED";
-               case VK_FORMAT_R8G8_UINT:                                                                       return "VK_FORMAT_R8G8_UINT";
-               case VK_FORMAT_R8G8_SINT:                                                                       return "VK_FORMAT_R8G8_SINT";
-               case VK_FORMAT_R8G8_SRGB:                                                                       return "VK_FORMAT_R8G8_SRGB";
-               case VK_FORMAT_R8G8B8_UNORM:                                                            return "VK_FORMAT_R8G8B8_UNORM";
-               case VK_FORMAT_R8G8B8_SNORM:                                                            return "VK_FORMAT_R8G8B8_SNORM";
-               case VK_FORMAT_R8G8B8_USCALED:                                                          return "VK_FORMAT_R8G8B8_USCALED";
-               case VK_FORMAT_R8G8B8_SSCALED:                                                          return "VK_FORMAT_R8G8B8_SSCALED";
-               case VK_FORMAT_R8G8B8_UINT:                                                                     return "VK_FORMAT_R8G8B8_UINT";
-               case VK_FORMAT_R8G8B8_SINT:                                                                     return "VK_FORMAT_R8G8B8_SINT";
-               case VK_FORMAT_R8G8B8_SRGB:                                                                     return "VK_FORMAT_R8G8B8_SRGB";
-               case VK_FORMAT_B8G8R8_UNORM:                                                            return "VK_FORMAT_B8G8R8_UNORM";
-               case VK_FORMAT_B8G8R8_SNORM:                                                            return "VK_FORMAT_B8G8R8_SNORM";
-               case VK_FORMAT_B8G8R8_USCALED:                                                          return "VK_FORMAT_B8G8R8_USCALED";
-               case VK_FORMAT_B8G8R8_SSCALED:                                                          return "VK_FORMAT_B8G8R8_SSCALED";
-               case VK_FORMAT_B8G8R8_UINT:                                                                     return "VK_FORMAT_B8G8R8_UINT";
-               case VK_FORMAT_B8G8R8_SINT:                                                                     return "VK_FORMAT_B8G8R8_SINT";
-               case VK_FORMAT_B8G8R8_SRGB:                                                                     return "VK_FORMAT_B8G8R8_SRGB";
-               case VK_FORMAT_R8G8B8A8_UNORM:                                                          return "VK_FORMAT_R8G8B8A8_UNORM";
-               case VK_FORMAT_R8G8B8A8_SNORM:                                                          return "VK_FORMAT_R8G8B8A8_SNORM";
-               case VK_FORMAT_R8G8B8A8_USCALED:                                                        return "VK_FORMAT_R8G8B8A8_USCALED";
-               case VK_FORMAT_R8G8B8A8_SSCALED:                                                        return "VK_FORMAT_R8G8B8A8_SSCALED";
-               case VK_FORMAT_R8G8B8A8_UINT:                                                           return "VK_FORMAT_R8G8B8A8_UINT";
-               case VK_FORMAT_R8G8B8A8_SINT:                                                           return "VK_FORMAT_R8G8B8A8_SINT";
-               case VK_FORMAT_R8G8B8A8_SRGB:                                                           return "VK_FORMAT_R8G8B8A8_SRGB";
-               case VK_FORMAT_B8G8R8A8_UNORM:                                                          return "VK_FORMAT_B8G8R8A8_UNORM";
-               case VK_FORMAT_B8G8R8A8_SNORM:                                                          return "VK_FORMAT_B8G8R8A8_SNORM";
-               case VK_FORMAT_B8G8R8A8_USCALED:                                                        return "VK_FORMAT_B8G8R8A8_USCALED";
-               case VK_FORMAT_B8G8R8A8_SSCALED:                                                        return "VK_FORMAT_B8G8R8A8_SSCALED";
-               case VK_FORMAT_B8G8R8A8_UINT:                                                           return "VK_FORMAT_B8G8R8A8_UINT";
-               case VK_FORMAT_B8G8R8A8_SINT:                                                           return "VK_FORMAT_B8G8R8A8_SINT";
-               case VK_FORMAT_B8G8R8A8_SRGB:                                                           return "VK_FORMAT_B8G8R8A8_SRGB";
-               case VK_FORMAT_A8B8G8R8_UNORM_PACK32:                                           return "VK_FORMAT_A8B8G8R8_UNORM_PACK32";
-               case VK_FORMAT_A8B8G8R8_SNORM_PACK32:                                           return "VK_FORMAT_A8B8G8R8_SNORM_PACK32";
-               case VK_FORMAT_A8B8G8R8_USCALED_PACK32:                                         return "VK_FORMAT_A8B8G8R8_USCALED_PACK32";
-               case VK_FORMAT_A8B8G8R8_SSCALED_PACK32:                                         return "VK_FORMAT_A8B8G8R8_SSCALED_PACK32";
-               case VK_FORMAT_A8B8G8R8_UINT_PACK32:                                            return "VK_FORMAT_A8B8G8R8_UINT_PACK32";
-               case VK_FORMAT_A8B8G8R8_SINT_PACK32:                                            return "VK_FORMAT_A8B8G8R8_SINT_PACK32";
-               case VK_FORMAT_A8B8G8R8_SRGB_PACK32:                                            return "VK_FORMAT_A8B8G8R8_SRGB_PACK32";
-               case VK_FORMAT_A2R10G10B10_UNORM_PACK32:                                        return "VK_FORMAT_A2R10G10B10_UNORM_PACK32";
-               case VK_FORMAT_A2R10G10B10_SNORM_PACK32:                                        return "VK_FORMAT_A2R10G10B10_SNORM_PACK32";
-               case VK_FORMAT_A2R10G10B10_USCALED_PACK32:                                      return "VK_FORMAT_A2R10G10B10_USCALED_PACK32";
-               case VK_FORMAT_A2R10G10B10_SSCALED_PACK32:                                      return "VK_FORMAT_A2R10G10B10_SSCALED_PACK32";
-               case VK_FORMAT_A2R10G10B10_UINT_PACK32:                                         return "VK_FORMAT_A2R10G10B10_UINT_PACK32";
-               case VK_FORMAT_A2R10G10B10_SINT_PACK32:                                         return "VK_FORMAT_A2R10G10B10_SINT_PACK32";
-               case VK_FORMAT_A2B10G10R10_UNORM_PACK32:                                        return "VK_FORMAT_A2B10G10R10_UNORM_PACK32";
-               case VK_FORMAT_A2B10G10R10_SNORM_PACK32:                                        return "VK_FORMAT_A2B10G10R10_SNORM_PACK32";
-               case VK_FORMAT_A2B10G10R10_USCALED_PACK32:                                      return "VK_FORMAT_A2B10G10R10_USCALED_PACK32";
-               case VK_FORMAT_A2B10G10R10_SSCALED_PACK32:                                      return "VK_FORMAT_A2B10G10R10_SSCALED_PACK32";
-               case VK_FORMAT_A2B10G10R10_UINT_PACK32:                                         return "VK_FORMAT_A2B10G10R10_UINT_PACK32";
-               case VK_FORMAT_A2B10G10R10_SINT_PACK32:                                         return "VK_FORMAT_A2B10G10R10_SINT_PACK32";
-               case VK_FORMAT_R16_UNORM:                                                                       return "VK_FORMAT_R16_UNORM";
-               case VK_FORMAT_R16_SNORM:                                                                       return "VK_FORMAT_R16_SNORM";
-               case VK_FORMAT_R16_USCALED:                                                                     return "VK_FORMAT_R16_USCALED";
-               case VK_FORMAT_R16_SSCALED:                                                                     return "VK_FORMAT_R16_SSCALED";
-               case VK_FORMAT_R16_UINT:                                                                        return "VK_FORMAT_R16_UINT";
-               case VK_FORMAT_R16_SINT:                                                                        return "VK_FORMAT_R16_SINT";
-               case VK_FORMAT_R16_SFLOAT:                                                                      return "VK_FORMAT_R16_SFLOAT";
-               case VK_FORMAT_R16G16_UNORM:                                                            return "VK_FORMAT_R16G16_UNORM";
-               case VK_FORMAT_R16G16_SNORM:                                                            return "VK_FORMAT_R16G16_SNORM";
-               case VK_FORMAT_R16G16_USCALED:                                                          return "VK_FORMAT_R16G16_USCALED";
-               case VK_FORMAT_R16G16_SSCALED:                                                          return "VK_FORMAT_R16G16_SSCALED";
-               case VK_FORMAT_R16G16_UINT:                                                                     return "VK_FORMAT_R16G16_UINT";
-               case VK_FORMAT_R16G16_SINT:                                                                     return "VK_FORMAT_R16G16_SINT";
-               case VK_FORMAT_R16G16_SFLOAT:                                                           return "VK_FORMAT_R16G16_SFLOAT";
-               case VK_FORMAT_R16G16B16_UNORM:                                                         return "VK_FORMAT_R16G16B16_UNORM";
-               case VK_FORMAT_R16G16B16_SNORM:                                                         return "VK_FORMAT_R16G16B16_SNORM";
-               case VK_FORMAT_R16G16B16_USCALED:                                                       return "VK_FORMAT_R16G16B16_USCALED";
-               case VK_FORMAT_R16G16B16_SSCALED:                                                       return "VK_FORMAT_R16G16B16_SSCALED";
-               case VK_FORMAT_R16G16B16_UINT:                                                          return "VK_FORMAT_R16G16B16_UINT";
-               case VK_FORMAT_R16G16B16_SINT:                                                          return "VK_FORMAT_R16G16B16_SINT";
-               case VK_FORMAT_R16G16B16_SFLOAT:                                                        return "VK_FORMAT_R16G16B16_SFLOAT";
-               case VK_FORMAT_R16G16B16A16_UNORM:                                                      return "VK_FORMAT_R16G16B16A16_UNORM";
-               case VK_FORMAT_R16G16B16A16_SNORM:                                                      return "VK_FORMAT_R16G16B16A16_SNORM";
-               case VK_FORMAT_R16G16B16A16_USCALED:                                            return "VK_FORMAT_R16G16B16A16_USCALED";
-               case VK_FORMAT_R16G16B16A16_SSCALED:                                            return "VK_FORMAT_R16G16B16A16_SSCALED";
-               case VK_FORMAT_R16G16B16A16_UINT:                                                       return "VK_FORMAT_R16G16B16A16_UINT";
-               case VK_FORMAT_R16G16B16A16_SINT:                                                       return "VK_FORMAT_R16G16B16A16_SINT";
-               case VK_FORMAT_R16G16B16A16_SFLOAT:                                                     return "VK_FORMAT_R16G16B16A16_SFLOAT";
-               case VK_FORMAT_R32_UINT:                                                                        return "VK_FORMAT_R32_UINT";
-               case VK_FORMAT_R32_SINT:                                                                        return "VK_FORMAT_R32_SINT";
-               case VK_FORMAT_R32_SFLOAT:                                                                      return "VK_FORMAT_R32_SFLOAT";
-               case VK_FORMAT_R32G32_UINT:                                                                     return "VK_FORMAT_R32G32_UINT";
-               case VK_FORMAT_R32G32_SINT:                                                                     return "VK_FORMAT_R32G32_SINT";
-               case VK_FORMAT_R32G32_SFLOAT:                                                           return "VK_FORMAT_R32G32_SFLOAT";
-               case VK_FORMAT_R32G32B32_UINT:                                                          return "VK_FORMAT_R32G32B32_UINT";
-               case VK_FORMAT_R32G32B32_SINT:                                                          return "VK_FORMAT_R32G32B32_SINT";
-               case VK_FORMAT_R32G32B32_SFLOAT:                                                        return "VK_FORMAT_R32G32B32_SFLOAT";
-               case VK_FORMAT_R32G32B32A32_UINT:                                                       return "VK_FORMAT_R32G32B32A32_UINT";
-               case VK_FORMAT_R32G32B32A32_SINT:                                                       return "VK_FORMAT_R32G32B32A32_SINT";
-               case VK_FORMAT_R32G32B32A32_SFLOAT:                                                     return "VK_FORMAT_R32G32B32A32_SFLOAT";
-               case VK_FORMAT_R64_UINT:                                                                        return "VK_FORMAT_R64_UINT";
-               case VK_FORMAT_R64_SINT:                                                                        return "VK_FORMAT_R64_SINT";
-               case VK_FORMAT_R64_SFLOAT:                                                                      return "VK_FORMAT_R64_SFLOAT";
-               case VK_FORMAT_R64G64_UINT:                                                                     return "VK_FORMAT_R64G64_UINT";
-               case VK_FORMAT_R64G64_SINT:                                                                     return "VK_FORMAT_R64G64_SINT";
-               case VK_FORMAT_R64G64_SFLOAT:                                                           return "VK_FORMAT_R64G64_SFLOAT";
-               case VK_FORMAT_R64G64B64_UINT:                                                          return "VK_FORMAT_R64G64B64_UINT";
-               case VK_FORMAT_R64G64B64_SINT:                                                          return "VK_FORMAT_R64G64B64_SINT";
-               case VK_FORMAT_R64G64B64_SFLOAT:                                                        return "VK_FORMAT_R64G64B64_SFLOAT";
-               case VK_FORMAT_R64G64B64A64_UINT:                                                       return "VK_FORMAT_R64G64B64A64_UINT";
-               case VK_FORMAT_R64G64B64A64_SINT:                                                       return "VK_FORMAT_R64G64B64A64_SINT";
-               case VK_FORMAT_R64G64B64A64_SFLOAT:                                                     return "VK_FORMAT_R64G64B64A64_SFLOAT";
-               case VK_FORMAT_B10G11R11_UFLOAT_PACK32:                                         return "VK_FORMAT_B10G11R11_UFLOAT_PACK32";
-               case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:                                          return "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32";
-               case VK_FORMAT_D16_UNORM:                                                                       return "VK_FORMAT_D16_UNORM";
-               case VK_FORMAT_X8_D24_UNORM_PACK32:                                                     return "VK_FORMAT_X8_D24_UNORM_PACK32";
-               case VK_FORMAT_D32_SFLOAT:                                                                      return "VK_FORMAT_D32_SFLOAT";
-               case VK_FORMAT_S8_UINT:                                                                         return "VK_FORMAT_S8_UINT";
-               case VK_FORMAT_D16_UNORM_S8_UINT:                                                       return "VK_FORMAT_D16_UNORM_S8_UINT";
-               case VK_FORMAT_D24_UNORM_S8_UINT:                                                       return "VK_FORMAT_D24_UNORM_S8_UINT";
-               case VK_FORMAT_D32_SFLOAT_S8_UINT:                                                      return "VK_FORMAT_D32_SFLOAT_S8_UINT";
-               case VK_FORMAT_BC1_RGB_UNORM_BLOCK:                                                     return "VK_FORMAT_BC1_RGB_UNORM_BLOCK";
-               case VK_FORMAT_BC1_RGB_SRGB_BLOCK:                                                      return "VK_FORMAT_BC1_RGB_SRGB_BLOCK";
-               case VK_FORMAT_BC1_RGBA_UNORM_BLOCK:                                            return "VK_FORMAT_BC1_RGBA_UNORM_BLOCK";
-               case VK_FORMAT_BC1_RGBA_SRGB_BLOCK:                                                     return "VK_FORMAT_BC1_RGBA_SRGB_BLOCK";
-               case VK_FORMAT_BC2_UNORM_BLOCK:                                                         return "VK_FORMAT_BC2_UNORM_BLOCK";
-               case VK_FORMAT_BC2_SRGB_BLOCK:                                                          return "VK_FORMAT_BC2_SRGB_BLOCK";
-               case VK_FORMAT_BC3_UNORM_BLOCK:                                                         return "VK_FORMAT_BC3_UNORM_BLOCK";
-               case VK_FORMAT_BC3_SRGB_BLOCK:                                                          return "VK_FORMAT_BC3_SRGB_BLOCK";
-               case VK_FORMAT_BC4_UNORM_BLOCK:                                                         return "VK_FORMAT_BC4_UNORM_BLOCK";
-               case VK_FORMAT_BC4_SNORM_BLOCK:                                                         return "VK_FORMAT_BC4_SNORM_BLOCK";
-               case VK_FORMAT_BC5_UNORM_BLOCK:                                                         return "VK_FORMAT_BC5_UNORM_BLOCK";
-               case VK_FORMAT_BC5_SNORM_BLOCK:                                                         return "VK_FORMAT_BC5_SNORM_BLOCK";
-               case VK_FORMAT_BC6H_UFLOAT_BLOCK:                                                       return "VK_FORMAT_BC6H_UFLOAT_BLOCK";
-               case VK_FORMAT_BC6H_SFLOAT_BLOCK:                                                       return "VK_FORMAT_BC6H_SFLOAT_BLOCK";
-               case VK_FORMAT_BC7_UNORM_BLOCK:                                                         return "VK_FORMAT_BC7_UNORM_BLOCK";
-               case VK_FORMAT_BC7_SRGB_BLOCK:                                                          return "VK_FORMAT_BC7_SRGB_BLOCK";
-               case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:                                         return "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK";
-               case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:                                          return "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK";
-               case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:                                       return "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK";
-               case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:                                        return "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK";
-               case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:                                       return "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK";
-               case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:                                        return "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK";
-               case VK_FORMAT_EAC_R11_UNORM_BLOCK:                                                     return "VK_FORMAT_EAC_R11_UNORM_BLOCK";
-               case VK_FORMAT_EAC_R11_SNORM_BLOCK:                                                     return "VK_FORMAT_EAC_R11_SNORM_BLOCK";
-               case VK_FORMAT_EAC_R11G11_UNORM_BLOCK:                                          return "VK_FORMAT_EAC_R11G11_UNORM_BLOCK";
-               case VK_FORMAT_EAC_R11G11_SNORM_BLOCK:                                          return "VK_FORMAT_EAC_R11G11_SNORM_BLOCK";
-               case VK_FORMAT_ASTC_4x4_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_4x4_UNORM_BLOCK";
-               case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_4x4_SRGB_BLOCK";
-               case VK_FORMAT_ASTC_5x4_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_5x4_UNORM_BLOCK";
-               case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_5x4_SRGB_BLOCK";
-               case VK_FORMAT_ASTC_5x5_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_5x5_UNORM_BLOCK";
-               case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_5x5_SRGB_BLOCK";
-               case VK_FORMAT_ASTC_6x5_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_6x5_UNORM_BLOCK";
-               case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_6x5_SRGB_BLOCK";
-               case VK_FORMAT_ASTC_6x6_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_6x6_UNORM_BLOCK";
-               case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_6x6_SRGB_BLOCK";
-               case VK_FORMAT_ASTC_8x5_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_8x5_UNORM_BLOCK";
-               case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_8x5_SRGB_BLOCK";
-               case VK_FORMAT_ASTC_8x6_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_8x6_UNORM_BLOCK";
-               case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_8x6_SRGB_BLOCK";
-               case VK_FORMAT_ASTC_8x8_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_8x8_UNORM_BLOCK";
-               case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_8x8_SRGB_BLOCK";
-               case VK_FORMAT_ASTC_10x5_UNORM_BLOCK:                                           return "VK_FORMAT_ASTC_10x5_UNORM_BLOCK";
-               case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:                                            return "VK_FORMAT_ASTC_10x5_SRGB_BLOCK";
-               case VK_FORMAT_ASTC_10x6_UNORM_BLOCK:                                           return "VK_FORMAT_ASTC_10x6_UNORM_BLOCK";
-               case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:                                            return "VK_FORMAT_ASTC_10x6_SRGB_BLOCK";
-               case VK_FORMAT_ASTC_10x8_UNORM_BLOCK:                                           return "VK_FORMAT_ASTC_10x8_UNORM_BLOCK";
-               case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:                                            return "VK_FORMAT_ASTC_10x8_SRGB_BLOCK";
-               case VK_FORMAT_ASTC_10x10_UNORM_BLOCK:                                          return "VK_FORMAT_ASTC_10x10_UNORM_BLOCK";
-               case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:                                           return "VK_FORMAT_ASTC_10x10_SRGB_BLOCK";
-               case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:                                          return "VK_FORMAT_ASTC_12x10_UNORM_BLOCK";
-               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_G8B8G8R8_422_UNORM:                                                      return "VK_FORMAT_G8B8G8R8_422_UNORM";
-               case VK_FORMAT_B8G8R8G8_422_UNORM:                                                      return "VK_FORMAT_B8G8R8G8_422_UNORM";
-               case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:                                       return "VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM";
-               case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:                                        return "VK_FORMAT_G8_B8R8_2PLANE_420_UNORM";
-               case VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:                                       return "VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM";
-               case VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:                                        return "VK_FORMAT_G8_B8R8_2PLANE_422_UNORM";
-               case VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:                                       return "VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM";
-               case VK_FORMAT_R10X6_UNORM_PACK16:                                                      return "VK_FORMAT_R10X6_UNORM_PACK16";
-               case VK_FORMAT_R10X6G10X6_UNORM_2PACK16:                                        return "VK_FORMAT_R10X6G10X6_UNORM_2PACK16";
-               case VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:                      return "VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16";
-               case VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:          return "VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16";
-               case VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:          return "VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16";
-               case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:      return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16";
-               case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:       return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16";
-               case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:      return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16";
-               case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:       return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16";
-               case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:      return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16";
-               case VK_FORMAT_R12X4_UNORM_PACK16:                                                      return "VK_FORMAT_R12X4_UNORM_PACK16";
-               case VK_FORMAT_R12X4G12X4_UNORM_2PACK16:                                        return "VK_FORMAT_R12X4G12X4_UNORM_2PACK16";
-               case VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:                      return "VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16";
-               case VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:          return "VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16";
-               case VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:          return "VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16";
-               case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:      return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16";
-               case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:       return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16";
-               case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:      return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16";
-               case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:       return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16";
-               case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:      return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16";
-               case VK_FORMAT_G16B16G16R16_422_UNORM:                                          return "VK_FORMAT_G16B16G16R16_422_UNORM";
-               case VK_FORMAT_B16G16R16G16_422_UNORM:                                          return "VK_FORMAT_B16G16R16G16_422_UNORM";
-               case VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:                            return "VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM";
-               case VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:                                     return "VK_FORMAT_G16_B16R16_2PLANE_420_UNORM";
-               case VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:                            return "VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM";
-               case VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:                                     return "VK_FORMAT_G16_B16R16_2PLANE_422_UNORM";
-               case VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:                            return "VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM";
-               case VK_FORMAT_G8_B8R8_2PLANE_444_UNORM:                                        return "VK_FORMAT_G8_B8R8_2PLANE_444_UNORM";
-               case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16:       return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16";
-               case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16:       return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16";
-               case VK_FORMAT_G16_B16R16_2PLANE_444_UNORM:                                     return "VK_FORMAT_G16_B16R16_2PLANE_444_UNORM";
-               case VK_FORMAT_A4R4G4B4_UNORM_PACK16:                                           return "VK_FORMAT_A4R4G4B4_UNORM_PACK16";
-               case VK_FORMAT_A4B4G4R4_UNORM_PACK16:                                           return "VK_FORMAT_A4B4G4R4_UNORM_PACK16";
-               case VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK";
-               case VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK";
-               case VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK";
-               case VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK";
-               case VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK";
-               case VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK";
-               case VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK";
-               case VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK";
-               case VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK:                                          return "VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK";
-               case VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK:                                          return "VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK";
-               case VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK:                                          return "VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK";
-               case VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK:                                         return "VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK";
-               case VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK:                                         return "VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK";
-               case VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK:                                         return "VK_FORMAT_ASTC_12x12_SFLOAT_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_MAX_ENUM:                                                                        return "VK_FORMAT_MAX_ENUM";
-               default:                                                                                                        return DE_NULL;
-       }
-}
-
-const char* getImageTilingName (VkImageTiling value)
-{
-       switch (value)
-       {
-               case VK_IMAGE_TILING_OPTIMAL:                                   return "VK_IMAGE_TILING_OPTIMAL";
-               case VK_IMAGE_TILING_LINEAR:                                    return "VK_IMAGE_TILING_LINEAR";
-               case VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT:   return "VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT";
-               case VK_IMAGE_TILING_MAX_ENUM:                                  return "VK_IMAGE_TILING_MAX_ENUM";
-               default:                                                                                return DE_NULL;
-       }
-}
-
-const char* getImageTypeName (VkImageType value)
-{
-       switch (value)
-       {
-               case VK_IMAGE_TYPE_1D:                  return "VK_IMAGE_TYPE_1D";
-               case VK_IMAGE_TYPE_2D:                  return "VK_IMAGE_TYPE_2D";
-               case VK_IMAGE_TYPE_3D:                  return "VK_IMAGE_TYPE_3D";
-               case VK_IMAGE_TYPE_MAX_ENUM:    return "VK_IMAGE_TYPE_MAX_ENUM";
-               default:                                                return DE_NULL;
-       }
-}
-
-const char* getPhysicalDeviceTypeName (VkPhysicalDeviceType value)
-{
-       switch (value)
-       {
-               case VK_PHYSICAL_DEVICE_TYPE_OTHER:                             return "VK_PHYSICAL_DEVICE_TYPE_OTHER";
-               case VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU:    return "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU";
-               case VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU:              return "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU";
-               case VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU:               return "VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU";
-               case VK_PHYSICAL_DEVICE_TYPE_CPU:                               return "VK_PHYSICAL_DEVICE_TYPE_CPU";
-               case VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM:                  return "VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM";
-               default:                                                                                return DE_NULL;
-       }
-}
-
-const char* getQueryTypeName (VkQueryType value)
-{
-       switch (value)
-       {
-               case VK_QUERY_TYPE_OCCLUSION:                                                                                                           return "VK_QUERY_TYPE_OCCLUSION";
-               case VK_QUERY_TYPE_PIPELINE_STATISTICS:                                                                                         return "VK_QUERY_TYPE_PIPELINE_STATISTICS";
-               case VK_QUERY_TYPE_TIMESTAMP:                                                                                                           return "VK_QUERY_TYPE_TIMESTAMP";
-               case VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR:                                                                                      return "VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR";
-               case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT:                                                                       return "VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT";
-               case VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR:                                                                                       return "VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR";
-               case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR:                                           return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR";
-               case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR:                                       return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR";
-               case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV:                                            return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV";
-               case VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL:                                                                                     return "VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL";
-               case VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR:                                                     return "VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR";
-               case VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT:                                                                            return "VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT";
-               case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR:      return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR";
-               case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR:                                                                     return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR";
-               case VK_QUERY_TYPE_MAX_ENUM:                                                                                                            return "VK_QUERY_TYPE_MAX_ENUM";
-               default:                                                                                                                                                        return DE_NULL;
-       }
-}
-
-const char* getSharingModeName (VkSharingMode value)
-{
-       switch (value)
-       {
-               case VK_SHARING_MODE_EXCLUSIVE:         return "VK_SHARING_MODE_EXCLUSIVE";
-               case VK_SHARING_MODE_CONCURRENT:        return "VK_SHARING_MODE_CONCURRENT";
-               case VK_SHARING_MODE_MAX_ENUM:          return "VK_SHARING_MODE_MAX_ENUM";
-               default:                                                        return DE_NULL;
-       }
-}
-
-const char* getComponentSwizzleName (VkComponentSwizzle value)
-{
-       switch (value)
-       {
-               case VK_COMPONENT_SWIZZLE_IDENTITY:     return "VK_COMPONENT_SWIZZLE_IDENTITY";
-               case VK_COMPONENT_SWIZZLE_ZERO:         return "VK_COMPONENT_SWIZZLE_ZERO";
-               case VK_COMPONENT_SWIZZLE_ONE:          return "VK_COMPONENT_SWIZZLE_ONE";
-               case VK_COMPONENT_SWIZZLE_R:            return "VK_COMPONENT_SWIZZLE_R";
-               case VK_COMPONENT_SWIZZLE_G:            return "VK_COMPONENT_SWIZZLE_G";
-               case VK_COMPONENT_SWIZZLE_B:            return "VK_COMPONENT_SWIZZLE_B";
-               case VK_COMPONENT_SWIZZLE_A:            return "VK_COMPONENT_SWIZZLE_A";
-               case VK_COMPONENT_SWIZZLE_MAX_ENUM:     return "VK_COMPONENT_SWIZZLE_MAX_ENUM";
-               default:                                                        return DE_NULL;
-       }
-}
-
-const char* getImageViewTypeName (VkImageViewType value)
-{
-       switch (value)
-       {
-               case VK_IMAGE_VIEW_TYPE_1D:                     return "VK_IMAGE_VIEW_TYPE_1D";
-               case VK_IMAGE_VIEW_TYPE_2D:                     return "VK_IMAGE_VIEW_TYPE_2D";
-               case VK_IMAGE_VIEW_TYPE_3D:                     return "VK_IMAGE_VIEW_TYPE_3D";
-               case VK_IMAGE_VIEW_TYPE_CUBE:           return "VK_IMAGE_VIEW_TYPE_CUBE";
-               case VK_IMAGE_VIEW_TYPE_1D_ARRAY:       return "VK_IMAGE_VIEW_TYPE_1D_ARRAY";
-               case VK_IMAGE_VIEW_TYPE_2D_ARRAY:       return "VK_IMAGE_VIEW_TYPE_2D_ARRAY";
-               case VK_IMAGE_VIEW_TYPE_CUBE_ARRAY:     return "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY";
-               case VK_IMAGE_VIEW_TYPE_MAX_ENUM:       return "VK_IMAGE_VIEW_TYPE_MAX_ENUM";
-               default:                                                        return DE_NULL;
+               case VK_ATTACHMENT_STORE_OP_STORE:              return "VK_ATTACHMENT_STORE_OP_STORE";
+               case VK_ATTACHMENT_STORE_OP_DONT_CARE:  return "VK_ATTACHMENT_STORE_OP_DONT_CARE";
+               case VK_ATTACHMENT_STORE_OP_NONE:               return "VK_ATTACHMENT_STORE_OP_NONE";
+               default:                                                                return DE_NULL;
        }
 }
 
@@ -1346,7 +130,6 @@ const char* getBlendFactorName (VkBlendFactor value)
                case VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR:              return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR";
                case VK_BLEND_FACTOR_SRC1_ALPHA:                                return "VK_BLEND_FACTOR_SRC1_ALPHA";
                case VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA:              return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA";
-               case VK_BLEND_FACTOR_MAX_ENUM:                                  return "VK_BLEND_FACTOR_MAX_ENUM";
                default:                                                                                return DE_NULL;
        }
 }
@@ -1406,11 +189,231 @@ const char* getBlendOpName (VkBlendOp value)
                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";
-               case VK_BLEND_OP_MAX_ENUM:                                      return "VK_BLEND_OP_MAX_ENUM";
                default:                                                                        return DE_NULL;
        }
 }
 
+const char* getBorderColorName (VkBorderColor value)
+{
+       switch (value)
+       {
+               case VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK:   return "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK";
+               case VK_BORDER_COLOR_INT_TRANSPARENT_BLACK:             return "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK";
+               case VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK:                return "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK";
+               case VK_BORDER_COLOR_INT_OPAQUE_BLACK:                  return "VK_BORDER_COLOR_INT_OPAQUE_BLACK";
+               case VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE:                return "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE";
+               case VK_BORDER_COLOR_INT_OPAQUE_WHITE:                  return "VK_BORDER_COLOR_INT_OPAQUE_WHITE";
+               case VK_BORDER_COLOR_FLOAT_CUSTOM_EXT:                  return "VK_BORDER_COLOR_FLOAT_CUSTOM_EXT";
+               case VK_BORDER_COLOR_INT_CUSTOM_EXT:                    return "VK_BORDER_COLOR_INT_CUSTOM_EXT";
+               default:                                                                                return DE_NULL;
+       }
+}
+
+tcu::Format::Bitfield<32> getFramebufferCreateFlagsStr (VkFramebufferCreateFlags value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,       "VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getRenderPassCreateFlagsStr (VkRenderPassCreateFlags value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM,  "VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getSamplerCreateFlagsStr (VkSamplerCreateFlags value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,                                                      "VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT"),
+               tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT,        "VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT"),
+               tcu::Format::BitDesc(VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT,                           "VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT"),
+               tcu::Format::BitDesc(VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM,                                       "VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+const char* getPipelineCacheHeaderVersionName (VkPipelineCacheHeaderVersion value)
+{
+       switch (value)
+       {
+               case VK_PIPELINE_CACHE_HEADER_VERSION_ONE:      return "VK_PIPELINE_CACHE_HEADER_VERSION_ONE";
+               default:                                                                        return DE_NULL;
+       }
+}
+
+tcu::Format::Bitfield<32> getPipelineCacheCreateFlagsStr (VkPipelineCacheCreateFlags value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,      "VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getPipelineShaderStageCreateFlagsStr (VkPipelineShaderStageCreateFlags value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,   "VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,                "VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getDescriptorSetLayoutCreateFlagsStr (VkDescriptorSetLayoutCreateFlags value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,           "VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR"),
+               tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,        "VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT"),
+               tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE,          "VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getInstanceCreateFlagsStr (VkInstanceCreateFlags value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR,  "VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getDeviceQueueCreateFlagsStr (VkDeviceQueueCreateFlags value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT,      "VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getBufferCreateFlagsStr (VkBufferCreateFlags value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_BINDING_BIT,                                       "VK_BUFFER_CREATE_SPARSE_BINDING_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,                                     "VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,                                       "VK_BUFFER_CREATE_SPARSE_ALIASED_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_CREATE_PROTECTED_BIT,                                            "VK_BUFFER_CREATE_PROTECTED_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,        "VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getBufferUsageFlagsStr (VkBufferUsageFlags value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,                                                                          "VK_BUFFER_USAGE_TRANSFER_SRC_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_DST_BIT,                                                                          "VK_BUFFER_USAGE_TRANSFER_DST_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,                                                          "VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,                                                          "VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,                                                                        "VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,                                                                        "VK_BUFFER_USAGE_STORAGE_BUFFER_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_INDEX_BUFFER_BIT,                                                                          "VK_BUFFER_USAGE_INDEX_BUFFER_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,                                                                         "VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,                                                                       "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,                                                     "VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,                                                      "VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,                                         "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,                         "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,                                                         "VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR,      "VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR"),
+               tcu::Format::BitDesc(VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,                            "VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getColorComponentFlagsStr (VkColorComponentFlags value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_COLOR_COMPONENT_R_BIT,  "VK_COLOR_COMPONENT_R_BIT"),
+               tcu::Format::BitDesc(VK_COLOR_COMPONENT_G_BIT,  "VK_COLOR_COMPONENT_G_BIT"),
+               tcu::Format::BitDesc(VK_COLOR_COMPONENT_B_BIT,  "VK_COLOR_COMPONENT_B_BIT"),
+               tcu::Format::BitDesc(VK_COLOR_COMPONENT_A_BIT,  "VK_COLOR_COMPONENT_A_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+const char* getComponentSwizzleName (VkComponentSwizzle value)
+{
+       switch (value)
+       {
+               case VK_COMPONENT_SWIZZLE_IDENTITY:     return "VK_COMPONENT_SWIZZLE_IDENTITY";
+               case VK_COMPONENT_SWIZZLE_ZERO:         return "VK_COMPONENT_SWIZZLE_ZERO";
+               case VK_COMPONENT_SWIZZLE_ONE:          return "VK_COMPONENT_SWIZZLE_ONE";
+               case VK_COMPONENT_SWIZZLE_R:            return "VK_COMPONENT_SWIZZLE_R";
+               case VK_COMPONENT_SWIZZLE_G:            return "VK_COMPONENT_SWIZZLE_G";
+               case VK_COMPONENT_SWIZZLE_B:            return "VK_COMPONENT_SWIZZLE_B";
+               case VK_COMPONENT_SWIZZLE_A:            return "VK_COMPONENT_SWIZZLE_A";
+               default:                                                        return DE_NULL;
+       }
+}
+
+tcu::Format::Bitfield<32> getCommandPoolCreateFlagsStr (VkCommandPoolCreateFlags value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,                              "VK_COMMAND_POOL_CREATE_TRANSIENT_BIT"),
+               tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,   "VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT"),
+               tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_PROTECTED_BIT,                              "VK_COMMAND_POOL_CREATE_PROTECTED_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getCommandPoolResetFlagsStr (VkCommandPoolResetFlags value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT,       "VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getCommandBufferResetFlagsStr (VkCommandBufferResetFlags value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT,     "VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+const char* getCommandBufferLevelName (VkCommandBufferLevel value)
+{
+       switch (value)
+       {
+               case VK_COMMAND_BUFFER_LEVEL_PRIMARY:   return "VK_COMMAND_BUFFER_LEVEL_PRIMARY";
+               case VK_COMMAND_BUFFER_LEVEL_SECONDARY: return "VK_COMMAND_BUFFER_LEVEL_SECONDARY";
+               default:                                                                return DE_NULL;
+       }
+}
+
+tcu::Format::Bitfield<32> getCommandBufferUsageFlagsStr (VkCommandBufferUsageFlags value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,               "VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT"),
+               tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,  "VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT"),
+               tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT,              "VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
 const char* getCompareOpName (VkCompareOp value)
 {
        switch (value)
@@ -1423,11 +426,47 @@ const char* getCompareOpName (VkCompareOp value)
                case VK_COMPARE_OP_NOT_EQUAL:                   return "VK_COMPARE_OP_NOT_EQUAL";
                case VK_COMPARE_OP_GREATER_OR_EQUAL:    return "VK_COMPARE_OP_GREATER_OR_EQUAL";
                case VK_COMPARE_OP_ALWAYS:                              return "VK_COMPARE_OP_ALWAYS";
-               case VK_COMPARE_OP_MAX_ENUM:                    return "VK_COMPARE_OP_MAX_ENUM";
                default:                                                                return DE_NULL;
        }
 }
 
+tcu::Format::Bitfield<32> getCullModeFlagsStr (VkCullModeFlags value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_CULL_MODE_NONE,                         "VK_CULL_MODE_NONE"),
+               tcu::Format::BitDesc(VK_CULL_MODE_FRONT_BIT,            "VK_CULL_MODE_FRONT_BIT"),
+               tcu::Format::BitDesc(VK_CULL_MODE_BACK_BIT,                     "VK_CULL_MODE_BACK_BIT"),
+               tcu::Format::BitDesc(VK_CULL_MODE_FRONT_AND_BACK,       "VK_CULL_MODE_FRONT_AND_BACK"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+const char* getDescriptorTypeName (VkDescriptorType value)
+{
+       switch (value)
+       {
+               case VK_DESCRIPTOR_TYPE_SAMPLER:                                        return "VK_DESCRIPTOR_TYPE_SAMPLER";
+               case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:         return "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER";
+               case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:                          return "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE";
+               case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:                          return "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE";
+               case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER:           return "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER";
+               case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER:           return "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER";
+               case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER:                         return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER";
+               case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER:                         return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER";
+               case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:         return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC";
+               case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:         return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC";
+               case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:                       return "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT";
+               case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK:           return "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK";
+               case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR:     return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR";
+               case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV:      return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV";
+               case VK_DESCRIPTOR_TYPE_MUTABLE_VALVE:                          return "VK_DESCRIPTOR_TYPE_MUTABLE_VALVE";
+               case VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM:       return "VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM";
+               case VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM:         return "VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM";
+               default:                                                                                        return DE_NULL;
+       }
+}
+
 const char* getDynamicStateName (VkDynamicState value)
 {
        switch (value)
@@ -1441,6 +480,14 @@ const char* getDynamicStateName (VkDynamicState value)
                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";
+               case VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV:         return "VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV";
+               case VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV:          return "VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV";
+               case VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV:                                     return "VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV";
+               case VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR:                        return "VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR";
+               case VK_DYNAMIC_STATE_LINE_STIPPLE_EXT:                                         return "VK_DYNAMIC_STATE_LINE_STIPPLE_EXT";
                case VK_DYNAMIC_STATE_CULL_MODE:                                                        return "VK_DYNAMIC_STATE_CULL_MODE";
                case VK_DYNAMIC_STATE_FRONT_FACE:                                                       return "VK_DYNAMIC_STATE_FRONT_FACE";
                case VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY:                                       return "VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY";
@@ -1453,250 +500,505 @@ const char* getDynamicStateName (VkDynamicState value)
                case VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE:                         return "VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE";
                case VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE:                                      return "VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE";
                case VK_DYNAMIC_STATE_STENCIL_OP:                                                       return "VK_DYNAMIC_STATE_STENCIL_OP";
-               case VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE:                        return "VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE";
-               case VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE:                                        return "VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE";
-               case VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE:                         return "VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE";
-               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";
                case VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR:      return "VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR";
-               case VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV:         return "VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV";
-               case VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV:          return "VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV";
-               case VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV:                                     return "VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV";
-               case VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR:                        return "VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR";
-               case VK_DYNAMIC_STATE_LINE_STIPPLE_EXT:                                         return "VK_DYNAMIC_STATE_LINE_STIPPLE_EXT";
                case VK_DYNAMIC_STATE_VERTEX_INPUT_EXT:                                         return "VK_DYNAMIC_STATE_VERTEX_INPUT_EXT";
                case VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT:                         return "VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT";
+               case VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE:                        return "VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE";
+               case VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE:                                        return "VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE";
                case VK_DYNAMIC_STATE_LOGIC_OP_EXT:                                                     return "VK_DYNAMIC_STATE_LOGIC_OP_EXT";
+               case VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE:                         return "VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE";
                case VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT:                           return "VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT";
-               case VK_DYNAMIC_STATE_MAX_ENUM:                                                         return "VK_DYNAMIC_STATE_MAX_ENUM";
                default:                                                                                                        return DE_NULL;
        }
 }
 
-const char* getFrontFaceName (VkFrontFace value)
+tcu::Format::Bitfield<32> getFenceCreateFlagsStr (VkFenceCreateFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_FRONT_FACE_COUNTER_CLOCKWISE:   return "VK_FRONT_FACE_COUNTER_CLOCKWISE";
-               case VK_FRONT_FACE_CLOCKWISE:                   return "VK_FRONT_FACE_CLOCKWISE";
-               case VK_FRONT_FACE_MAX_ENUM:                    return "VK_FRONT_FACE_MAX_ENUM";
-               default:                                                                return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_FENCE_CREATE_SIGNALED_BIT,      "VK_FENCE_CREATE_SIGNALED_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getVertexInputRateName (VkVertexInputRate value)
+const char* getPolygonModeName (VkPolygonMode value)
 {
        switch (value)
        {
-               case VK_VERTEX_INPUT_RATE_VERTEX:       return "VK_VERTEX_INPUT_RATE_VERTEX";
-               case VK_VERTEX_INPUT_RATE_INSTANCE:     return "VK_VERTEX_INPUT_RATE_INSTANCE";
-               case VK_VERTEX_INPUT_RATE_MAX_ENUM:     return "VK_VERTEX_INPUT_RATE_MAX_ENUM";
-               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;
        }
 }
 
-const char* getPrimitiveTopologyName (VkPrimitiveTopology value)
+const char* getFormatName (VkFormat value)
 {
        switch (value)
        {
-               case VK_PRIMITIVE_TOPOLOGY_POINT_LIST:                                          return "VK_PRIMITIVE_TOPOLOGY_POINT_LIST";
-               case VK_PRIMITIVE_TOPOLOGY_LINE_LIST:                                           return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST";
-               case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP:                                          return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP";
-               case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST:                                       return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST";
-               case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP:                                      return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP";
-               case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:                                        return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN";
-               case VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY:            return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY";
-               case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY:           return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY";
-               case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY:        return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY";
-               case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY:       return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY";
-               case VK_PRIMITIVE_TOPOLOGY_PATCH_LIST:                                          return "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST";
-               case VK_PRIMITIVE_TOPOLOGY_MAX_ENUM:                                            return "VK_PRIMITIVE_TOPOLOGY_MAX_ENUM";
+               case VK_FORMAT_UNDEFINED:                                                                       return "VK_FORMAT_UNDEFINED";
+               case VK_FORMAT_R4G4_UNORM_PACK8:                                                        return "VK_FORMAT_R4G4_UNORM_PACK8";
+               case VK_FORMAT_R4G4B4A4_UNORM_PACK16:                                           return "VK_FORMAT_R4G4B4A4_UNORM_PACK16";
+               case VK_FORMAT_B4G4R4A4_UNORM_PACK16:                                           return "VK_FORMAT_B4G4R4A4_UNORM_PACK16";
+               case VK_FORMAT_R5G6B5_UNORM_PACK16:                                                     return "VK_FORMAT_R5G6B5_UNORM_PACK16";
+               case VK_FORMAT_B5G6R5_UNORM_PACK16:                                                     return "VK_FORMAT_B5G6R5_UNORM_PACK16";
+               case VK_FORMAT_R5G5B5A1_UNORM_PACK16:                                           return "VK_FORMAT_R5G5B5A1_UNORM_PACK16";
+               case VK_FORMAT_B5G5R5A1_UNORM_PACK16:                                           return "VK_FORMAT_B5G5R5A1_UNORM_PACK16";
+               case VK_FORMAT_A1R5G5B5_UNORM_PACK16:                                           return "VK_FORMAT_A1R5G5B5_UNORM_PACK16";
+               case VK_FORMAT_R8_UNORM:                                                                        return "VK_FORMAT_R8_UNORM";
+               case VK_FORMAT_R8_SNORM:                                                                        return "VK_FORMAT_R8_SNORM";
+               case VK_FORMAT_R8_USCALED:                                                                      return "VK_FORMAT_R8_USCALED";
+               case VK_FORMAT_R8_SSCALED:                                                                      return "VK_FORMAT_R8_SSCALED";
+               case VK_FORMAT_R8_UINT:                                                                         return "VK_FORMAT_R8_UINT";
+               case VK_FORMAT_R8_SINT:                                                                         return "VK_FORMAT_R8_SINT";
+               case VK_FORMAT_R8_SRGB:                                                                         return "VK_FORMAT_R8_SRGB";
+               case VK_FORMAT_R8G8_UNORM:                                                                      return "VK_FORMAT_R8G8_UNORM";
+               case VK_FORMAT_R8G8_SNORM:                                                                      return "VK_FORMAT_R8G8_SNORM";
+               case VK_FORMAT_R8G8_USCALED:                                                            return "VK_FORMAT_R8G8_USCALED";
+               case VK_FORMAT_R8G8_SSCALED:                                                            return "VK_FORMAT_R8G8_SSCALED";
+               case VK_FORMAT_R8G8_UINT:                                                                       return "VK_FORMAT_R8G8_UINT";
+               case VK_FORMAT_R8G8_SINT:                                                                       return "VK_FORMAT_R8G8_SINT";
+               case VK_FORMAT_R8G8_SRGB:                                                                       return "VK_FORMAT_R8G8_SRGB";
+               case VK_FORMAT_R8G8B8_UNORM:                                                            return "VK_FORMAT_R8G8B8_UNORM";
+               case VK_FORMAT_R8G8B8_SNORM:                                                            return "VK_FORMAT_R8G8B8_SNORM";
+               case VK_FORMAT_R8G8B8_USCALED:                                                          return "VK_FORMAT_R8G8B8_USCALED";
+               case VK_FORMAT_R8G8B8_SSCALED:                                                          return "VK_FORMAT_R8G8B8_SSCALED";
+               case VK_FORMAT_R8G8B8_UINT:                                                                     return "VK_FORMAT_R8G8B8_UINT";
+               case VK_FORMAT_R8G8B8_SINT:                                                                     return "VK_FORMAT_R8G8B8_SINT";
+               case VK_FORMAT_R8G8B8_SRGB:                                                                     return "VK_FORMAT_R8G8B8_SRGB";
+               case VK_FORMAT_B8G8R8_UNORM:                                                            return "VK_FORMAT_B8G8R8_UNORM";
+               case VK_FORMAT_B8G8R8_SNORM:                                                            return "VK_FORMAT_B8G8R8_SNORM";
+               case VK_FORMAT_B8G8R8_USCALED:                                                          return "VK_FORMAT_B8G8R8_USCALED";
+               case VK_FORMAT_B8G8R8_SSCALED:                                                          return "VK_FORMAT_B8G8R8_SSCALED";
+               case VK_FORMAT_B8G8R8_UINT:                                                                     return "VK_FORMAT_B8G8R8_UINT";
+               case VK_FORMAT_B8G8R8_SINT:                                                                     return "VK_FORMAT_B8G8R8_SINT";
+               case VK_FORMAT_B8G8R8_SRGB:                                                                     return "VK_FORMAT_B8G8R8_SRGB";
+               case VK_FORMAT_R8G8B8A8_UNORM:                                                          return "VK_FORMAT_R8G8B8A8_UNORM";
+               case VK_FORMAT_R8G8B8A8_SNORM:                                                          return "VK_FORMAT_R8G8B8A8_SNORM";
+               case VK_FORMAT_R8G8B8A8_USCALED:                                                        return "VK_FORMAT_R8G8B8A8_USCALED";
+               case VK_FORMAT_R8G8B8A8_SSCALED:                                                        return "VK_FORMAT_R8G8B8A8_SSCALED";
+               case VK_FORMAT_R8G8B8A8_UINT:                                                           return "VK_FORMAT_R8G8B8A8_UINT";
+               case VK_FORMAT_R8G8B8A8_SINT:                                                           return "VK_FORMAT_R8G8B8A8_SINT";
+               case VK_FORMAT_R8G8B8A8_SRGB:                                                           return "VK_FORMAT_R8G8B8A8_SRGB";
+               case VK_FORMAT_B8G8R8A8_UNORM:                                                          return "VK_FORMAT_B8G8R8A8_UNORM";
+               case VK_FORMAT_B8G8R8A8_SNORM:                                                          return "VK_FORMAT_B8G8R8A8_SNORM";
+               case VK_FORMAT_B8G8R8A8_USCALED:                                                        return "VK_FORMAT_B8G8R8A8_USCALED";
+               case VK_FORMAT_B8G8R8A8_SSCALED:                                                        return "VK_FORMAT_B8G8R8A8_SSCALED";
+               case VK_FORMAT_B8G8R8A8_UINT:                                                           return "VK_FORMAT_B8G8R8A8_UINT";
+               case VK_FORMAT_B8G8R8A8_SINT:                                                           return "VK_FORMAT_B8G8R8A8_SINT";
+               case VK_FORMAT_B8G8R8A8_SRGB:                                                           return "VK_FORMAT_B8G8R8A8_SRGB";
+               case VK_FORMAT_A8B8G8R8_UNORM_PACK32:                                           return "VK_FORMAT_A8B8G8R8_UNORM_PACK32";
+               case VK_FORMAT_A8B8G8R8_SNORM_PACK32:                                           return "VK_FORMAT_A8B8G8R8_SNORM_PACK32";
+               case VK_FORMAT_A8B8G8R8_USCALED_PACK32:                                         return "VK_FORMAT_A8B8G8R8_USCALED_PACK32";
+               case VK_FORMAT_A8B8G8R8_SSCALED_PACK32:                                         return "VK_FORMAT_A8B8G8R8_SSCALED_PACK32";
+               case VK_FORMAT_A8B8G8R8_UINT_PACK32:                                            return "VK_FORMAT_A8B8G8R8_UINT_PACK32";
+               case VK_FORMAT_A8B8G8R8_SINT_PACK32:                                            return "VK_FORMAT_A8B8G8R8_SINT_PACK32";
+               case VK_FORMAT_A8B8G8R8_SRGB_PACK32:                                            return "VK_FORMAT_A8B8G8R8_SRGB_PACK32";
+               case VK_FORMAT_A2R10G10B10_UNORM_PACK32:                                        return "VK_FORMAT_A2R10G10B10_UNORM_PACK32";
+               case VK_FORMAT_A2R10G10B10_SNORM_PACK32:                                        return "VK_FORMAT_A2R10G10B10_SNORM_PACK32";
+               case VK_FORMAT_A2R10G10B10_USCALED_PACK32:                                      return "VK_FORMAT_A2R10G10B10_USCALED_PACK32";
+               case VK_FORMAT_A2R10G10B10_SSCALED_PACK32:                                      return "VK_FORMAT_A2R10G10B10_SSCALED_PACK32";
+               case VK_FORMAT_A2R10G10B10_UINT_PACK32:                                         return "VK_FORMAT_A2R10G10B10_UINT_PACK32";
+               case VK_FORMAT_A2R10G10B10_SINT_PACK32:                                         return "VK_FORMAT_A2R10G10B10_SINT_PACK32";
+               case VK_FORMAT_A2B10G10R10_UNORM_PACK32:                                        return "VK_FORMAT_A2B10G10R10_UNORM_PACK32";
+               case VK_FORMAT_A2B10G10R10_SNORM_PACK32:                                        return "VK_FORMAT_A2B10G10R10_SNORM_PACK32";
+               case VK_FORMAT_A2B10G10R10_USCALED_PACK32:                                      return "VK_FORMAT_A2B10G10R10_USCALED_PACK32";
+               case VK_FORMAT_A2B10G10R10_SSCALED_PACK32:                                      return "VK_FORMAT_A2B10G10R10_SSCALED_PACK32";
+               case VK_FORMAT_A2B10G10R10_UINT_PACK32:                                         return "VK_FORMAT_A2B10G10R10_UINT_PACK32";
+               case VK_FORMAT_A2B10G10R10_SINT_PACK32:                                         return "VK_FORMAT_A2B10G10R10_SINT_PACK32";
+               case VK_FORMAT_R16_UNORM:                                                                       return "VK_FORMAT_R16_UNORM";
+               case VK_FORMAT_R16_SNORM:                                                                       return "VK_FORMAT_R16_SNORM";
+               case VK_FORMAT_R16_USCALED:                                                                     return "VK_FORMAT_R16_USCALED";
+               case VK_FORMAT_R16_SSCALED:                                                                     return "VK_FORMAT_R16_SSCALED";
+               case VK_FORMAT_R16_UINT:                                                                        return "VK_FORMAT_R16_UINT";
+               case VK_FORMAT_R16_SINT:                                                                        return "VK_FORMAT_R16_SINT";
+               case VK_FORMAT_R16_SFLOAT:                                                                      return "VK_FORMAT_R16_SFLOAT";
+               case VK_FORMAT_R16G16_UNORM:                                                            return "VK_FORMAT_R16G16_UNORM";
+               case VK_FORMAT_R16G16_SNORM:                                                            return "VK_FORMAT_R16G16_SNORM";
+               case VK_FORMAT_R16G16_USCALED:                                                          return "VK_FORMAT_R16G16_USCALED";
+               case VK_FORMAT_R16G16_SSCALED:                                                          return "VK_FORMAT_R16G16_SSCALED";
+               case VK_FORMAT_R16G16_UINT:                                                                     return "VK_FORMAT_R16G16_UINT";
+               case VK_FORMAT_R16G16_SINT:                                                                     return "VK_FORMAT_R16G16_SINT";
+               case VK_FORMAT_R16G16_SFLOAT:                                                           return "VK_FORMAT_R16G16_SFLOAT";
+               case VK_FORMAT_R16G16B16_UNORM:                                                         return "VK_FORMAT_R16G16B16_UNORM";
+               case VK_FORMAT_R16G16B16_SNORM:                                                         return "VK_FORMAT_R16G16B16_SNORM";
+               case VK_FORMAT_R16G16B16_USCALED:                                                       return "VK_FORMAT_R16G16B16_USCALED";
+               case VK_FORMAT_R16G16B16_SSCALED:                                                       return "VK_FORMAT_R16G16B16_SSCALED";
+               case VK_FORMAT_R16G16B16_UINT:                                                          return "VK_FORMAT_R16G16B16_UINT";
+               case VK_FORMAT_R16G16B16_SINT:                                                          return "VK_FORMAT_R16G16B16_SINT";
+               case VK_FORMAT_R16G16B16_SFLOAT:                                                        return "VK_FORMAT_R16G16B16_SFLOAT";
+               case VK_FORMAT_R16G16B16A16_UNORM:                                                      return "VK_FORMAT_R16G16B16A16_UNORM";
+               case VK_FORMAT_R16G16B16A16_SNORM:                                                      return "VK_FORMAT_R16G16B16A16_SNORM";
+               case VK_FORMAT_R16G16B16A16_USCALED:                                            return "VK_FORMAT_R16G16B16A16_USCALED";
+               case VK_FORMAT_R16G16B16A16_SSCALED:                                            return "VK_FORMAT_R16G16B16A16_SSCALED";
+               case VK_FORMAT_R16G16B16A16_UINT:                                                       return "VK_FORMAT_R16G16B16A16_UINT";
+               case VK_FORMAT_R16G16B16A16_SINT:                                                       return "VK_FORMAT_R16G16B16A16_SINT";
+               case VK_FORMAT_R16G16B16A16_SFLOAT:                                                     return "VK_FORMAT_R16G16B16A16_SFLOAT";
+               case VK_FORMAT_R32_UINT:                                                                        return "VK_FORMAT_R32_UINT";
+               case VK_FORMAT_R32_SINT:                                                                        return "VK_FORMAT_R32_SINT";
+               case VK_FORMAT_R32_SFLOAT:                                                                      return "VK_FORMAT_R32_SFLOAT";
+               case VK_FORMAT_R32G32_UINT:                                                                     return "VK_FORMAT_R32G32_UINT";
+               case VK_FORMAT_R32G32_SINT:                                                                     return "VK_FORMAT_R32G32_SINT";
+               case VK_FORMAT_R32G32_SFLOAT:                                                           return "VK_FORMAT_R32G32_SFLOAT";
+               case VK_FORMAT_R32G32B32_UINT:                                                          return "VK_FORMAT_R32G32B32_UINT";
+               case VK_FORMAT_R32G32B32_SINT:                                                          return "VK_FORMAT_R32G32B32_SINT";
+               case VK_FORMAT_R32G32B32_SFLOAT:                                                        return "VK_FORMAT_R32G32B32_SFLOAT";
+               case VK_FORMAT_R32G32B32A32_UINT:                                                       return "VK_FORMAT_R32G32B32A32_UINT";
+               case VK_FORMAT_R32G32B32A32_SINT:                                                       return "VK_FORMAT_R32G32B32A32_SINT";
+               case VK_FORMAT_R32G32B32A32_SFLOAT:                                                     return "VK_FORMAT_R32G32B32A32_SFLOAT";
+               case VK_FORMAT_R64_UINT:                                                                        return "VK_FORMAT_R64_UINT";
+               case VK_FORMAT_R64_SINT:                                                                        return "VK_FORMAT_R64_SINT";
+               case VK_FORMAT_R64_SFLOAT:                                                                      return "VK_FORMAT_R64_SFLOAT";
+               case VK_FORMAT_R64G64_UINT:                                                                     return "VK_FORMAT_R64G64_UINT";
+               case VK_FORMAT_R64G64_SINT:                                                                     return "VK_FORMAT_R64G64_SINT";
+               case VK_FORMAT_R64G64_SFLOAT:                                                           return "VK_FORMAT_R64G64_SFLOAT";
+               case VK_FORMAT_R64G64B64_UINT:                                                          return "VK_FORMAT_R64G64B64_UINT";
+               case VK_FORMAT_R64G64B64_SINT:                                                          return "VK_FORMAT_R64G64B64_SINT";
+               case VK_FORMAT_R64G64B64_SFLOAT:                                                        return "VK_FORMAT_R64G64B64_SFLOAT";
+               case VK_FORMAT_R64G64B64A64_UINT:                                                       return "VK_FORMAT_R64G64B64A64_UINT";
+               case VK_FORMAT_R64G64B64A64_SINT:                                                       return "VK_FORMAT_R64G64B64A64_SINT";
+               case VK_FORMAT_R64G64B64A64_SFLOAT:                                                     return "VK_FORMAT_R64G64B64A64_SFLOAT";
+               case VK_FORMAT_B10G11R11_UFLOAT_PACK32:                                         return "VK_FORMAT_B10G11R11_UFLOAT_PACK32";
+               case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:                                          return "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32";
+               case VK_FORMAT_D16_UNORM:                                                                       return "VK_FORMAT_D16_UNORM";
+               case VK_FORMAT_X8_D24_UNORM_PACK32:                                                     return "VK_FORMAT_X8_D24_UNORM_PACK32";
+               case VK_FORMAT_D32_SFLOAT:                                                                      return "VK_FORMAT_D32_SFLOAT";
+               case VK_FORMAT_S8_UINT:                                                                         return "VK_FORMAT_S8_UINT";
+               case VK_FORMAT_D16_UNORM_S8_UINT:                                                       return "VK_FORMAT_D16_UNORM_S8_UINT";
+               case VK_FORMAT_D24_UNORM_S8_UINT:                                                       return "VK_FORMAT_D24_UNORM_S8_UINT";
+               case VK_FORMAT_D32_SFLOAT_S8_UINT:                                                      return "VK_FORMAT_D32_SFLOAT_S8_UINT";
+               case VK_FORMAT_BC1_RGB_UNORM_BLOCK:                                                     return "VK_FORMAT_BC1_RGB_UNORM_BLOCK";
+               case VK_FORMAT_BC1_RGB_SRGB_BLOCK:                                                      return "VK_FORMAT_BC1_RGB_SRGB_BLOCK";
+               case VK_FORMAT_BC1_RGBA_UNORM_BLOCK:                                            return "VK_FORMAT_BC1_RGBA_UNORM_BLOCK";
+               case VK_FORMAT_BC1_RGBA_SRGB_BLOCK:                                                     return "VK_FORMAT_BC1_RGBA_SRGB_BLOCK";
+               case VK_FORMAT_BC2_UNORM_BLOCK:                                                         return "VK_FORMAT_BC2_UNORM_BLOCK";
+               case VK_FORMAT_BC2_SRGB_BLOCK:                                                          return "VK_FORMAT_BC2_SRGB_BLOCK";
+               case VK_FORMAT_BC3_UNORM_BLOCK:                                                         return "VK_FORMAT_BC3_UNORM_BLOCK";
+               case VK_FORMAT_BC3_SRGB_BLOCK:                                                          return "VK_FORMAT_BC3_SRGB_BLOCK";
+               case VK_FORMAT_BC4_UNORM_BLOCK:                                                         return "VK_FORMAT_BC4_UNORM_BLOCK";
+               case VK_FORMAT_BC4_SNORM_BLOCK:                                                         return "VK_FORMAT_BC4_SNORM_BLOCK";
+               case VK_FORMAT_BC5_UNORM_BLOCK:                                                         return "VK_FORMAT_BC5_UNORM_BLOCK";
+               case VK_FORMAT_BC5_SNORM_BLOCK:                                                         return "VK_FORMAT_BC5_SNORM_BLOCK";
+               case VK_FORMAT_BC6H_UFLOAT_BLOCK:                                                       return "VK_FORMAT_BC6H_UFLOAT_BLOCK";
+               case VK_FORMAT_BC6H_SFLOAT_BLOCK:                                                       return "VK_FORMAT_BC6H_SFLOAT_BLOCK";
+               case VK_FORMAT_BC7_UNORM_BLOCK:                                                         return "VK_FORMAT_BC7_UNORM_BLOCK";
+               case VK_FORMAT_BC7_SRGB_BLOCK:                                                          return "VK_FORMAT_BC7_SRGB_BLOCK";
+               case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:                                         return "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK";
+               case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:                                          return "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK";
+               case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:                                       return "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK";
+               case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:                                        return "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK";
+               case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:                                       return "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK";
+               case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:                                        return "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK";
+               case VK_FORMAT_EAC_R11_UNORM_BLOCK:                                                     return "VK_FORMAT_EAC_R11_UNORM_BLOCK";
+               case VK_FORMAT_EAC_R11_SNORM_BLOCK:                                                     return "VK_FORMAT_EAC_R11_SNORM_BLOCK";
+               case VK_FORMAT_EAC_R11G11_UNORM_BLOCK:                                          return "VK_FORMAT_EAC_R11G11_UNORM_BLOCK";
+               case VK_FORMAT_EAC_R11G11_SNORM_BLOCK:                                          return "VK_FORMAT_EAC_R11G11_SNORM_BLOCK";
+               case VK_FORMAT_ASTC_4x4_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_4x4_UNORM_BLOCK";
+               case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_4x4_SRGB_BLOCK";
+               case VK_FORMAT_ASTC_5x4_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_5x4_UNORM_BLOCK";
+               case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_5x4_SRGB_BLOCK";
+               case VK_FORMAT_ASTC_5x5_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_5x5_UNORM_BLOCK";
+               case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_5x5_SRGB_BLOCK";
+               case VK_FORMAT_ASTC_6x5_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_6x5_UNORM_BLOCK";
+               case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_6x5_SRGB_BLOCK";
+               case VK_FORMAT_ASTC_6x6_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_6x6_UNORM_BLOCK";
+               case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_6x6_SRGB_BLOCK";
+               case VK_FORMAT_ASTC_8x5_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_8x5_UNORM_BLOCK";
+               case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_8x5_SRGB_BLOCK";
+               case VK_FORMAT_ASTC_8x6_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_8x6_UNORM_BLOCK";
+               case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_8x6_SRGB_BLOCK";
+               case VK_FORMAT_ASTC_8x8_UNORM_BLOCK:                                            return "VK_FORMAT_ASTC_8x8_UNORM_BLOCK";
+               case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:                                                     return "VK_FORMAT_ASTC_8x8_SRGB_BLOCK";
+               case VK_FORMAT_ASTC_10x5_UNORM_BLOCK:                                           return "VK_FORMAT_ASTC_10x5_UNORM_BLOCK";
+               case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:                                            return "VK_FORMAT_ASTC_10x5_SRGB_BLOCK";
+               case VK_FORMAT_ASTC_10x6_UNORM_BLOCK:                                           return "VK_FORMAT_ASTC_10x6_UNORM_BLOCK";
+               case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:                                            return "VK_FORMAT_ASTC_10x6_SRGB_BLOCK";
+               case VK_FORMAT_ASTC_10x8_UNORM_BLOCK:                                           return "VK_FORMAT_ASTC_10x8_UNORM_BLOCK";
+               case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:                                            return "VK_FORMAT_ASTC_10x8_SRGB_BLOCK";
+               case VK_FORMAT_ASTC_10x10_UNORM_BLOCK:                                          return "VK_FORMAT_ASTC_10x10_UNORM_BLOCK";
+               case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:                                           return "VK_FORMAT_ASTC_10x10_SRGB_BLOCK";
+               case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:                                          return "VK_FORMAT_ASTC_12x10_UNORM_BLOCK";
+               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_ASTC_4x4_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK";
+               case VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK";
+               case VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK";
+               case VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK";
+               case VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK";
+               case VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK";
+               case VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK";
+               case VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK:                                           return "VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK";
+               case VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK:                                          return "VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK";
+               case VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK:                                          return "VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK";
+               case VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK:                                          return "VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK";
+               case VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK:                                         return "VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK";
+               case VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK:                                         return "VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK";
+               case VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK:                                         return "VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK";
+               case VK_FORMAT_G8B8G8R8_422_UNORM:                                                      return "VK_FORMAT_G8B8G8R8_422_UNORM";
+               case VK_FORMAT_B8G8R8G8_422_UNORM:                                                      return "VK_FORMAT_B8G8R8G8_422_UNORM";
+               case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:                                       return "VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM";
+               case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:                                        return "VK_FORMAT_G8_B8R8_2PLANE_420_UNORM";
+               case VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:                                       return "VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM";
+               case VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:                                        return "VK_FORMAT_G8_B8R8_2PLANE_422_UNORM";
+               case VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:                                       return "VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM";
+               case VK_FORMAT_R10X6_UNORM_PACK16:                                                      return "VK_FORMAT_R10X6_UNORM_PACK16";
+               case VK_FORMAT_R10X6G10X6_UNORM_2PACK16:                                        return "VK_FORMAT_R10X6G10X6_UNORM_2PACK16";
+               case VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:                      return "VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16";
+               case VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:          return "VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16";
+               case VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:          return "VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16";
+               case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:      return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16";
+               case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:       return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16";
+               case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:      return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16";
+               case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:       return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16";
+               case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:      return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16";
+               case VK_FORMAT_R12X4_UNORM_PACK16:                                                      return "VK_FORMAT_R12X4_UNORM_PACK16";
+               case VK_FORMAT_R12X4G12X4_UNORM_2PACK16:                                        return "VK_FORMAT_R12X4G12X4_UNORM_2PACK16";
+               case VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:                      return "VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16";
+               case VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:          return "VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16";
+               case VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:          return "VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16";
+               case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:      return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16";
+               case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:       return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16";
+               case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:      return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16";
+               case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:       return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16";
+               case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:      return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16";
+               case VK_FORMAT_G16B16G16R16_422_UNORM:                                          return "VK_FORMAT_G16B16G16R16_422_UNORM";
+               case VK_FORMAT_B16G16R16G16_422_UNORM:                                          return "VK_FORMAT_B16G16R16G16_422_UNORM";
+               case VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:                            return "VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM";
+               case VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:                                     return "VK_FORMAT_G16_B16R16_2PLANE_420_UNORM";
+               case VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:                            return "VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM";
+               case VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:                                     return "VK_FORMAT_G16_B16R16_2PLANE_422_UNORM";
+               case VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:                            return "VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM";
+               case VK_FORMAT_G8_B8R8_2PLANE_444_UNORM:                                        return "VK_FORMAT_G8_B8R8_2PLANE_444_UNORM";
+               case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16:       return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16";
+               case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16:       return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16";
+               case VK_FORMAT_G16_B16R16_2PLANE_444_UNORM:                                     return "VK_FORMAT_G16_B16R16_2PLANE_444_UNORM";
+               case VK_FORMAT_A4R4G4B4_UNORM_PACK16:                                           return "VK_FORMAT_A4R4G4B4_UNORM_PACK16";
+               case VK_FORMAT_A4B4G4R4_UNORM_PACK16:                                           return "VK_FORMAT_A4B4G4R4_UNORM_PACK16";
                default:                                                                                                        return DE_NULL;
        }
 }
 
-const char* getPolygonModeName (VkPolygonMode value)
+tcu::Format::Bitfield<32> getFormatFeatureFlagsStr (VkFormatFeatureFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               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";
-               case VK_POLYGON_MODE_MAX_ENUM:                  return "VK_POLYGON_MODE_MAX_ENUM";
-               default:                                                                return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,                                                                                                                       "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,                                                                                                                       "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,                                                                                                        "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,                                                                                                        "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,                                                                                                        "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,                                                                                         "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,                                                                                                                       "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,                                                                                                            "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,                                                                                                      "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,                                                                                            "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT"),
+               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_EXT,                                                                                      "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,                                                                                                                        "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_DST_BIT,                                                                                                                        "VK_FORMAT_FEATURE_TRANSFER_DST_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,                                                                                         "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,                                                                                                     "VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,                                                        "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,                       "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,                       "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,     "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_DISJOINT_BIT,                                                                                                                            "VK_FORMAT_FEATURE_DISJOINT_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,                                                                                                      "VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,                                                                                            "VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR,                                                                                                     "VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR,                                                                                                        "VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR,                                                                                                      "VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR,                                                                                                        "VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,                                                            "VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,                                                                        "VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getStencilOpName (VkStencilOp value)
+const char* getFrontFaceName (VkFrontFace value)
 {
        switch (value)
        {
-               case VK_STENCIL_OP_KEEP:                                return "VK_STENCIL_OP_KEEP";
-               case VK_STENCIL_OP_ZERO:                                return "VK_STENCIL_OP_ZERO";
-               case VK_STENCIL_OP_REPLACE:                             return "VK_STENCIL_OP_REPLACE";
-               case VK_STENCIL_OP_INCREMENT_AND_CLAMP: return "VK_STENCIL_OP_INCREMENT_AND_CLAMP";
-               case VK_STENCIL_OP_DECREMENT_AND_CLAMP: return "VK_STENCIL_OP_DECREMENT_AND_CLAMP";
-               case VK_STENCIL_OP_INVERT:                              return "VK_STENCIL_OP_INVERT";
-               case VK_STENCIL_OP_INCREMENT_AND_WRAP:  return "VK_STENCIL_OP_INCREMENT_AND_WRAP";
-               case VK_STENCIL_OP_DECREMENT_AND_WRAP:  return "VK_STENCIL_OP_DECREMENT_AND_WRAP";
-               case VK_STENCIL_OP_MAX_ENUM:                    return "VK_STENCIL_OP_MAX_ENUM";
+               case VK_FRONT_FACE_COUNTER_CLOCKWISE:   return "VK_FRONT_FACE_COUNTER_CLOCKWISE";
+               case VK_FRONT_FACE_CLOCKWISE:                   return "VK_FRONT_FACE_CLOCKWISE";
                default:                                                                return DE_NULL;
        }
 }
 
-const char* getLogicOpName (VkLogicOp value)
-{
-       switch (value)
-       {
-               case VK_LOGIC_OP_CLEAR:                 return "VK_LOGIC_OP_CLEAR";
-               case VK_LOGIC_OP_AND:                   return "VK_LOGIC_OP_AND";
-               case VK_LOGIC_OP_AND_REVERSE:   return "VK_LOGIC_OP_AND_REVERSE";
-               case VK_LOGIC_OP_COPY:                  return "VK_LOGIC_OP_COPY";
-               case VK_LOGIC_OP_AND_INVERTED:  return "VK_LOGIC_OP_AND_INVERTED";
-               case VK_LOGIC_OP_NO_OP:                 return "VK_LOGIC_OP_NO_OP";
-               case VK_LOGIC_OP_XOR:                   return "VK_LOGIC_OP_XOR";
-               case VK_LOGIC_OP_OR:                    return "VK_LOGIC_OP_OR";
-               case VK_LOGIC_OP_NOR:                   return "VK_LOGIC_OP_NOR";
-               case VK_LOGIC_OP_EQUIVALENT:    return "VK_LOGIC_OP_EQUIVALENT";
-               case VK_LOGIC_OP_INVERT:                return "VK_LOGIC_OP_INVERT";
-               case VK_LOGIC_OP_OR_REVERSE:    return "VK_LOGIC_OP_OR_REVERSE";
-               case VK_LOGIC_OP_COPY_INVERTED: return "VK_LOGIC_OP_COPY_INVERTED";
-               case VK_LOGIC_OP_OR_INVERTED:   return "VK_LOGIC_OP_OR_INVERTED";
-               case VK_LOGIC_OP_NAND:                  return "VK_LOGIC_OP_NAND";
-               case VK_LOGIC_OP_SET:                   return "VK_LOGIC_OP_SET";
-               case VK_LOGIC_OP_MAX_ENUM:              return "VK_LOGIC_OP_MAX_ENUM";
-               default:                                                return DE_NULL;
-       }
-}
-
-const char* getBorderColorName (VkBorderColor value)
+tcu::Format::Bitfield<32> getImageAspectFlagsStr (VkImageAspectFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK:   return "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK";
-               case VK_BORDER_COLOR_INT_TRANSPARENT_BLACK:             return "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK";
-               case VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK:                return "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK";
-               case VK_BORDER_COLOR_INT_OPAQUE_BLACK:                  return "VK_BORDER_COLOR_INT_OPAQUE_BLACK";
-               case VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE:                return "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE";
-               case VK_BORDER_COLOR_INT_OPAQUE_WHITE:                  return "VK_BORDER_COLOR_INT_OPAQUE_WHITE";
-               case VK_BORDER_COLOR_FLOAT_CUSTOM_EXT:                  return "VK_BORDER_COLOR_FLOAT_CUSTOM_EXT";
-               case VK_BORDER_COLOR_INT_CUSTOM_EXT:                    return "VK_BORDER_COLOR_INT_CUSTOM_EXT";
-               case VK_BORDER_COLOR_MAX_ENUM:                                  return "VK_BORDER_COLOR_MAX_ENUM";
-               default:                                                                                return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_IMAGE_ASPECT_COLOR_BIT,                                 "VK_IMAGE_ASPECT_COLOR_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_ASPECT_NONE,                                              "VK_IMAGE_ASPECT_NONE"),
+               tcu::Format::BitDesc(VK_IMAGE_ASPECT_DEPTH_BIT,                                 "VK_IMAGE_ASPECT_DEPTH_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_ASPECT_STENCIL_BIT,                               "VK_IMAGE_ASPECT_STENCIL_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_ASPECT_METADATA_BIT,                              "VK_IMAGE_ASPECT_METADATA_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_0_BIT,                               "VK_IMAGE_ASPECT_PLANE_0_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_1_BIT,                               "VK_IMAGE_ASPECT_PLANE_1_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_2_BIT,                               "VK_IMAGE_ASPECT_PLANE_2_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getFilterName (VkFilter value)
+tcu::Format::Bitfield<32> getImageCreateFlagsStr (VkImageCreateFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_FILTER_NEAREST:         return "VK_FILTER_NEAREST";
-               case VK_FILTER_LINEAR:          return "VK_FILTER_LINEAR";
-               case VK_FILTER_CUBIC_EXT:       return "VK_FILTER_CUBIC_EXT";
-               case VK_FILTER_MAX_ENUM:        return "VK_FILTER_MAX_ENUM";
-               default:                                        return DE_NULL;
-       }
+               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_2D_ARRAY_COMPATIBLE_BIT,                                           "VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,                           "VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,                           "VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,                                                        "VK_IMAGE_CREATE_EXTENDED_USAGE_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_DISJOINT_BIT,                                                                      "VK_IMAGE_CREATE_DISJOINT_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_ALIAS_BIT,                                                                         "VK_IMAGE_CREATE_ALIAS_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_PROTECTED_BIT,                                                                     "VK_IMAGE_CREATE_PROTECTED_BIT"),
+               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_CORNER_SAMPLED_BIT_NV,                                                     "VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,                                                        "VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM,                      "VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT,                                        "VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT,     "VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getSamplerAddressModeName (VkSamplerAddressMode value)
+const char* getImageLayoutName (VkImageLayout value)
 {
        switch (value)
        {
-               case VK_SAMPLER_ADDRESS_MODE_REPEAT:                            return "VK_SAMPLER_ADDRESS_MODE_REPEAT";
-               case VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT:           return "VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT";
-               case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE:                     return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE";
-               case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER:           return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER";
-               case VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE:      return "VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE";
-               case VK_SAMPLER_ADDRESS_MODE_MAX_ENUM:                          return "VK_SAMPLER_ADDRESS_MODE_MAX_ENUM";
-               default:                                                                                        return DE_NULL;
+               case VK_IMAGE_LAYOUT_UNDEFINED:                                                                         return "VK_IMAGE_LAYOUT_UNDEFINED";
+               case VK_IMAGE_LAYOUT_GENERAL:                                                                           return "VK_IMAGE_LAYOUT_GENERAL";
+               case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:                                          return "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL";
+               case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:                          return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL";
+               case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL:                           return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL";
+               case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:                                          return "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL";
+               case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:                                                      return "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL";
+               case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:                                                      return "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL";
+               case VK_IMAGE_LAYOUT_PREINITIALIZED:                                                            return "VK_IMAGE_LAYOUT_PREINITIALIZED";
+               case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR:                                                           return "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR";
+               case VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR";
+               case VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR";
+               case VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR";
+               case VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR:                                                        return "VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR";
+               case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL:        return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL";
+               case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL:        return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL";
+               case VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR:      return "VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR";
+               case VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT:                          return "VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT";
+               case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL:                                          return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL";
+               case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL:                                           return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL";
+               case VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL:                                        return "VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL";
+               case VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL:                                         return "VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL";
+               case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR";
+               case VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR";
+               case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR:                                                      return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR";
+               case VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL:                                                         return "VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL";
+               case VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL:                                                        return "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL";
+               default:                                                                                                                        return DE_NULL;
        }
 }
 
-const char* getSamplerMipmapModeName (VkSamplerMipmapMode value)
+const char* getImageTilingName (VkImageTiling value)
 {
        switch (value)
        {
-               case VK_SAMPLER_MIPMAP_MODE_NEAREST:    return "VK_SAMPLER_MIPMAP_MODE_NEAREST";
-               case VK_SAMPLER_MIPMAP_MODE_LINEAR:             return "VK_SAMPLER_MIPMAP_MODE_LINEAR";
-               case VK_SAMPLER_MIPMAP_MODE_MAX_ENUM:   return "VK_SAMPLER_MIPMAP_MODE_MAX_ENUM";
-               default:                                                                return DE_NULL;
+               case VK_IMAGE_TILING_OPTIMAL:                                   return "VK_IMAGE_TILING_OPTIMAL";
+               case VK_IMAGE_TILING_LINEAR:                                    return "VK_IMAGE_TILING_LINEAR";
+               case VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT:   return "VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT";
+               default:                                                                                return DE_NULL;
        }
 }
 
-const char* getDescriptorTypeName (VkDescriptorType value)
+const char* getImageTypeName (VkImageType value)
 {
        switch (value)
        {
-               case VK_DESCRIPTOR_TYPE_SAMPLER:                                        return "VK_DESCRIPTOR_TYPE_SAMPLER";
-               case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:         return "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER";
-               case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:                          return "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE";
-               case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:                          return "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE";
-               case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER:           return "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER";
-               case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER:           return "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER";
-               case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER:                         return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER";
-               case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER:                         return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER";
-               case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:         return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC";
-               case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:         return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC";
-               case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:                       return "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT";
-               case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK:           return "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK";
-               case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR:     return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR";
-               case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV:      return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV";
-               case VK_DESCRIPTOR_TYPE_MUTABLE_VALVE:                          return "VK_DESCRIPTOR_TYPE_MUTABLE_VALVE";
-               case VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM:       return "VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM";
-               case VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM:         return "VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM";
-               case VK_DESCRIPTOR_TYPE_MAX_ENUM:                                       return "VK_DESCRIPTOR_TYPE_MAX_ENUM";
-               default:                                                                                        return DE_NULL;
+               case VK_IMAGE_TYPE_1D:  return "VK_IMAGE_TYPE_1D";
+               case VK_IMAGE_TYPE_2D:  return "VK_IMAGE_TYPE_2D";
+               case VK_IMAGE_TYPE_3D:  return "VK_IMAGE_TYPE_3D";
+               default:                                return DE_NULL;
        }
 }
 
-const char* getAttachmentLoadOpName (VkAttachmentLoadOp value)
+tcu::Format::Bitfield<32> getImageUsageFlagsStr (VkImageUsageFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_ATTACHMENT_LOAD_OP_LOAD:                return "VK_ATTACHMENT_LOAD_OP_LOAD";
-               case VK_ATTACHMENT_LOAD_OP_CLEAR:               return "VK_ATTACHMENT_LOAD_OP_CLEAR";
-               case VK_ATTACHMENT_LOAD_OP_DONT_CARE:   return "VK_ATTACHMENT_LOAD_OP_DONT_CARE";
-               case VK_ATTACHMENT_LOAD_OP_NONE_EXT:    return "VK_ATTACHMENT_LOAD_OP_NONE_EXT";
-               case VK_ATTACHMENT_LOAD_OP_MAX_ENUM:    return "VK_ATTACHMENT_LOAD_OP_MAX_ENUM";
-               default:                                                                return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_SRC_BIT,                                                   "VK_IMAGE_USAGE_TRANSFER_SRC_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_DST_BIT,                                                   "VK_IMAGE_USAGE_TRANSFER_DST_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLED_BIT,                                                                "VK_IMAGE_USAGE_SAMPLED_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_USAGE_STORAGE_BIT,                                                                "VK_IMAGE_USAGE_STORAGE_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,                                               "VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,                               "VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,                                   "VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,                                               "VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT"),
+               tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,   "VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
+               tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,                               "VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
+               tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
+               tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR"),
+               tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
+               tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
+               tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR"),
+               tcu::Format::BitDesc(VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI,                                 "VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI"),
+               tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM,                                             "VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM"),
+               tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM,                                "VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getAttachmentStoreOpName (VkAttachmentStoreOp value)
+tcu::Format::Bitfield<32> getImageViewCreateFlagsStr (VkImageViewCreateFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_ATTACHMENT_STORE_OP_STORE:              return "VK_ATTACHMENT_STORE_OP_STORE";
-               case VK_ATTACHMENT_STORE_OP_DONT_CARE:  return "VK_ATTACHMENT_STORE_OP_DONT_CARE";
-               case VK_ATTACHMENT_STORE_OP_NONE:               return "VK_ATTACHMENT_STORE_OP_NONE";
-               case VK_ATTACHMENT_STORE_OP_MAX_ENUM:   return "VK_ATTACHMENT_STORE_OP_MAX_ENUM";
-               default:                                                                return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,         "VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT,        "VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getPipelineBindPointName (VkPipelineBindPoint value)
+const char* getImageViewTypeName (VkImageViewType value)
 {
        switch (value)
        {
-               case VK_PIPELINE_BIND_POINT_GRAPHICS:                           return "VK_PIPELINE_BIND_POINT_GRAPHICS";
-               case VK_PIPELINE_BIND_POINT_COMPUTE:                            return "VK_PIPELINE_BIND_POINT_COMPUTE";
-               case VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR:            return "VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR";
-               case VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI:     return "VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI";
-               case VK_PIPELINE_BIND_POINT_MAX_ENUM:                           return "VK_PIPELINE_BIND_POINT_MAX_ENUM";
-               default:                                                                                        return DE_NULL;
+               case VK_IMAGE_VIEW_TYPE_1D:                     return "VK_IMAGE_VIEW_TYPE_1D";
+               case VK_IMAGE_VIEW_TYPE_2D:                     return "VK_IMAGE_VIEW_TYPE_2D";
+               case VK_IMAGE_VIEW_TYPE_3D:                     return "VK_IMAGE_VIEW_TYPE_3D";
+               case VK_IMAGE_VIEW_TYPE_CUBE:           return "VK_IMAGE_VIEW_TYPE_CUBE";
+               case VK_IMAGE_VIEW_TYPE_1D_ARRAY:       return "VK_IMAGE_VIEW_TYPE_1D_ARRAY";
+               case VK_IMAGE_VIEW_TYPE_2D_ARRAY:       return "VK_IMAGE_VIEW_TYPE_2D_ARRAY";
+               case VK_IMAGE_VIEW_TYPE_CUBE_ARRAY:     return "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY";
+               default:                                                        return DE_NULL;
        }
 }
 
-const char* getCommandBufferLevelName (VkCommandBufferLevel value)
+const char* getSharingModeName (VkSharingMode value)
 {
        switch (value)
        {
-               case VK_COMMAND_BUFFER_LEVEL_PRIMARY:   return "VK_COMMAND_BUFFER_LEVEL_PRIMARY";
-               case VK_COMMAND_BUFFER_LEVEL_SECONDARY: return "VK_COMMAND_BUFFER_LEVEL_SECONDARY";
-               case VK_COMMAND_BUFFER_LEVEL_MAX_ENUM:  return "VK_COMMAND_BUFFER_LEVEL_MAX_ENUM";
-               default:                                                                return DE_NULL;
+               case VK_SHARING_MODE_EXCLUSIVE:         return "VK_SHARING_MODE_EXCLUSIVE";
+               case VK_SHARING_MODE_CONCURRENT:        return "VK_SHARING_MODE_CONCURRENT";
+               default:                                                        return DE_NULL;
        }
 }
 
@@ -1708,884 +1010,1622 @@ const char* getIndexTypeName (VkIndexType value)
                case VK_INDEX_TYPE_UINT32:              return "VK_INDEX_TYPE_UINT32";
                case VK_INDEX_TYPE_NONE_KHR:    return "VK_INDEX_TYPE_NONE_KHR";
                case VK_INDEX_TYPE_UINT8_EXT:   return "VK_INDEX_TYPE_UINT8_EXT";
-               case VK_INDEX_TYPE_MAX_ENUM:    return "VK_INDEX_TYPE_MAX_ENUM";
                default:                                                return DE_NULL;
        }
 }
 
-const char* getSubpassContentsName (VkSubpassContents value)
+const char* getLogicOpName (VkLogicOp value)
 {
        switch (value)
        {
-               case VK_SUBPASS_CONTENTS_INLINE:                                        return "VK_SUBPASS_CONTENTS_INLINE";
-               case VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS:     return "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS";
-               case VK_SUBPASS_CONTENTS_MAX_ENUM:                                      return "VK_SUBPASS_CONTENTS_MAX_ENUM";
-               default:                                                                                        return DE_NULL;
+               case VK_LOGIC_OP_CLEAR:                 return "VK_LOGIC_OP_CLEAR";
+               case VK_LOGIC_OP_AND:                   return "VK_LOGIC_OP_AND";
+               case VK_LOGIC_OP_AND_REVERSE:   return "VK_LOGIC_OP_AND_REVERSE";
+               case VK_LOGIC_OP_COPY:                  return "VK_LOGIC_OP_COPY";
+               case VK_LOGIC_OP_AND_INVERTED:  return "VK_LOGIC_OP_AND_INVERTED";
+               case VK_LOGIC_OP_NO_OP:                 return "VK_LOGIC_OP_NO_OP";
+               case VK_LOGIC_OP_XOR:                   return "VK_LOGIC_OP_XOR";
+               case VK_LOGIC_OP_OR:                    return "VK_LOGIC_OP_OR";
+               case VK_LOGIC_OP_NOR:                   return "VK_LOGIC_OP_NOR";
+               case VK_LOGIC_OP_EQUIVALENT:    return "VK_LOGIC_OP_EQUIVALENT";
+               case VK_LOGIC_OP_INVERT:                return "VK_LOGIC_OP_INVERT";
+               case VK_LOGIC_OP_OR_REVERSE:    return "VK_LOGIC_OP_OR_REVERSE";
+               case VK_LOGIC_OP_COPY_INVERTED: return "VK_LOGIC_OP_COPY_INVERTED";
+               case VK_LOGIC_OP_OR_INVERTED:   return "VK_LOGIC_OP_OR_INVERTED";
+               case VK_LOGIC_OP_NAND:                  return "VK_LOGIC_OP_NAND";
+               case VK_LOGIC_OP_SET:                   return "VK_LOGIC_OP_SET";
+               default:                                                return DE_NULL;
        }
 }
 
-const char* getPointClippingBehaviorName (VkPointClippingBehavior value)
+tcu::Format::Bitfield<32> getMemoryHeapFlagsStr (VkMemoryHeapFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES:                return "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES";
-               case VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY:  return "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY";
-               case VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM:                               return "VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM";
-               default:                                                                                                return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,   "VK_MEMORY_HEAP_DEVICE_LOCAL_BIT"),
+               tcu::Format::BitDesc(VK_MEMORY_HEAP_MULTI_INSTANCE_BIT, "VK_MEMORY_HEAP_MULTI_INSTANCE_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getTessellationDomainOriginName (VkTessellationDomainOrigin value)
+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_NONE,                                                                                    "VK_ACCESS_NONE"),
+               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_PREPROCESS_READ_BIT_NV,                                  "VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV"),
+               tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,                                 "VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV"),
+               tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,               "VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"),
+               tcu::Format::BitDesc(VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,                              "VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT"),
+               tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,                             "VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR"),
+               tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,                    "VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,   "VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"),
+               tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,                               "VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"),
+               tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,                                "VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,                 "VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"),
+               tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,                "VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getMemoryPropertyFlagsStr (VkMemoryPropertyFlags value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,                       "VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT"),
+               tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,                       "VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT"),
+               tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,                      "VK_MEMORY_PROPERTY_HOST_COHERENT_BIT"),
+               tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_CACHED_BIT,                        "VK_MEMORY_PROPERTY_HOST_CACHED_BIT"),
+               tcu::Format::BitDesc(VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,           "VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT"),
+               tcu::Format::BitDesc(VK_MEMORY_PROPERTY_PROTECTED_BIT,                          "VK_MEMORY_PROPERTY_PROTECTED_BIT"),
+               tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,        "VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD"),
+               tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD,        "VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD"),
+               tcu::Format::BitDesc(VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV,            "VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+const char* getPhysicalDeviceTypeName (VkPhysicalDeviceType value)
 {
        switch (value)
        {
-               case VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT:  return "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT";
-               case VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT:  return "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT";
-               case VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM:    return "VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM";
+               case VK_PHYSICAL_DEVICE_TYPE_OTHER:                             return "VK_PHYSICAL_DEVICE_TYPE_OTHER";
+               case VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU:    return "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU";
+               case VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU:              return "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU";
+               case VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU:               return "VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU";
+               case VK_PHYSICAL_DEVICE_TYPE_CPU:                               return "VK_PHYSICAL_DEVICE_TYPE_CPU";
                default:                                                                                return DE_NULL;
        }
 }
 
-const char* getSamplerYcbcrModelConversionName (VkSamplerYcbcrModelConversion value)
+const char* getPipelineBindPointName (VkPipelineBindPoint value)
 {
        switch (value)
        {
-               case VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY:    return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY";
-               case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY:  return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY";
-               case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709:               return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709";
-               case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601:               return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601";
-               case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020:              return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020";
-               case VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM:                return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM";
-               default:                                                                                                return DE_NULL;
+               case VK_PIPELINE_BIND_POINT_GRAPHICS:                           return "VK_PIPELINE_BIND_POINT_GRAPHICS";
+               case VK_PIPELINE_BIND_POINT_COMPUTE:                            return "VK_PIPELINE_BIND_POINT_COMPUTE";
+               case VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR:            return "VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR";
+               case VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI:     return "VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI";
+               default:                                                                                        return DE_NULL;
        }
 }
 
-const char* getSamplerYcbcrRangeName (VkSamplerYcbcrRange value)
+tcu::Format::Bitfield<32> getPipelineCreateFlagsStr (VkPipelineCreateFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_SAMPLER_YCBCR_RANGE_ITU_FULL:   return "VK_SAMPLER_YCBCR_RANGE_ITU_FULL";
-               case VK_SAMPLER_YCBCR_RANGE_ITU_NARROW: return "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW";
-               case VK_SAMPLER_YCBCR_RANGE_MAX_ENUM:   return "VK_SAMPLER_YCBCR_RANGE_MAX_ENUM";
-               default:                                                                return DE_NULL;
-       }
+               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,                                               "VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,                                                                              "VK_PIPELINE_CREATE_DISPATCH_BASE_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,                                                                   "VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,                                                             "VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,                               "VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,                                  "VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,                                                    "VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT,                                                 "VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,                                                                                "VK_PIPELINE_CREATE_LIBRARY_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,                                             "VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,                                                 "VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR,                    "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR,                "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR,                               "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR,               "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,                                                               "VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR, "VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV,                                                "VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,             "VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,              "VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT,                             "VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getChromaLocationName (VkChromaLocation value)
+const char* getPrimitiveTopologyName (VkPrimitiveTopology value)
 {
        switch (value)
        {
-               case VK_CHROMA_LOCATION_COSITED_EVEN:   return "VK_CHROMA_LOCATION_COSITED_EVEN";
-               case VK_CHROMA_LOCATION_MIDPOINT:               return "VK_CHROMA_LOCATION_MIDPOINT";
-               case VK_CHROMA_LOCATION_MAX_ENUM:               return "VK_CHROMA_LOCATION_MAX_ENUM";
-               default:                                                                return DE_NULL;
+               case VK_PRIMITIVE_TOPOLOGY_POINT_LIST:                                          return "VK_PRIMITIVE_TOPOLOGY_POINT_LIST";
+               case VK_PRIMITIVE_TOPOLOGY_LINE_LIST:                                           return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST";
+               case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP:                                          return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP";
+               case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST:                                       return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST";
+               case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP:                                      return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP";
+               case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:                                        return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN";
+               case VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY:            return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY";
+               case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY:           return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY";
+               case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY:        return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY";
+               case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY:       return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY";
+               case VK_PRIMITIVE_TOPOLOGY_PATCH_LIST:                                          return "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST";
+               default:                                                                                                        return DE_NULL;
        }
 }
 
-const char* getDescriptorUpdateTemplateTypeName (VkDescriptorUpdateTemplateType value)
+tcu::Format::Bitfield<32> getQueryControlFlagsStr (VkQueryControlFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET:                 return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET";
-               case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR:   return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR";
-               case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM:                               return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM";
-               default:                                                                                                                return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_QUERY_CONTROL_PRECISE_BIT,      "VK_QUERY_CONTROL_PRECISE_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getDriverIdName (VkDriverId value)
+tcu::Format::Bitfield<32> getQueryPipelineStatisticFlagsStr (VkQueryPipelineStatisticFlags value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,                                           "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT"),
+               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,                                         "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT"),
+               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,                                         "VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT"),
+               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,                                       "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT"),
+               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,                                        "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT"),
+               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,                                                      "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT"),
+               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,                                                       "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT"),
+               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,                                       "VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT"),
+               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,                       "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT"),
+               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,        "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT"),
+               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT,                                        "VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getQueryResultFlagsStr (VkQueryResultFlags value)
+{
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_QUERY_RESULT_64_BIT,                            "VK_QUERY_RESULT_64_BIT"),
+               tcu::Format::BitDesc(VK_QUERY_RESULT_WAIT_BIT,                          "VK_QUERY_RESULT_WAIT_BIT"),
+               tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,     "VK_QUERY_RESULT_WITH_AVAILABILITY_BIT"),
+               tcu::Format::BitDesc(VK_QUERY_RESULT_PARTIAL_BIT,                       "VK_QUERY_RESULT_PARTIAL_BIT"),
+               tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_STATUS_BIT_KHR,       "VK_QUERY_RESULT_WITH_STATUS_BIT_KHR"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+const char* getQueryTypeName (VkQueryType value)
 {
        switch (value)
        {
-               case VK_DRIVER_ID_AMD_PROPRIETARY:                              return "VK_DRIVER_ID_AMD_PROPRIETARY";
-               case VK_DRIVER_ID_AMD_OPEN_SOURCE:                              return "VK_DRIVER_ID_AMD_OPEN_SOURCE";
-               case VK_DRIVER_ID_MESA_RADV:                                    return "VK_DRIVER_ID_MESA_RADV";
-               case VK_DRIVER_ID_NVIDIA_PROPRIETARY:                   return "VK_DRIVER_ID_NVIDIA_PROPRIETARY";
-               case VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS:    return "VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS";
-               case VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA:               return "VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA";
-               case VK_DRIVER_ID_IMAGINATION_PROPRIETARY:              return "VK_DRIVER_ID_IMAGINATION_PROPRIETARY";
-               case VK_DRIVER_ID_QUALCOMM_PROPRIETARY:                 return "VK_DRIVER_ID_QUALCOMM_PROPRIETARY";
-               case VK_DRIVER_ID_ARM_PROPRIETARY:                              return "VK_DRIVER_ID_ARM_PROPRIETARY";
-               case VK_DRIVER_ID_GOOGLE_SWIFTSHADER:                   return "VK_DRIVER_ID_GOOGLE_SWIFTSHADER";
-               case VK_DRIVER_ID_GGP_PROPRIETARY:                              return "VK_DRIVER_ID_GGP_PROPRIETARY";
-               case VK_DRIVER_ID_BROADCOM_PROPRIETARY:                 return "VK_DRIVER_ID_BROADCOM_PROPRIETARY";
-               case VK_DRIVER_ID_MESA_LLVMPIPE:                                return "VK_DRIVER_ID_MESA_LLVMPIPE";
-               case VK_DRIVER_ID_MOLTENVK:                                             return "VK_DRIVER_ID_MOLTENVK";
-               case VK_DRIVER_ID_COREAVI_PROPRIETARY:                  return "VK_DRIVER_ID_COREAVI_PROPRIETARY";
-               case VK_DRIVER_ID_JUICE_PROPRIETARY:                    return "VK_DRIVER_ID_JUICE_PROPRIETARY";
-               case VK_DRIVER_ID_VERISILICON_PROPRIETARY:              return "VK_DRIVER_ID_VERISILICON_PROPRIETARY";
-               case VK_DRIVER_ID_MESA_TURNIP:                                  return "VK_DRIVER_ID_MESA_TURNIP";
-               case VK_DRIVER_ID_MESA_V3DV:                                    return "VK_DRIVER_ID_MESA_V3DV";
-               case VK_DRIVER_ID_MESA_PANVK:                                   return "VK_DRIVER_ID_MESA_PANVK";
-               case VK_DRIVER_ID_SAMSUNG_PROPRIETARY:                  return "VK_DRIVER_ID_SAMSUNG_PROPRIETARY";
-               case VK_DRIVER_ID_MESA_VENUS:                                   return "VK_DRIVER_ID_MESA_VENUS";
-               case VK_DRIVER_ID_MESA_DOZEN:                                   return "VK_DRIVER_ID_MESA_DOZEN";
-               case VK_DRIVER_ID_MAX_ENUM:                                             return "VK_DRIVER_ID_MAX_ENUM";
-               default:                                                                                return DE_NULL;
+               case VK_QUERY_TYPE_OCCLUSION:                                                                                                           return "VK_QUERY_TYPE_OCCLUSION";
+               case VK_QUERY_TYPE_PIPELINE_STATISTICS:                                                                                         return "VK_QUERY_TYPE_PIPELINE_STATISTICS";
+               case VK_QUERY_TYPE_TIMESTAMP:                                                                                                           return "VK_QUERY_TYPE_TIMESTAMP";
+               case VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR:                                                                                      return "VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR";
+               case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT:                                                                       return "VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT";
+               case VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR:                                                                                       return "VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR";
+               case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR:                                           return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR";
+               case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR:                                       return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR";
+               case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV:                                            return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV";
+               case VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL:                                                                                     return "VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL";
+               case VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR:                                                     return "VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR";
+               case VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT:                                                                            return "VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT";
+               case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR:      return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR";
+               case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR:                                                                     return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR";
+               default:                                                                                                                                                        return DE_NULL;
        }
 }
 
-const char* getShaderFloatControlsIndependenceName (VkShaderFloatControlsIndependence value)
+tcu::Format::Bitfield<32> getQueueFlagsStr (VkQueueFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY: return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY";
-               case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL:                 return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL";
-               case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE:                return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE";
-               case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM:    return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM";
-               default:                                                                                                return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_QUEUE_GRAPHICS_BIT,                     "VK_QUEUE_GRAPHICS_BIT"),
+               tcu::Format::BitDesc(VK_QUEUE_COMPUTE_BIT,                      "VK_QUEUE_COMPUTE_BIT"),
+               tcu::Format::BitDesc(VK_QUEUE_TRANSFER_BIT,                     "VK_QUEUE_TRANSFER_BIT"),
+               tcu::Format::BitDesc(VK_QUEUE_SPARSE_BINDING_BIT,       "VK_QUEUE_SPARSE_BINDING_BIT"),
+               tcu::Format::BitDesc(VK_QUEUE_PROTECTED_BIT,            "VK_QUEUE_PROTECTED_BIT"),
+               tcu::Format::BitDesc(VK_QUEUE_VIDEO_DECODE_BIT_KHR,     "VK_QUEUE_VIDEO_DECODE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_QUEUE_VIDEO_ENCODE_BIT_KHR,     "VK_QUEUE_VIDEO_ENCODE_BIT_KHR"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getSamplerReductionModeName (VkSamplerReductionMode value)
+const char* getSubpassContentsName (VkSubpassContents value)
 {
        switch (value)
        {
-               case VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE:        return "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE";
-               case VK_SAMPLER_REDUCTION_MODE_MIN:                                     return "VK_SAMPLER_REDUCTION_MODE_MIN";
-               case VK_SAMPLER_REDUCTION_MODE_MAX:                                     return "VK_SAMPLER_REDUCTION_MODE_MAX";
-               case VK_SAMPLER_REDUCTION_MODE_MAX_ENUM:                        return "VK_SAMPLER_REDUCTION_MODE_MAX_ENUM";
+               case VK_SUBPASS_CONTENTS_INLINE:                                        return "VK_SUBPASS_CONTENTS_INLINE";
+               case VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS:     return "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS";
                default:                                                                                        return DE_NULL;
        }
 }
 
-const char* getSemaphoreTypeName (VkSemaphoreType value)
+const char* getResultName (VkResult value)
 {
        switch (value)
        {
-               case VK_SEMAPHORE_TYPE_BINARY:          return "VK_SEMAPHORE_TYPE_BINARY";
-               case VK_SEMAPHORE_TYPE_TIMELINE:        return "VK_SEMAPHORE_TYPE_TIMELINE";
-               case VK_SEMAPHORE_TYPE_MAX_ENUM:        return "VK_SEMAPHORE_TYPE_MAX_ENUM";
-               default:                                                        return DE_NULL;
+               case VK_ERROR_COMPRESSION_EXHAUSTED_EXT:                                        return "VK_ERROR_COMPRESSION_EXHAUSTED_EXT";
+               case VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS:                           return "VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS";
+               case VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT:                      return "VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT";
+               case VK_ERROR_NOT_PERMITTED_KHR:                                                        return "VK_ERROR_NOT_PERMITTED_KHR";
+               case VK_ERROR_FRAGMENTATION:                                                            return "VK_ERROR_FRAGMENTATION";
+               case VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT:     return "VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT";
+               case VK_ERROR_INVALID_EXTERNAL_HANDLE:                                          return "VK_ERROR_INVALID_EXTERNAL_HANDLE";
+               case VK_ERROR_OUT_OF_POOL_MEMORY:                                                       return "VK_ERROR_OUT_OF_POOL_MEMORY";
+               case VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR:                      return "VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR";
+               case VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR:            return "VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR";
+               case VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR:           return "VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR";
+               case VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR:        return "VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR";
+               case VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR:           return "VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR";
+               case VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR:                            return "VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR";
+               case VK_ERROR_INVALID_SHADER_NV:                                                        return "VK_ERROR_INVALID_SHADER_NV";
+               case VK_ERROR_VALIDATION_FAILED_EXT:                                            return "VK_ERROR_VALIDATION_FAILED_EXT";
+               case VK_ERROR_INCOMPATIBLE_DISPLAY_KHR:                                         return "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR";
+               case VK_ERROR_OUT_OF_DATE_KHR:                                                          return "VK_ERROR_OUT_OF_DATE_KHR";
+               case VK_ERROR_NATIVE_WINDOW_IN_USE_KHR:                                         return "VK_ERROR_NATIVE_WINDOW_IN_USE_KHR";
+               case VK_ERROR_SURFACE_LOST_KHR:                                                         return "VK_ERROR_SURFACE_LOST_KHR";
+               case VK_ERROR_UNKNOWN:                                                                          return "VK_ERROR_UNKNOWN";
+               case VK_ERROR_FRAGMENTED_POOL:                                                          return "VK_ERROR_FRAGMENTED_POOL";
+               case VK_ERROR_FORMAT_NOT_SUPPORTED:                                                     return "VK_ERROR_FORMAT_NOT_SUPPORTED";
+               case VK_ERROR_TOO_MANY_OBJECTS:                                                         return "VK_ERROR_TOO_MANY_OBJECTS";
+               case VK_ERROR_INCOMPATIBLE_DRIVER:                                                      return "VK_ERROR_INCOMPATIBLE_DRIVER";
+               case VK_ERROR_FEATURE_NOT_PRESENT:                                                      return "VK_ERROR_FEATURE_NOT_PRESENT";
+               case VK_ERROR_EXTENSION_NOT_PRESENT:                                            return "VK_ERROR_EXTENSION_NOT_PRESENT";
+               case VK_ERROR_LAYER_NOT_PRESENT:                                                        return "VK_ERROR_LAYER_NOT_PRESENT";
+               case VK_ERROR_MEMORY_MAP_FAILED:                                                        return "VK_ERROR_MEMORY_MAP_FAILED";
+               case VK_ERROR_DEVICE_LOST:                                                                      return "VK_ERROR_DEVICE_LOST";
+               case VK_ERROR_INITIALIZATION_FAILED:                                            return "VK_ERROR_INITIALIZATION_FAILED";
+               case VK_ERROR_OUT_OF_DEVICE_MEMORY:                                                     return "VK_ERROR_OUT_OF_DEVICE_MEMORY";
+               case VK_ERROR_OUT_OF_HOST_MEMORY:                                                       return "VK_ERROR_OUT_OF_HOST_MEMORY";
+               case VK_SUCCESS:                                                                                        return "VK_SUCCESS";
+               case VK_NOT_READY:                                                                                      return "VK_NOT_READY";
+               case VK_TIMEOUT:                                                                                        return "VK_TIMEOUT";
+               case VK_EVENT_SET:                                                                                      return "VK_EVENT_SET";
+               case VK_EVENT_RESET:                                                                            return "VK_EVENT_RESET";
+               case VK_INCOMPLETE:                                                                                     return "VK_INCOMPLETE";
+               case VK_SUBOPTIMAL_KHR:                                                                         return "VK_SUBOPTIMAL_KHR";
+               case VK_THREAD_IDLE_KHR:                                                                        return "VK_THREAD_IDLE_KHR";
+               case VK_THREAD_DONE_KHR:                                                                        return "VK_THREAD_DONE_KHR";
+               case VK_OPERATION_DEFERRED_KHR:                                                         return "VK_OPERATION_DEFERRED_KHR";
+               case VK_OPERATION_NOT_DEFERRED_KHR:                                                     return "VK_OPERATION_NOT_DEFERRED_KHR";
+               case VK_PIPELINE_COMPILE_REQUIRED:                                                      return "VK_PIPELINE_COMPILE_REQUIRED";
+               default:                                                                                                        return DE_NULL;
        }
 }
 
-const char* getPresentModeKHRName (VkPresentModeKHR value)
+tcu::Format::Bitfield<32> getShaderStageFlagsStr (VkShaderStageFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_PRESENT_MODE_IMMEDIATE_KHR:                                     return "VK_PRESENT_MODE_IMMEDIATE_KHR";
-               case VK_PRESENT_MODE_MAILBOX_KHR:                                       return "VK_PRESENT_MODE_MAILBOX_KHR";
-               case VK_PRESENT_MODE_FIFO_KHR:                                          return "VK_PRESENT_MODE_FIFO_KHR";
-               case VK_PRESENT_MODE_FIFO_RELAXED_KHR:                          return "VK_PRESENT_MODE_FIFO_RELAXED_KHR";
-               case VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR:         return "VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR";
-               case VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR:     return "VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR";
-               case VK_PRESENT_MODE_MAX_ENUM_KHR:                                      return "VK_PRESENT_MODE_MAX_ENUM_KHR";
-               default:                                                                                        return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_SHADER_STAGE_VERTEX_BIT,                                        "VK_SHADER_STAGE_VERTEX_BIT"),
+               tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,          "VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT"),
+               tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,       "VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT"),
+               tcu::Format::BitDesc(VK_SHADER_STAGE_GEOMETRY_BIT,                                      "VK_SHADER_STAGE_GEOMETRY_BIT"),
+               tcu::Format::BitDesc(VK_SHADER_STAGE_FRAGMENT_BIT,                                      "VK_SHADER_STAGE_FRAGMENT_BIT"),
+               tcu::Format::BitDesc(VK_SHADER_STAGE_COMPUTE_BIT,                                       "VK_SHADER_STAGE_COMPUTE_BIT"),
+               tcu::Format::BitDesc(VK_SHADER_STAGE_TASK_BIT_NV,                                       "VK_SHADER_STAGE_TASK_BIT_NV"),
+               tcu::Format::BitDesc(VK_SHADER_STAGE_MESH_BIT_NV,                                       "VK_SHADER_STAGE_MESH_BIT_NV"),
+               tcu::Format::BitDesc(VK_SHADER_STAGE_RAYGEN_BIT_KHR,                            "VK_SHADER_STAGE_RAYGEN_BIT_KHR"),
+               tcu::Format::BitDesc(VK_SHADER_STAGE_ANY_HIT_BIT_KHR,                           "VK_SHADER_STAGE_ANY_HIT_BIT_KHR"),
+               tcu::Format::BitDesc(VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,                       "VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR"),
+               tcu::Format::BitDesc(VK_SHADER_STAGE_MISS_BIT_KHR,                                      "VK_SHADER_STAGE_MISS_BIT_KHR"),
+               tcu::Format::BitDesc(VK_SHADER_STAGE_INTERSECTION_BIT_KHR,                      "VK_SHADER_STAGE_INTERSECTION_BIT_KHR"),
+               tcu::Format::BitDesc(VK_SHADER_STAGE_CALLABLE_BIT_KHR,                          "VK_SHADER_STAGE_CALLABLE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI,        "VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI"),
+               tcu::Format::BitDesc(VK_SHADER_STAGE_ALL_GRAPHICS,                                      "VK_SHADER_STAGE_ALL_GRAPHICS"),
+               tcu::Format::BitDesc(VK_SHADER_STAGE_ALL,                                                       "VK_SHADER_STAGE_ALL"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getColorSpaceKHRName (VkColorSpaceKHR value)
+tcu::Format::Bitfield<32> getSparseMemoryBindFlagsStr (VkSparseMemoryBindFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               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_DISPLAY_P3_LINEAR_EXT:                      return "VK_COLOR_SPACE_DISPLAY_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";
-               case VK_COLOR_SPACE_DISPLAY_NATIVE_AMD:                         return "VK_COLOR_SPACE_DISPLAY_NATIVE_AMD";
-               case VK_COLOR_SPACE_MAX_ENUM_KHR:                                       return "VK_COLOR_SPACE_MAX_ENUM_KHR";
-               default:                                                                                        return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_SPARSE_MEMORY_BIND_METADATA_BIT,        "VK_SPARSE_MEMORY_BIND_METADATA_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getPerformanceCounterUnitKHRName (VkPerformanceCounterUnitKHR value)
+tcu::Format::Bitfield<32> getStencilFaceFlagsStr (VkStencilFaceFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR:                   return "VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR";
-               case VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR:                return "VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR";
-               case VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR:               return "VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR";
-               case VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR";
-               case VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR:  return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR";
-               case VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR:                    return "VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR";
-               case VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR";
-               case VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR";
-               case VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR:                              return "VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR";
-               case VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR";
-               case VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR:                    return "VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR";
-               case VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR:                  return "VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR";
-               default:                                                                                                return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_BIT,                 "VK_STENCIL_FACE_FRONT_BIT"),
+               tcu::Format::BitDesc(VK_STENCIL_FACE_BACK_BIT,                  "VK_STENCIL_FACE_BACK_BIT"),
+               tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_AND_BACK,    "VK_STENCIL_FACE_FRONT_AND_BACK"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getPerformanceCounterScopeKHRName (VkPerformanceCounterScopeKHR value)
+const char* getStencilOpName (VkStencilOp value)
 {
        switch (value)
        {
-               case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR:   return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR";
-               case VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR:              return "VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR";
-               case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR:                  return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR";
-               case VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR:                 return "VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR";
-               default:                                                                                                return DE_NULL;
+               case VK_STENCIL_OP_KEEP:                                return "VK_STENCIL_OP_KEEP";
+               case VK_STENCIL_OP_ZERO:                                return "VK_STENCIL_OP_ZERO";
+               case VK_STENCIL_OP_REPLACE:                             return "VK_STENCIL_OP_REPLACE";
+               case VK_STENCIL_OP_INCREMENT_AND_CLAMP: return "VK_STENCIL_OP_INCREMENT_AND_CLAMP";
+               case VK_STENCIL_OP_DECREMENT_AND_CLAMP: return "VK_STENCIL_OP_DECREMENT_AND_CLAMP";
+               case VK_STENCIL_OP_INVERT:                              return "VK_STENCIL_OP_INVERT";
+               case VK_STENCIL_OP_INCREMENT_AND_WRAP:  return "VK_STENCIL_OP_INCREMENT_AND_WRAP";
+               case VK_STENCIL_OP_DECREMENT_AND_WRAP:  return "VK_STENCIL_OP_DECREMENT_AND_WRAP";
+               default:                                                                return DE_NULL;
        }
 }
 
-const char* getPerformanceCounterStorageKHRName (VkPerformanceCounterStorageKHR value)
+const char* getStructureTypeName (VkStructureType value)
 {
        switch (value)
        {
-               case VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR:          return "VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR";
-               case VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR:          return "VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR";
-               case VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR:         return "VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR";
-               case VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR:         return "VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR";
-               case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR:        return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR";
-               case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR:        return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR";
-               case VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR:       return "VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_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_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES";
+               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_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_VIDEO_PROFILE_KHR:                                                                                                       return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR";
+               case VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR:                                                                                          return "VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR";
+               case VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR:                                                                                      return "VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR";
+               case VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR:                                                                         return "VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR:                                                                                           return "VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR";
+               case VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR";
+               case VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR:                                                                                       return "VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR";
+               case VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR";
+               case VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR:                                                                                        return "VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR";
+               case VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR";
+               case VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR:                                                                                                      return "VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR";
+               case VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR:                                                                                     return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR:                                       return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR";
+               case VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR:                                                                                           return "VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR";
+               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_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:                                     return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX:                                                                                       return "VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX";
+               case VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX:                                                                                     return "VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX";
+               case VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX:                                                                                                      return "VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX";
+               case VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX:                                                                                      return "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX";
+               case VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX:                                                                       return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT:                                                                        return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT:                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT:                                                         return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT:                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_EXT:                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_REFERENCE_LISTS_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_EXT:                                                        return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT:                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT:                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT:                                                         return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT:                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT:                                                                                       return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT";
+               case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:                                                        return "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD";
+               case VK_STRUCTURE_TYPE_RENDERING_INFO:                                                                                                          return "VK_STRUCTURE_TYPE_RENDERING_INFO";
+               case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO:                                                                                       return "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO";
+               case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO:                                                                          return "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES";
+               case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO:                                                       return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO";
+               case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:                                     return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
+               case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT";
+               case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:                                                                        return "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD";
+               case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:                                                          return "VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX";
+               case VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP:                                                       return "VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV";
+               case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:                                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES";
+               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:                                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2:                                                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2";
+               case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2:                                                                                                     return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2";
+               case VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2:                                                                                       return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2";
+               case VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2:                                                                                       return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2";
+               case VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2:                                                                        return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2";
+               case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:                                                                                      return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO";
+               case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:                                                                     return "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO";
+               case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:                                                          return "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO";
+               case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:                                                                                        return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO";
+               case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO:                                                                           return "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO";
+               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_ACQUIRE_NEXT_IMAGE_INFO_KHR:                                                                                     return "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_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_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:                                                            return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO";
+               case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:                                                                     return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO";
+               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_SHADER_DRAW_PARAMETERS_FEATURES:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES";
+               case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:                                                                         return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES:                                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES";
+               case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:                                                                         return "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO";
+               case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:                                                                        return "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO:                                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO";
+               case VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES:                                                                                      return "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:                                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES";
+               case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:                                                                      return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:                                                                       return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:                                                                                     return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO";
+               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:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO";
+               case VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES:                                                                           return "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES";
+               case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO";
+               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_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:                       return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:                                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES";
+               case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:                                                                                                     return "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR";
+               case VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO:                                                          return "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO";
+               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_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:                       return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:                         return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_HDR_METADATA_EXT:                                                                                                        return "VK_STRUCTURE_TYPE_HDR_METADATA_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES";
+               case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:                                                                     return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO:                                                                       return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO";
+               case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:                                                                       return "VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO";
+               case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2:                                                                                        return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2";
+               case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2:                                                                                          return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2";
+               case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2:                                                                                           return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2";
+               case VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2:                                                                                            return "VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2";
+               case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2:                                                                                       return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2";
+               case VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO:                                                                                                      return "VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO";
+               case VK_STRUCTURE_TYPE_SUBPASS_END_INFO:                                                                                                        return "VK_STRUCTURE_TYPE_SUBPASS_END_INFO";
+               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:                                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO";
+               case VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES:                                                                                       return "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES";
+               case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:                                                                                        return "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO";
+               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_PERFORMANCE_QUERY_FEATURES_KHR:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:                                                                       return "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR";
+               case VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR:                                                                         return "VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR:                                                                                         return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR";
+               case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR:                                                                     return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES";
+               case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:                                         return "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:                                                                            return "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:                           return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO";
+               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_POINTERS_FEATURES:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES";
+               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:                                                                           return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS";
+               case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:                                                                          return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO";
+               case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT";
+               case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT:                                                                         return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT";
+               case VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT:                                                                                           return "VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT";
+               case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT:                                                         return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT";
+               case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:                                                           return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:                                                           return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID";
+               case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID:                                                      return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID";
+               case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:                                       return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_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_EXTERNAL_FORMAT_ANDROID:                                                                                         return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID";
+               case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID:                                     return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES";
+               case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:                                                                      return "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES";
+               case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK:                                                       return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK";
+               case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO:                                        return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO";
+               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:                                                                                           return "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES";
+               case VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2:                                                                                                     return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2";
+               case VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2:                                                                       return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2";
+               case VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2:                                                                        return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2";
+               case VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2:                                                         return "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2";
+               case VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2:                                                                                           return "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2";
+               case VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2:                                                                      return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2";
+               case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:                                                                           return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO";
+               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_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR";
+               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR";
+               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR:                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR";
+               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR:                                      return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR";
+               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR:                                      return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR";
+               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR:                                                                     return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR";
+               case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:                                         return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR";
+               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR:                                                         return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR";
+               case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR:                                                            return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR";
+               case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR:                                                            return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR:                                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR:                                          return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR:                                                     return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR";
+               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_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV";
+               case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO:                                                            return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:                                                                           return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO";
+               case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:                                                                            return "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO";
+               case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:                                                            return "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES";
+               case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES";
+               case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO:                                                                                         return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO";
+               case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO:                                                                                          return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO";
+               case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:                                                         return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT";
+               case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:                                          return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:                                      return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT:                                                        return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:                                                       return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT";
+               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_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:                                         return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES";
+               case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:                          return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO";
+               case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:                         return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV:                       return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV";
+               case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV:                      return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV:                                                                     return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV:                                                           return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_GEOMETRY_NV:                                                                                                                     return "VK_STRUCTURE_TYPE_GEOMETRY_NV";
+               case VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV:                                                                                           return "VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV";
+               case VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV:                                                                                                        return "VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV";
+               case VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV:                                                      return "VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV";
+               case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:                                          return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV";
+               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV:                                      return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV";
+               case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV:                                                         return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV:                                                                          return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV";
+               case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:                      return "VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES";
+               case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT:                                                                           return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT";
+               case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:                                     return "VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR:                                            return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES";
+               case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT";
+               case VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR";
+               case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:                                                       return "VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD";
+               case VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD";
+               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT";
+               case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:                                            return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT:                                     return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:                                                                                         return "VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP";
+               case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO:                                                          return "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:                                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES";
+               case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:                                                       return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV";
+               case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:                        return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV";
+               case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV:                                                                                                      return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV";
+               case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:                                                           return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES";
+               case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:                                                                                      return "VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:                                                                          return "VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO";
+               case VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO:                                                                                                     return "VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO";
+               case VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO:                                                                                           return "VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL";
+               case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:                                          return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL";
+               case VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL:                                                           return "VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL";
+               case VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL:                                                                           return "VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL";
+               case VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL:                                                            return "VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL";
+               case VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL:                                                                         return "VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL";
+               case VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL:                                            return "VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:                                                     return "VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD";
+               case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:                                            return "VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD";
+               case VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES";
+               case VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT:                                        return "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES";
+               case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO:                        return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES";
+               case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:                                                       return "VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:                            return "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:                                            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:                                                                       return "VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:                                                                      return "VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES";
+               case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:                                                                     return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT";
+               case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:                                                           return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO:                                                                                      return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO";
+               case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:                                                           return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES:                                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES";
+               case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:                                                                         return "VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:                                                                                         return "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV";
+               case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV:                                                                        return "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV";
+               case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:                                        return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV:                                                        return "VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:           return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:                                                          return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:                                            return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT";
+               case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:                                          return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT";
+               case VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES";
+               case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:                                                       return "VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:                                                     return "VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO";
+               case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO:                                                       return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:                                       return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR";
+               case VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR:                                                                                                       return "VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR:                                                                      return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR:                                                                            return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR:                                                                       return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR";
+               case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR:                                         return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV";
+               case VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV:                                                            return "VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:                                          return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV:                                                                       return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV";
+               case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV:                                                         return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV:                                                                                      return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV";
+               case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV:                                          return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV";
+               case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:                                     return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES";
+               case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:                      return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM";
+               case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:                                                           return "VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:                                                     return "VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT:                                                          return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:                                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:                                                     return "VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR:                                                                        return "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:                                                                                                          return "VK_STRUCTURE_TYPE_PRESENT_ID_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:                                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES";
+               case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO:                                                                         return "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO:                                                                           return "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR:                                                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:                                                                      return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR:                                                        return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR";
+               case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR:                                                                           return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV";
+               case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:                                                        return "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT";
+               case VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT:                                                                            return "VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT:                                                                     return "VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT:                                                                            return "VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT";
+               case VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT:                                                                            return "VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT";
+               case VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT:                                                                           return "VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT";
+               case VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT";
+               case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2:                                                                                                        return "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2";
+               case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2:                                                                                         return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2";
+               case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2:                                                                                          return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2";
+               case VK_STRUCTURE_TYPE_DEPENDENCY_INFO:                                                                                                         return "VK_STRUCTURE_TYPE_DEPENDENCY_INFO";
+               case VK_STRUCTURE_TYPE_SUBMIT_INFO_2:                                                                                                           return "VK_STRUCTURE_TYPE_SUBMIT_INFO_2";
+               case VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO:                                                                                           return "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO";
+               case VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO:                                                                                      return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES";
+               case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:                                                         return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV";
+               case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV:                                                                                            return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT:                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT:                                                       return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD:       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR:                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR:       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV";
+               case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV:                        return "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV";
+               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:                        return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV";
+               case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:                                                           return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:                                                                        return "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR";
+               case VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2:                                                                                                      return "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2";
+               case VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2:                                                                                                       return "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2";
+               case VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2:                                                                                     return "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2";
+               case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2:                                                                                     return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2";
+               case VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2:                                                                                                       return "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2";
+               case VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2:                                                                                            return "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2";
+               case VK_STRUCTURE_TYPE_BUFFER_COPY_2:                                                                                                           return "VK_STRUCTURE_TYPE_BUFFER_COPY_2";
+               case VK_STRUCTURE_TYPE_IMAGE_COPY_2:                                                                                                            return "VK_STRUCTURE_TYPE_IMAGE_COPY_2";
+               case VK_STRUCTURE_TYPE_IMAGE_BLIT_2:                                                                                                            return "VK_STRUCTURE_TYPE_IMAGE_BLIT_2";
+               case VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2:                                                                                                     return "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2";
+               case VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2:                                                                                                         return "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT:                                                                           return "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT";
+               case VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT:                                                                                        return "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT";
+               case VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT:                                                                                         return "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT";
+               case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT:                                                                        return "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM:      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT:                                                                        return "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:                                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE";
+               case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE:                                                       return "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT:                                                          return "VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT";
+               case VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT:                                                        return "VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:                                                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT:                            return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3:                                                                                                     return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3";
+               case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:                                                        return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA";
+               case VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA:                                                         return "VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA";
+               case VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
+               case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA:                                                     return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA";
+               case VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA:                                                        return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
+               case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA";
+               case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:                                                         return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA";
+               case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:                                                     return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA";
+               case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA:                                                            return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA";
+               case VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA:                                                                         return "VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA";
+               case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:                                            return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA";
+               case VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA:                                                                          return "VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA";
+               case VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA:                                                           return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA";
+               case VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA:                                                                                      return "VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA";
+               case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA:                                                      return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA";
+               case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:                                                     return "VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI";
+               case VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV:                                                                       return "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV";
+               case VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT:                                                                      return "VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT:      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT:                                                           return "VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT";
+               case VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT:                                          return "VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX:                                                                          return "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:                                                            return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR:                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR";
+               case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR:                                                     return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT:                                                                      return "VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:                                                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:                                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:                                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:                          return "VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:                                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES:                                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES";
+               case VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS:                                                                       return "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS";
+               case VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS:                                                                        return "VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE:                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE";
+               case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE:                                                          return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE";
+               case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE:                                           return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT:                                      return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM:                       return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM:                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM";
+               case VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM:                                       return "VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT:        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM:                                          return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM:                                        return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM";
+               case VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM:                                                       return "VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT:                                     return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT:                                                                        return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT";
+               case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT:                                           return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT:                                            return "VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT:                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT:                         return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT";
+               case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT:                         return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT";
+               case VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT:                                                                            return "VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM:                                           return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM";
+               case VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM:                                                                                            return "VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM";
+               default:                                                                                                                                                                        return DE_NULL;
        }
 }
 
-const char* getQueueGlobalPriorityKHRName (VkQueueGlobalPriorityKHR value)
+const char* getSystemAllocationScopeName (VkSystemAllocationScope value)
 {
        switch (value)
        {
-               case VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR:          return "VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR";
-               case VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR:       return "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR";
-               case VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR:         return "VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR";
-               case VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR:     return "VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR";
-               case VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR:     return "VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR";
+               case VK_SYSTEM_ALLOCATION_SCOPE_COMMAND:        return "VK_SYSTEM_ALLOCATION_SCOPE_COMMAND";
+               case VK_SYSTEM_ALLOCATION_SCOPE_OBJECT:         return "VK_SYSTEM_ALLOCATION_SCOPE_OBJECT";
+               case VK_SYSTEM_ALLOCATION_SCOPE_CACHE:          return "VK_SYSTEM_ALLOCATION_SCOPE_CACHE";
+               case VK_SYSTEM_ALLOCATION_SCOPE_DEVICE:         return "VK_SYSTEM_ALLOCATION_SCOPE_DEVICE";
+               case VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE:       return "VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE";
                default:                                                                        return DE_NULL;
        }
 }
 
-const char* getFragmentShadingRateCombinerOpKHRName (VkFragmentShadingRateCombinerOpKHR value)
-{
-       switch (value)
-       {
-               case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR:             return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR";
-               case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR:  return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR";
-               case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR:              return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR";
-               case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR:              return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR";
-               case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR:              return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR";
-               case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR: return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR";
-               default:                                                                                                return DE_NULL;
-       }
-}
-
-const char* getPipelineExecutableStatisticFormatKHRName (VkPipelineExecutableStatisticFormatKHR value)
+const char* getInternalAllocationTypeName (VkInternalAllocationType value)
 {
        switch (value)
        {
-               case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR:        return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR";
-               case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR:         return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR";
-               case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR:        return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR";
-               case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR:       return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR";
-               case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR:      return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR";
-               default:                                                                                                        return DE_NULL;
+               case VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE:    return "VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE";
+               default:                                                                                return DE_NULL;
        }
 }
 
-const char* getDebugReportObjectTypeEXTName (VkDebugReportObjectTypeEXT value)
+const char* getSamplerAddressModeName (VkSamplerAddressMode value)
 {
        switch (value)
        {
-               case VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT:                                           return "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT:                                          return "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT:                                            return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT:                                         return "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT:                            return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT:                                            return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT:                                        return "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT:                                        return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT:                            return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT:                                          return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT:                     return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT:                                           return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT:                            return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT:                                      return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT:         return "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_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_VALIDATION_CACHE_EXT_EXT:                      return "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT:          return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT:        return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT:        return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT:         return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT:         return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT";
-               case VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT:                                          return "VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT";
-               default:                                                                                                                        return DE_NULL;
+               case VK_SAMPLER_ADDRESS_MODE_REPEAT:                            return "VK_SAMPLER_ADDRESS_MODE_REPEAT";
+               case VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT:           return "VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT";
+               case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE:                     return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE";
+               case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER:           return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER";
+               case VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE:      return "VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE";
+               default:                                                                                        return DE_NULL;
        }
 }
 
-const char* getRasterizationOrderAMDName (VkRasterizationOrderAMD value)
+const char* getFilterName (VkFilter 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";
-               case VK_RASTERIZATION_ORDER_MAX_ENUM_AMD:       return "VK_RASTERIZATION_ORDER_MAX_ENUM_AMD";
-               default:                                                                        return DE_NULL;
+               case VK_FILTER_NEAREST:         return "VK_FILTER_NEAREST";
+               case VK_FILTER_LINEAR:          return "VK_FILTER_LINEAR";
+               case VK_FILTER_CUBIC_EXT:       return "VK_FILTER_CUBIC_EXT";
+               default:                                        return DE_NULL;
        }
 }
 
-const char* getShaderInfoTypeAMDName (VkShaderInfoTypeAMD value)
+const char* getSamplerMipmapModeName (VkSamplerMipmapMode value)
 {
        switch (value)
        {
-               case VK_SHADER_INFO_TYPE_STATISTICS_AMD:        return "VK_SHADER_INFO_TYPE_STATISTICS_AMD";
-               case VK_SHADER_INFO_TYPE_BINARY_AMD:            return "VK_SHADER_INFO_TYPE_BINARY_AMD";
-               case VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD:       return "VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD";
-               case VK_SHADER_INFO_TYPE_MAX_ENUM_AMD:          return "VK_SHADER_INFO_TYPE_MAX_ENUM_AMD";
-               default:                                                                        return DE_NULL;
+               case VK_SAMPLER_MIPMAP_MODE_NEAREST:    return "VK_SAMPLER_MIPMAP_MODE_NEAREST";
+               case VK_SAMPLER_MIPMAP_MODE_LINEAR:             return "VK_SAMPLER_MIPMAP_MODE_LINEAR";
+               default:                                                                return DE_NULL;
        }
 }
 
-const char* getValidationCheckEXTName (VkValidationCheckEXT value)
+const char* getVertexInputRateName (VkVertexInputRate 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";
-               case VK_VALIDATION_CHECK_MAX_ENUM_EXT:  return "VK_VALIDATION_CHECK_MAX_ENUM_EXT";
-               default:                                                                return DE_NULL;
+               case VK_VERTEX_INPUT_RATE_VERTEX:       return "VK_VERTEX_INPUT_RATE_VERTEX";
+               case VK_VERTEX_INPUT_RATE_INSTANCE:     return "VK_VERTEX_INPUT_RATE_INSTANCE";
+               default:                                                        return DE_NULL;
        }
 }
 
-const char* getPipelineRobustnessBufferBehaviorEXTName (VkPipelineRobustnessBufferBehaviorEXT value)
+tcu::Format::Bitfield<32> getPipelineStageFlagsStr (VkPipelineStageFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT:                 return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT";
-               case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT:                               return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT";
-               case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT:   return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT";
-               case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT: return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT";
-               case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT:                               return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT";
-               default:                                                                                                                                return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,                                                         "VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_NONE,                                                                            "VK_PIPELINE_STAGE_NONE"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,                                                       "VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,                                                        "VK_PIPELINE_STAGE_VERTEX_INPUT_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,                                                       "VK_PIPELINE_STAGE_VERTEX_SHADER_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,                         "VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,                      "VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,                                                     "VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,                                                     "VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,                                        "VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,                                         "VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,                                     "VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,                                                      "VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFER_BIT,                                                            "VK_PIPELINE_STAGE_TRANSFER_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,                                                      "VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT"),
+               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_PREPROCESS_BIT_NV,                                       "VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,                           "VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,                                                      "VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,                                                      "VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,                                      "VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,        "VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,                        "VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,                                      "VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,            "VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getPipelineRobustnessImageBehaviorEXTName (VkPipelineRobustnessImageBehaviorEXT value)
+tcu::Format::Bitfield<32> getSparseImageFormatFlagsStr (VkSparseImageFormatFlags value)
 {
-       switch (value)
-       {
-               case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT:                  return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT";
-               case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT:                                return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT";
-               case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT:             return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT";
-               case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT:   return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT";
-               case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT:                                return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT";
-               default:                                                                                                                                return DE_NULL;
-       }
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,                 "VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT"),
+               tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,               "VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT"),
+               tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT, "VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getDisplayPowerStateEXTName (VkDisplayPowerStateEXT value)
+tcu::Format::Bitfield<32> getSampleCountFlagsStr (VkSampleCountFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               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";
-               case VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT:       return "VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT";
-               default:                                                                        return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_SAMPLE_COUNT_1_BIT,             "VK_SAMPLE_COUNT_1_BIT"),
+               tcu::Format::BitDesc(VK_SAMPLE_COUNT_2_BIT,             "VK_SAMPLE_COUNT_2_BIT"),
+               tcu::Format::BitDesc(VK_SAMPLE_COUNT_4_BIT,             "VK_SAMPLE_COUNT_4_BIT"),
+               tcu::Format::BitDesc(VK_SAMPLE_COUNT_8_BIT,             "VK_SAMPLE_COUNT_8_BIT"),
+               tcu::Format::BitDesc(VK_SAMPLE_COUNT_16_BIT,    "VK_SAMPLE_COUNT_16_BIT"),
+               tcu::Format::BitDesc(VK_SAMPLE_COUNT_32_BIT,    "VK_SAMPLE_COUNT_32_BIT"),
+               tcu::Format::BitDesc(VK_SAMPLE_COUNT_64_BIT,    "VK_SAMPLE_COUNT_64_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getDeviceEventTypeEXTName (VkDeviceEventTypeEXT value)
+tcu::Format::Bitfield<32> getAttachmentDescriptionFlagsStr (VkAttachmentDescriptionFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT:  return "VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT";
-               case VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT:                 return "VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT";
-               default:                                                                                return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT,   "VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getDisplayEventTypeEXTName (VkDisplayEventTypeEXT value)
+tcu::Format::Bitfield<32> getDescriptorPoolCreateFlagsStr (VkDescriptorPoolCreateFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT: return "VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT";
-               case VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT:                return "VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT";
-               default:                                                                                return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, "VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT"),
+               tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,   "VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT"),
+               tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE,             "VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getViewportCoordinateSwizzleNVName (VkViewportCoordinateSwizzleNV value)
+tcu::Format::Bitfield<32> getDependencyFlagsStr (VkDependencyFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               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";
-               case VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV:        return "VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV";
-               default:                                                                                        return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_DEPENDENCY_BY_REGION_BIT,               "VK_DEPENDENCY_BY_REGION_BIT"),
+               tcu::Format::BitDesc(VK_DEPENDENCY_VIEW_LOCAL_BIT,              "VK_DEPENDENCY_VIEW_LOCAL_BIT"),
+               tcu::Format::BitDesc(VK_DEPENDENCY_DEVICE_GROUP_BIT,    "VK_DEPENDENCY_DEVICE_GROUP_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getDiscardRectangleModeEXTName (VkDiscardRectangleModeEXT value)
+const char* getObjectTypeName (VkObjectType value)
 {
        switch (value)
        {
-               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";
-               case VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT:    return "VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT";
-               default:                                                                                return DE_NULL;
+               case VK_OBJECT_TYPE_UNKNOWN:                                                    return "VK_OBJECT_TYPE_UNKNOWN";
+               case VK_OBJECT_TYPE_INSTANCE:                                                   return "VK_OBJECT_TYPE_INSTANCE";
+               case VK_OBJECT_TYPE_PHYSICAL_DEVICE:                                    return "VK_OBJECT_TYPE_PHYSICAL_DEVICE";
+               case VK_OBJECT_TYPE_DEVICE:                                                             return "VK_OBJECT_TYPE_DEVICE";
+               case VK_OBJECT_TYPE_QUEUE:                                                              return "VK_OBJECT_TYPE_QUEUE";
+               case VK_OBJECT_TYPE_SEMAPHORE:                                                  return "VK_OBJECT_TYPE_SEMAPHORE";
+               case VK_OBJECT_TYPE_COMMAND_BUFFER:                                             return "VK_OBJECT_TYPE_COMMAND_BUFFER";
+               case VK_OBJECT_TYPE_FENCE:                                                              return "VK_OBJECT_TYPE_FENCE";
+               case VK_OBJECT_TYPE_DEVICE_MEMORY:                                              return "VK_OBJECT_TYPE_DEVICE_MEMORY";
+               case VK_OBJECT_TYPE_BUFFER:                                                             return "VK_OBJECT_TYPE_BUFFER";
+               case VK_OBJECT_TYPE_IMAGE:                                                              return "VK_OBJECT_TYPE_IMAGE";
+               case VK_OBJECT_TYPE_EVENT:                                                              return "VK_OBJECT_TYPE_EVENT";
+               case VK_OBJECT_TYPE_QUERY_POOL:                                                 return "VK_OBJECT_TYPE_QUERY_POOL";
+               case VK_OBJECT_TYPE_BUFFER_VIEW:                                                return "VK_OBJECT_TYPE_BUFFER_VIEW";
+               case VK_OBJECT_TYPE_IMAGE_VIEW:                                                 return "VK_OBJECT_TYPE_IMAGE_VIEW";
+               case VK_OBJECT_TYPE_SHADER_MODULE:                                              return "VK_OBJECT_TYPE_SHADER_MODULE";
+               case VK_OBJECT_TYPE_PIPELINE_CACHE:                                             return "VK_OBJECT_TYPE_PIPELINE_CACHE";
+               case VK_OBJECT_TYPE_PIPELINE_LAYOUT:                                    return "VK_OBJECT_TYPE_PIPELINE_LAYOUT";
+               case VK_OBJECT_TYPE_RENDER_PASS:                                                return "VK_OBJECT_TYPE_RENDER_PASS";
+               case VK_OBJECT_TYPE_PIPELINE:                                                   return "VK_OBJECT_TYPE_PIPELINE";
+               case VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT:                              return "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT";
+               case VK_OBJECT_TYPE_SAMPLER:                                                    return "VK_OBJECT_TYPE_SAMPLER";
+               case VK_OBJECT_TYPE_DESCRIPTOR_POOL:                                    return "VK_OBJECT_TYPE_DESCRIPTOR_POOL";
+               case VK_OBJECT_TYPE_DESCRIPTOR_SET:                                             return "VK_OBJECT_TYPE_DESCRIPTOR_SET";
+               case VK_OBJECT_TYPE_FRAMEBUFFER:                                                return "VK_OBJECT_TYPE_FRAMEBUFFER";
+               case VK_OBJECT_TYPE_COMMAND_POOL:                                               return "VK_OBJECT_TYPE_COMMAND_POOL";
+               case VK_OBJECT_TYPE_SURFACE_KHR:                                                return "VK_OBJECT_TYPE_SURFACE_KHR";
+               case VK_OBJECT_TYPE_SWAPCHAIN_KHR:                                              return "VK_OBJECT_TYPE_SWAPCHAIN_KHR";
+               case VK_OBJECT_TYPE_DISPLAY_KHR:                                                return "VK_OBJECT_TYPE_DISPLAY_KHR";
+               case VK_OBJECT_TYPE_DISPLAY_MODE_KHR:                                   return "VK_OBJECT_TYPE_DISPLAY_MODE_KHR";
+               case VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT:                  return "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT";
+               case VK_OBJECT_TYPE_VIDEO_SESSION_KHR:                                  return "VK_OBJECT_TYPE_VIDEO_SESSION_KHR";
+               case VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR:               return "VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR";
+               case VK_OBJECT_TYPE_CU_MODULE_NVX:                                              return "VK_OBJECT_TYPE_CU_MODULE_NVX";
+               case VK_OBJECT_TYPE_CU_FUNCTION_NVX:                                    return "VK_OBJECT_TYPE_CU_FUNCTION_NVX";
+               case VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE:                 return "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE";
+               case VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT:                  return "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT";
+               case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR:                 return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR";
+               case VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION:                   return "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION";
+               case VK_OBJECT_TYPE_VALIDATION_CACHE_EXT:                               return "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT";
+               case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV:                  return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV";
+               case VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL:    return "VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL";
+               case VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR:                             return "VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR";
+               case VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV:                return "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV";
+               case VK_OBJECT_TYPE_PRIVATE_DATA_SLOT:                                  return "VK_OBJECT_TYPE_PRIVATE_DATA_SLOT";
+               case VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA:                  return "VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA";
+               default:                                                                                                return DE_NULL;
        }
 }
 
-const char* getConservativeRasterizationModeEXTName (VkConservativeRasterizationModeEXT value)
+tcu::Format::Bitfield<32> getEventCreateFlagsStr (VkEventCreateFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT:           return "VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT";
-               case VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT:       return "VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT";
-               case VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT:      return "VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT";
-               case VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT:           return "VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT";
-               default:                                                                                                        return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_EVENT_CREATE_DEVICE_ONLY_BIT,   "VK_EVENT_CREATE_DEVICE_ONLY_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getBlendOverlapEXTName (VkBlendOverlapEXT value)
+tcu::Format::Bitfield<32> getPipelineLayoutCreateFlagsStr (VkPipelineLayoutCreateFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               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";
-               case VK_BLEND_OVERLAP_MAX_ENUM_EXT:             return "VK_BLEND_OVERLAP_MAX_ENUM_EXT";
-               default:                                                                return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT,        "VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getCoverageModulationModeNVName (VkCoverageModulationModeNV value)
+tcu::Format::Bitfield<32> getIndirectCommandsLayoutUsageFlagsNVStr (VkIndirectCommandsLayoutUsageFlagsNV value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               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";
-               case VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV:   return "VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV";
-               default:                                                                                return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,      "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV"),
+               tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,        "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV"),
+               tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV,      "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getValidationCacheHeaderVersionEXTName (VkValidationCacheHeaderVersionEXT value)
+const char* getIndirectCommandsTokenTypeNVName (VkIndirectCommandsTokenTypeNV value)
 {
        switch (value)
        {
-               case VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT:                return "VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT";
-               case VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT:   return "VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT";
+               case VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV:   return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV";
+               case VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV:    return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV";
+               case VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV:   return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV";
+               case VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV:  return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV";
+               case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV:  return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV";
+               case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV:   return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV";
+               case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV:                   return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV";
+               case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV:             return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV";
                default:                                                                                                return DE_NULL;
        }
 }
 
-const char* getShadingRatePaletteEntryNVName (VkShadingRatePaletteEntryNV value)
+tcu::Format::Bitfield<32> getIndirectStateFlagsNVStr (VkIndirectStateFlagsNV value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV:                           return "VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV";
-               case VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV:         return "VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV";
-               case VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV:          return "VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV";
-               case VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV:          return "VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV";
-               case VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV:          return "VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV";
-               case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV:           return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV";
-               case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV";
-               case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV";
-               case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV";
-               case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV";
-               case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV";
-               case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV";
-               case VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV:                                         return "VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV";
-               default:                                                                                                                        return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV,   "VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getCoarseSampleOrderTypeNVName (VkCoarseSampleOrderTypeNV value)
+const char* getDescriptorUpdateTemplateTypeName (VkDescriptorUpdateTemplateType value)
 {
        switch (value)
        {
-               case VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV:            return "VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV";
-               case VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV:                     return "VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV";
-               case VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV:        return "VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV";
-               case VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV:       return "VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV";
-               case VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV:           return "VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV";
-               default:                                                                                        return DE_NULL;
+               case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET:                 return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET";
+               case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR:   return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR";
+               default:                                                                                                                return DE_NULL;
        }
 }
 
-const char* getRayTracingShaderGroupTypeKHRName (VkRayTracingShaderGroupTypeKHR value)
+const char* getViewportCoordinateSwizzleNVName (VkViewportCoordinateSwizzleNV value)
 {
        switch (value)
        {
-               case VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR:                              return "VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR";
-               case VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR:  return "VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR";
-               case VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR: return "VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR";
-               case VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR:                             return "VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR";
-               default:                                                                                                                return DE_NULL;
+               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* getGeometryTypeKHRName (VkGeometryTypeKHR value)
+const char* getDiscardRectangleModeEXTName (VkDiscardRectangleModeEXT value)
 {
        switch (value)
        {
-               case VK_GEOMETRY_TYPE_TRIANGLES_KHR:    return "VK_GEOMETRY_TYPE_TRIANGLES_KHR";
-               case VK_GEOMETRY_TYPE_AABBS_KHR:                return "VK_GEOMETRY_TYPE_AABBS_KHR";
-               case VK_GEOMETRY_TYPE_INSTANCES_KHR:    return "VK_GEOMETRY_TYPE_INSTANCES_KHR";
-               case VK_GEOMETRY_TYPE_MAX_ENUM_KHR:             return "VK_GEOMETRY_TYPE_MAX_ENUM_KHR";
-               default:                                                                return DE_NULL;
+               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* getAccelerationStructureTypeKHRName (VkAccelerationStructureTypeKHR value)
+tcu::Format::Bitfield<32> getSubpassDescriptionFlagsStr (VkSubpassDescriptionFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR:              return "VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR";
-               case VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR:   return "VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR";
-               case VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR:                return "VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR";
-               case VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR:               return "VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR";
-               default:                                                                                                return DE_NULL;
-       }
+               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"),
+               tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,                                                           "VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM"),
+               tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM,                                                            "VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM"),
+               tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM,        "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM"),
+               tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM,        "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM"),
+               tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM,      "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getCopyAccelerationStructureModeKHRName (VkCopyAccelerationStructureModeKHR value)
+const char* getPointClippingBehaviorName (VkPointClippingBehavior value)
 {
        switch (value)
        {
-               case VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR:                     return "VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR";
-               case VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR:           return "VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR";
-               case VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR:         return "VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR";
-               case VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR:       return "VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR";
-               case VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR:          return "VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR";
-               default:                                                                                                        return DE_NULL;
+               case VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES:                return "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES";
+               case VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY:  return "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY";
+               default:                                                                                                return DE_NULL;
        }
 }
 
-const char* getAccelerationStructureMemoryRequirementsTypeNVName (VkAccelerationStructureMemoryRequirementsTypeNV value)
+const char* getCoverageModulationModeNVName (VkCoverageModulationModeNV value)
 {
        switch (value)
        {
-               case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV:                      return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV";
-               case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV:       return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV";
-               case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV:      return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV";
-               case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV:            return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV";
-               default:                                                                                                                                        return DE_NULL;
+               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;
        }
 }
 
-const char* getTimeDomainEXTName (VkTimeDomainEXT value)
+const char* getCoverageReductionModeNVName (VkCoverageReductionModeNV value)
 {
        switch (value)
        {
-               case VK_TIME_DOMAIN_DEVICE_EXT:                                         return "VK_TIME_DOMAIN_DEVICE_EXT";
-               case VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT:                        return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT";
-               case VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT:            return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT";
-               case VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT:      return "VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT";
-               case VK_TIME_DOMAIN_MAX_ENUM_EXT:                                       return "VK_TIME_DOMAIN_MAX_ENUM_EXT";
-               default:                                                                                        return DE_NULL;
+               case VK_COVERAGE_REDUCTION_MODE_MERGE_NV:               return "VK_COVERAGE_REDUCTION_MODE_MERGE_NV";
+               case VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV:    return "VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV";
+               default:                                                                                return DE_NULL;
        }
 }
 
-const char* getMemoryOverallocationBehaviorAMDName (VkMemoryOverallocationBehaviorAMD value)
+const char* getValidationCacheHeaderVersionEXTName (VkValidationCacheHeaderVersionEXT value)
 {
        switch (value)
        {
-               case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD:             return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD";
-               case VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD:             return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD";
-               case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD:  return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD";
-               case VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD:    return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD";
-               default:                                                                                                return DE_NULL;
+               case VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT:        return "VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT";
+               default:                                                                                        return DE_NULL;
        }
 }
 
-const char* getPerformanceConfigurationTypeINTELName (VkPerformanceConfigurationTypeINTEL value)
+const char* getShaderInfoTypeAMDName (VkShaderInfoTypeAMD value)
 {
        switch (value)
        {
-               case VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL: return "VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL";
-               case VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL:                                                                  return "VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL";
-               default:                                                                                                                                                                return DE_NULL;
+               case VK_SHADER_INFO_TYPE_STATISTICS_AMD:        return "VK_SHADER_INFO_TYPE_STATISTICS_AMD";
+               case VK_SHADER_INFO_TYPE_BINARY_AMD:            return "VK_SHADER_INFO_TYPE_BINARY_AMD";
+               case VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD:       return "VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD";
+               default:                                                                        return DE_NULL;
        }
 }
 
-const char* getQueryPoolSamplingModeINTELName (VkQueryPoolSamplingModeINTEL value)
+const char* getQueueGlobalPriorityKHRName (VkQueueGlobalPriorityKHR value)
 {
        switch (value)
        {
-               case VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL:          return "VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL";
-               case VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL:        return "VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL";
-               default:                                                                                        return DE_NULL;
+               case VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR:          return "VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR";
+               case VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR:       return "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR";
+               case VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR:         return "VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR";
+               case VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR:     return "VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR";
+               default:                                                                        return DE_NULL;
        }
 }
 
-const char* getPerformanceOverrideTypeINTELName (VkPerformanceOverrideTypeINTEL value)
+const char* getTimeDomainEXTName (VkTimeDomainEXT value)
 {
        switch (value)
        {
-               case VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL:          return "VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL";
-               case VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL:       return "VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL";
-               case VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL:                       return "VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL";
-               default:                                                                                                        return DE_NULL;
+               case VK_TIME_DOMAIN_DEVICE_EXT:                                         return "VK_TIME_DOMAIN_DEVICE_EXT";
+               case VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT:                        return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT";
+               case VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT:            return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT";
+               case VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT:      return "VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT";
+               default:                                                                                        return DE_NULL;
        }
 }
 
-const char* getPerformanceParameterTypeINTELName (VkPerformanceParameterTypeINTEL value)
+const char* getConservativeRasterizationModeEXTName (VkConservativeRasterizationModeEXT value)
 {
        switch (value)
        {
-               case VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL:         return "VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL";
-               case VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL:      return "VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL";
-               case VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL:                                      return "VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL";
-               default:                                                                                                                        return DE_NULL;
+               case VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT:           return "VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT";
+               case VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT:       return "VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT";
+               case VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT:      return "VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT";
+               default:                                                                                                        return DE_NULL;
        }
 }
 
-const char* getPerformanceValueTypeINTELName (VkPerformanceValueTypeINTEL value)
+tcu::Format::Bitfield<32> getResolveModeFlagsStr (VkResolveModeFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL:    return "VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL";
-               case VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL:    return "VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL";
-               case VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL:             return "VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL";
-               case VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL:              return "VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL";
-               case VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL:    return "VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL";
-               case VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL:  return "VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL";
-               default:                                                                                return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_RESOLVE_MODE_NONE,                              "VK_RESOLVE_MODE_NONE"),
+               tcu::Format::BitDesc(VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,   "VK_RESOLVE_MODE_SAMPLE_ZERO_BIT"),
+               tcu::Format::BitDesc(VK_RESOLVE_MODE_AVERAGE_BIT,               "VK_RESOLVE_MODE_AVERAGE_BIT"),
+               tcu::Format::BitDesc(VK_RESOLVE_MODE_MIN_BIT,                   "VK_RESOLVE_MODE_MIN_BIT"),
+               tcu::Format::BitDesc(VK_RESOLVE_MODE_MAX_BIT,                   "VK_RESOLVE_MODE_MAX_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getValidationFeatureEnableEXTName (VkValidationFeatureEnableEXT value)
+tcu::Format::Bitfield<32> getDescriptorBindingFlagsStr (VkDescriptorBindingFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT:                                                     return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT";
-               case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT:        return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT";
-               case VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT:                                           return "VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT";
-               case VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT:                                                     return "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT";
-               case VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT:                       return "VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT";
-               case VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT:                                                         return "VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT";
-               default:                                                                                                                                        return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,                       "VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT"),
+               tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,     "VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT"),
+               tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,                         "VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT"),
+               tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,       "VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getValidationFeatureDisableEXTName (VkValidationFeatureDisableEXT value)
+tcu::Format::Bitfield<32> getConditionalRenderingFlagsEXTStr (VkConditionalRenderingFlagsEXT value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_VALIDATION_FEATURE_DISABLE_ALL_EXT:                                             return "VK_VALIDATION_FEATURE_DISABLE_ALL_EXT";
-               case VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT:                                 return "VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT";
-               case VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT:                   return "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT";
-               case VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT:                  return "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT";
-               case VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT:                return "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT";
-               case VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT:                             return "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT";
-               case VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT:                  return "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT";
-               case VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT: return "VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT";
-               case VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT:                                return "VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT";
-               default:                                                                                                                return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT, "VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getComponentTypeNVName (VkComponentTypeNV value)
+const char* getSemaphoreTypeName (VkSemaphoreType value)
 {
        switch (value)
        {
-               case VK_COMPONENT_TYPE_FLOAT16_NV:      return "VK_COMPONENT_TYPE_FLOAT16_NV";
-               case VK_COMPONENT_TYPE_FLOAT32_NV:      return "VK_COMPONENT_TYPE_FLOAT32_NV";
-               case VK_COMPONENT_TYPE_FLOAT64_NV:      return "VK_COMPONENT_TYPE_FLOAT64_NV";
-               case VK_COMPONENT_TYPE_SINT8_NV:        return "VK_COMPONENT_TYPE_SINT8_NV";
-               case VK_COMPONENT_TYPE_SINT16_NV:       return "VK_COMPONENT_TYPE_SINT16_NV";
-               case VK_COMPONENT_TYPE_SINT32_NV:       return "VK_COMPONENT_TYPE_SINT32_NV";
-               case VK_COMPONENT_TYPE_SINT64_NV:       return "VK_COMPONENT_TYPE_SINT64_NV";
-               case VK_COMPONENT_TYPE_UINT8_NV:        return "VK_COMPONENT_TYPE_UINT8_NV";
-               case VK_COMPONENT_TYPE_UINT16_NV:       return "VK_COMPONENT_TYPE_UINT16_NV";
-               case VK_COMPONENT_TYPE_UINT32_NV:       return "VK_COMPONENT_TYPE_UINT32_NV";
-               case VK_COMPONENT_TYPE_UINT64_NV:       return "VK_COMPONENT_TYPE_UINT64_NV";
-               case VK_COMPONENT_TYPE_MAX_ENUM_NV:     return "VK_COMPONENT_TYPE_MAX_ENUM_NV";
+               case VK_SEMAPHORE_TYPE_BINARY:          return "VK_SEMAPHORE_TYPE_BINARY";
+               case VK_SEMAPHORE_TYPE_TIMELINE:        return "VK_SEMAPHORE_TYPE_TIMELINE";
                default:                                                        return DE_NULL;
        }
 }
 
-const char* getScopeNVName (VkScopeNV value)
+tcu::Format::Bitfield<32> getGeometryFlagsKHRStr (VkGeometryFlagsKHR value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_SCOPE_DEVICE_NV:                return "VK_SCOPE_DEVICE_NV";
-               case VK_SCOPE_WORKGROUP_NV:             return "VK_SCOPE_WORKGROUP_NV";
-               case VK_SCOPE_SUBGROUP_NV:              return "VK_SCOPE_SUBGROUP_NV";
-               case VK_SCOPE_QUEUE_FAMILY_NV:  return "VK_SCOPE_QUEUE_FAMILY_NV";
-               case VK_SCOPE_MAX_ENUM_NV:              return "VK_SCOPE_MAX_ENUM_NV";
-               default:                                                return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_GEOMETRY_OPAQUE_BIT_KHR,                                                        "VK_GEOMETRY_OPAQUE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,       "VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getCoverageReductionModeNVName (VkCoverageReductionModeNV value)
+tcu::Format::Bitfield<32> getGeometryInstanceFlagsKHRStr (VkGeometryInstanceFlagsKHR value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_COVERAGE_REDUCTION_MODE_MERGE_NV:               return "VK_COVERAGE_REDUCTION_MODE_MERGE_NV";
-               case VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV:    return "VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV";
-               case VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV:    return "VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV";
-               default:                                                                                return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR, "VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,                 "VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR"),
+               tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,                                 "VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,                              "VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getProvokingVertexModeEXTName (VkProvokingVertexModeEXT value)
+tcu::Format::Bitfield<32> getBuildAccelerationStructureFlagsKHRStr (VkBuildAccelerationStructureFlagsKHR value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT: return "VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT";
-               case VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT:  return "VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT";
-               case VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT:             return "VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT";
-               default:                                                                                return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,              "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,  "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"),
+               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR, "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR, "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"),
+               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,                "VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"),
+               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV,                             "VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getLineRasterizationModeEXTName (VkLineRasterizationModeEXT value)
+tcu::Format::Bitfield<32> getAccelerationStructureCreateFlagsKHRStr (VkAccelerationStructureCreateFlagsKHR value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT:                    return "VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT";
-               case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT:                return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT";
-               case VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT:                  return "VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT";
-               case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT: return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT";
-               case VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT:                   return "VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT";
-               default:                                                                                                return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,    "VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"),
+               tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV,                                                    "VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getIndirectCommandsTokenTypeNVName (VkIndirectCommandsTokenTypeNV value)
+const char* getBuildAccelerationStructureModeKHRName (VkBuildAccelerationStructureModeKHR value)
 {
        switch (value)
        {
-               case VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV:   return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV";
-               case VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV:    return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV";
-               case VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV:   return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV";
-               case VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV:  return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV";
-               case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV:  return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV";
-               case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV:   return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV";
-               case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV:                   return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV";
-               case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV:             return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV";
-               case VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV:               return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV";
+               case VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR:    return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR";
+               case VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR:   return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR";
                default:                                                                                                return DE_NULL;
        }
 }
 
-const char* getDeviceMemoryReportEventTypeEXTName (VkDeviceMemoryReportEventTypeEXT value)
+const char* getCopyAccelerationStructureModeKHRName (VkCopyAccelerationStructureModeKHR value)
 {
        switch (value)
        {
-               case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT:                   return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT";
-               case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT:                               return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT";
-               case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT:                             return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT";
-               case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT:                   return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT";
-               case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT:  return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT";
-               case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT:                   return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT";
-               default:                                                                                                                return DE_NULL;
+               case VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR:                     return "VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR";
+               case VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR:           return "VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR";
+               case VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR:         return "VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR";
+               case VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR:       return "VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR";
+               default:                                                                                                        return DE_NULL;
        }
 }
 
-const char* getFragmentShadingRateTypeNVName (VkFragmentShadingRateTypeNV value)
+const char* getAccelerationStructureTypeKHRName (VkAccelerationStructureTypeKHR value)
 {
        switch (value)
        {
-               case VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV:    return "VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV";
-               case VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV:                    return "VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV";
-               case VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV:                 return "VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV";
+               case VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR:              return "VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR";
+               case VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR:   return "VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR";
+               case VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR:                return "VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR";
                default:                                                                                                return DE_NULL;
        }
 }
 
-const char* getFragmentShadingRateNVName (VkFragmentShadingRateNV value)
+const char* getGeometryTypeKHRName (VkGeometryTypeKHR value)
 {
        switch (value)
        {
-               case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV:                return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV";
-               case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV";
-               case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV";
-               case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV";
-               case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV";
-               case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV";
-               case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV";
-               case VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV:               return "VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV";
-               case VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV:               return "VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV";
-               case VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV:               return "VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV";
-               case VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV:              return "VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV";
-               case VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV:                                return "VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV";
-               case VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV:                                              return "VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV";
-               default:                                                                                                                return DE_NULL;
+               case VK_GEOMETRY_TYPE_TRIANGLES_KHR:    return "VK_GEOMETRY_TYPE_TRIANGLES_KHR";
+               case VK_GEOMETRY_TYPE_AABBS_KHR:                return "VK_GEOMETRY_TYPE_AABBS_KHR";
+               case VK_GEOMETRY_TYPE_INSTANCES_KHR:    return "VK_GEOMETRY_TYPE_INSTANCES_KHR";
+               default:                                                                return DE_NULL;
        }
 }
 
-const char* getAccelerationStructureMotionInstanceTypeNVName (VkAccelerationStructureMotionInstanceTypeNV value)
+const char* getRayTracingShaderGroupTypeKHRName (VkRayTracingShaderGroupTypeKHR value)
 {
        switch (value)
        {
-               case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV:                  return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV";
-               case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV:   return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV";
-               case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV:              return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV";
-               case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV:                return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV";
-               default:                                                                                                                                return DE_NULL;
+               case VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR:                              return "VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR";
+               case VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR:  return "VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR";
+               case VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR: return "VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR";
+               default:                                                                                                                return DE_NULL;
        }
 }
 
-const char* getSubpassMergeStatusEXTName (VkSubpassMergeStatusEXT value)
+const char* getAccelerationStructureMemoryRequirementsTypeNVName (VkAccelerationStructureMemoryRequirementsTypeNV value)
 {
        switch (value)
        {
-               case VK_SUBPASS_MERGE_STATUS_MERGED_EXT:                                                                        return "VK_SUBPASS_MERGE_STATUS_MERGED_EXT";
-               case VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT:                                                            return "VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT";
-               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT:                                       return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT";
-               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT:                           return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT";
-               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT:                                     return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT";
-               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT:                                           return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT";
-               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT:                                       return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT";
-               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT:      return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT";
-               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT:                       return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT";
-               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT:                       return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT";
-               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT:                        return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT";
-               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT:           return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT";
-               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT:                                     return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT";
-               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT:                                        return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT";
-               case VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT:                                                                      return "VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT";
+               case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV:                      return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV";
+               case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV:       return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV";
+               case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV:      return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV";
                default:                                                                                                                                        return DE_NULL;
        }
 }
 
-const char* getBuildAccelerationStructureModeKHRName (VkBuildAccelerationStructureModeKHR value)
-{
-       switch (value)
-       {
-               case VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR:    return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR";
-               case VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR:   return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR";
-               case VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR: return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR";
-               default:                                                                                                return DE_NULL;
-       }
-}
-
 const char* getAccelerationStructureBuildTypeKHRName (VkAccelerationStructureBuildTypeKHR value)
 {
        switch (value)
@@ -2593,7 +2633,6 @@ const char* getAccelerationStructureBuildTypeKHRName (VkAccelerationStructureBui
                case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR:                             return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR";
                case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR:                   return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR";
                case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR:   return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR";
-               case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR:                 return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR";
                default:                                                                                                                return DE_NULL;
        }
 }
@@ -2604,7 +2643,6 @@ const char* getAccelerationStructureCompatibilityKHRName (VkAccelerationStructur
        {
                case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR:    return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR";
                case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR:  return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR";
-               case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR:              return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR";
                default:                                                                                                                return DE_NULL;
        }
 }
@@ -2617,1074 +2655,944 @@ const char* getShaderGroupShaderKHRName (VkShaderGroupShaderKHR value)
                case VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR:    return "VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR";
                case VK_SHADER_GROUP_SHADER_ANY_HIT_KHR:                return "VK_SHADER_GROUP_SHADER_ANY_HIT_KHR";
                case VK_SHADER_GROUP_SHADER_INTERSECTION_KHR:   return "VK_SHADER_GROUP_SHADER_INTERSECTION_KHR";
-               case VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR:               return "VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR";
                default:                                                                                return DE_NULL;
        }
 }
 
-const char* getQueryResultStatusKHRName (VkQueryResultStatusKHR value)
-{
-       switch (value)
-       {
-               case VK_QUERY_RESULT_STATUS_ERROR_KHR:          return "VK_QUERY_RESULT_STATUS_ERROR_KHR";
-               case VK_QUERY_RESULT_STATUS_NOT_READY_KHR:      return "VK_QUERY_RESULT_STATUS_NOT_READY_KHR";
-               case VK_QUERY_RESULT_STATUS_COMPLETE_KHR:       return "VK_QUERY_RESULT_STATUS_COMPLETE_KHR";
-               case VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR:       return "VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR";
-               default:                                                                        return DE_NULL;
-       }
-}
-
-const char* getdVideoH264ChromaFormatIdcName (StdVideoH264ChromaFormatIdc value)
+const char* getMemoryOverallocationBehaviorAMDName (VkMemoryOverallocationBehaviorAMD value)
 {
        switch (value)
        {
-               case STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME:       return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME";
-               case STD_VIDEO_H264_CHROMA_FORMAT_IDC_420:                      return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_420";
-               case STD_VIDEO_H264_CHROMA_FORMAT_IDC_422:                      return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_422";
-               case STD_VIDEO_H264_CHROMA_FORMAT_IDC_444:                      return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_444";
-               case STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID:          return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID";
-               default:                                                                                        return DE_NULL;
+               case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD:             return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD";
+               case VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD:             return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD";
+               case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD:  return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD";
+               default:                                                                                                return DE_NULL;
        }
 }
 
-const char* getdVideoH264ProfileIdcName (StdVideoH264ProfileIdc value)
+const char* getScopeNVName (VkScopeNV value)
 {
        switch (value)
        {
-               case STD_VIDEO_H264_PROFILE_IDC_BASELINE:                               return "STD_VIDEO_H264_PROFILE_IDC_BASELINE";
-               case STD_VIDEO_H264_PROFILE_IDC_MAIN:                                   return "STD_VIDEO_H264_PROFILE_IDC_MAIN";
-               case STD_VIDEO_H264_PROFILE_IDC_HIGH:                                   return "STD_VIDEO_H264_PROFILE_IDC_HIGH";
-               case STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE:    return "STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE";
-               case STD_VIDEO_H264_PROFILE_IDC_INVALID:                                return "STD_VIDEO_H264_PROFILE_IDC_INVALID";
-               default:                                                                                                return DE_NULL;
+               case VK_SCOPE_DEVICE_NV:                return "VK_SCOPE_DEVICE_NV";
+               case VK_SCOPE_WORKGROUP_NV:             return "VK_SCOPE_WORKGROUP_NV";
+               case VK_SCOPE_SUBGROUP_NV:              return "VK_SCOPE_SUBGROUP_NV";
+               case VK_SCOPE_QUEUE_FAMILY_NV:  return "VK_SCOPE_QUEUE_FAMILY_NV";
+               default:                                                return DE_NULL;
        }
 }
 
-const char* getdVideoH264LevelName (StdVideoH264Level value)
+const char* getComponentTypeNVName (VkComponentTypeNV value)
 {
        switch (value)
        {
-               case STD_VIDEO_H264_LEVEL_1_0:          return "STD_VIDEO_H264_LEVEL_1_0";
-               case STD_VIDEO_H264_LEVEL_1_1:          return "STD_VIDEO_H264_LEVEL_1_1";
-               case STD_VIDEO_H264_LEVEL_1_2:          return "STD_VIDEO_H264_LEVEL_1_2";
-               case STD_VIDEO_H264_LEVEL_1_3:          return "STD_VIDEO_H264_LEVEL_1_3";
-               case STD_VIDEO_H264_LEVEL_2_0:          return "STD_VIDEO_H264_LEVEL_2_0";
-               case STD_VIDEO_H264_LEVEL_2_1:          return "STD_VIDEO_H264_LEVEL_2_1";
-               case STD_VIDEO_H264_LEVEL_2_2:          return "STD_VIDEO_H264_LEVEL_2_2";
-               case STD_VIDEO_H264_LEVEL_3_0:          return "STD_VIDEO_H264_LEVEL_3_0";
-               case STD_VIDEO_H264_LEVEL_3_1:          return "STD_VIDEO_H264_LEVEL_3_1";
-               case STD_VIDEO_H264_LEVEL_3_2:          return "STD_VIDEO_H264_LEVEL_3_2";
-               case STD_VIDEO_H264_LEVEL_4_0:          return "STD_VIDEO_H264_LEVEL_4_0";
-               case STD_VIDEO_H264_LEVEL_4_1:          return "STD_VIDEO_H264_LEVEL_4_1";
-               case STD_VIDEO_H264_LEVEL_4_2:          return "STD_VIDEO_H264_LEVEL_4_2";
-               case STD_VIDEO_H264_LEVEL_5_0:          return "STD_VIDEO_H264_LEVEL_5_0";
-               case STD_VIDEO_H264_LEVEL_5_1:          return "STD_VIDEO_H264_LEVEL_5_1";
-               case STD_VIDEO_H264_LEVEL_5_2:          return "STD_VIDEO_H264_LEVEL_5_2";
-               case STD_VIDEO_H264_LEVEL_6_0:          return "STD_VIDEO_H264_LEVEL_6_0";
-               case STD_VIDEO_H264_LEVEL_6_1:          return "STD_VIDEO_H264_LEVEL_6_1";
-               case STD_VIDEO_H264_LEVEL_6_2:          return "STD_VIDEO_H264_LEVEL_6_2";
-               case STD_VIDEO_H264_LEVEL_INVALID:      return "STD_VIDEO_H264_LEVEL_INVALID";
+               case VK_COMPONENT_TYPE_FLOAT16_NV:      return "VK_COMPONENT_TYPE_FLOAT16_NV";
+               case VK_COMPONENT_TYPE_FLOAT32_NV:      return "VK_COMPONENT_TYPE_FLOAT32_NV";
+               case VK_COMPONENT_TYPE_FLOAT64_NV:      return "VK_COMPONENT_TYPE_FLOAT64_NV";
+               case VK_COMPONENT_TYPE_SINT8_NV:        return "VK_COMPONENT_TYPE_SINT8_NV";
+               case VK_COMPONENT_TYPE_SINT16_NV:       return "VK_COMPONENT_TYPE_SINT16_NV";
+               case VK_COMPONENT_TYPE_SINT32_NV:       return "VK_COMPONENT_TYPE_SINT32_NV";
+               case VK_COMPONENT_TYPE_SINT64_NV:       return "VK_COMPONENT_TYPE_SINT64_NV";
+               case VK_COMPONENT_TYPE_UINT8_NV:        return "VK_COMPONENT_TYPE_UINT8_NV";
+               case VK_COMPONENT_TYPE_UINT16_NV:       return "VK_COMPONENT_TYPE_UINT16_NV";
+               case VK_COMPONENT_TYPE_UINT32_NV:       return "VK_COMPONENT_TYPE_UINT32_NV";
+               case VK_COMPONENT_TYPE_UINT64_NV:       return "VK_COMPONENT_TYPE_UINT64_NV";
                default:                                                        return DE_NULL;
        }
 }
 
-const char* getdVideoH264PocTypeName (StdVideoH264PocType value)
+tcu::Format::Bitfield<32> getDeviceDiagnosticsConfigFlagsNVStr (VkDeviceDiagnosticsConfigFlagsNV value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case STD_VIDEO_H264_POC_TYPE_0:                 return "STD_VIDEO_H264_POC_TYPE_0";
-               case STD_VIDEO_H264_POC_TYPE_1:                 return "STD_VIDEO_H264_POC_TYPE_1";
-               case STD_VIDEO_H264_POC_TYPE_2:                 return "STD_VIDEO_H264_POC_TYPE_2";
-               case STD_VIDEO_H264_POC_TYPE_INVALID:   return "STD_VIDEO_H264_POC_TYPE_INVALID";
-               default:                                                                return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,              "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV"),
+               tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,              "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV"),
+               tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV,  "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV"),
+               tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV, "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getdVideoH264AspectRatioIdcName (StdVideoH264AspectRatioIdc value)
+tcu::Format::Bitfield<32> getPipelineCreationFeedbackFlagsStr (VkPipelineCreationFeedbackFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED:       return "STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED";
-               case STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE:            return "STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE";
-               case STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11";
-               case STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11";
-               case STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11";
-               case STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33";
-               case STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11";
-               case STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11";
-               case STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11";
-               case STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33";
-               case STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11";
-               case STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11";
-               case STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33";
-               case STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99:            return "STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99";
-               case STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3:                       return "STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3";
-               case STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2:                       return "STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2";
-               case STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1:                       return "STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1";
-               case STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR:      return "STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR";
-               case STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID:           return "STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID";
-               default:                                                                                        return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,                                                   "VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,  "VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,              "VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getdVideoH264WeightedBipredIdcName (StdVideoH264WeightedBipredIdc value)
+const char* getPerformanceCounterScopeKHRName (VkPerformanceCounterScopeKHR value)
 {
        switch (value)
        {
-               case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT:        return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT";
-               case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT:       return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT";
-               case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT:       return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT";
-               case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID:        return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID";
-               default:                                                                                        return DE_NULL;
+               case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR:   return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR";
+               case VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR:              return "VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR";
+               case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR:                  return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR";
+               default:                                                                                                return DE_NULL;
        }
 }
 
-const char* getdVideoH264ModificationOfPicNumsIdcName (StdVideoH264ModificationOfPicNumsIdc value)
+const char* getPerformanceCounterUnitKHRName (VkPerformanceCounterUnitKHR value)
 {
        switch (value)
        {
-               case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT:   return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT";
-               case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD:                return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD";
-               case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM:                             return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM";
-               case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END:                                   return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END";
-               case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID:                               return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID";
-               default:                                                                                                                                return DE_NULL;
+               case VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR:                   return "VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR";
+               case VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR:                return "VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR";
+               case VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR:               return "VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR";
+               case VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR";
+               case VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR:  return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR";
+               case VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR:                    return "VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR";
+               case VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR";
+               case VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR";
+               case VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR:                              return "VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR";
+               case VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR:                             return "VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR";
+               case VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR:                    return "VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR";
+               default:                                                                                                return DE_NULL;
        }
 }
 
-const char* getdVideoH264MemMgmtControlOpName (StdVideoH264MemMgmtControlOp value)
+const char* getPerformanceCounterStorageKHRName (VkPerformanceCounterStorageKHR value)
 {
        switch (value)
        {
-               case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END:                                            return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END";
-               case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM:                      return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM";
-               case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM:                       return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM";
-               case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM:                         return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM";
-               case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX:        return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX";
-               case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL:                                     return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL";
-               case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM:      return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM";
-               case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID:                                        return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID";
-               default:                                                                                                                        return DE_NULL;
+               case VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR:          return "VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR";
+               case VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR:          return "VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR";
+               case VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR:         return "VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR";
+               case VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR:         return "VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR";
+               case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR:        return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR";
+               case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR:        return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR";
+               default:                                                                                        return DE_NULL;
        }
 }
 
-const char* getdVideoH264CabacInitIdcName (StdVideoH264CabacInitIdc value)
+tcu::Format::Bitfield<32> getPerformanceCounterDescriptionFlagsKHRStr (VkPerformanceCounterDescriptionFlagsKHR value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case STD_VIDEO_H264_CABAC_INIT_IDC_0:           return "STD_VIDEO_H264_CABAC_INIT_IDC_0";
-               case STD_VIDEO_H264_CABAC_INIT_IDC_1:           return "STD_VIDEO_H264_CABAC_INIT_IDC_1";
-               case STD_VIDEO_H264_CABAC_INIT_IDC_2:           return "STD_VIDEO_H264_CABAC_INIT_IDC_2";
-               case STD_VIDEO_H264_CABAC_INIT_IDC_INVALID:     return "STD_VIDEO_H264_CABAC_INIT_IDC_INVALID";
-               default:                                                                        return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,  "VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,  "VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getdVideoH264DisableDeblockingFilterIdcName (StdVideoH264DisableDeblockingFilterIdc value)
+tcu::Format::Bitfield<32> getSemaphoreWaitFlagsStr (VkSemaphoreWaitFlags value)
 {
-       switch (value)
+       static const tcu::Format::BitDesc s_desc[] =
        {
-               case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED:     return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED";
-               case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED:      return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED";
-               case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL:      return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL";
-               case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID:      return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID";
-               default:                                                                                                        return DE_NULL;
-       }
+               tcu::Format::BitDesc(VK_SEMAPHORE_WAIT_ANY_BIT, "VK_SEMAPHORE_WAIT_ANY_BIT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getdVideoH264SliceTypeName (StdVideoH264SliceType value)
+const char* getPerformanceConfigurationTypeINTELName (VkPerformanceConfigurationTypeINTEL value)
 {
        switch (value)
        {
-               case STD_VIDEO_H264_SLICE_TYPE_P:               return "STD_VIDEO_H264_SLICE_TYPE_P";
-               case STD_VIDEO_H264_SLICE_TYPE_B:               return "STD_VIDEO_H264_SLICE_TYPE_B";
-               case STD_VIDEO_H264_SLICE_TYPE_I:               return "STD_VIDEO_H264_SLICE_TYPE_I";
-               case STD_VIDEO_H264_SLICE_TYPE_INVALID: return "STD_VIDEO_H264_SLICE_TYPE_INVALID";
-               default:                                                                return DE_NULL;
+               case VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL: return "VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL";
+               default:                                                                                                                                                                return DE_NULL;
        }
 }
 
-const char* getdVideoH264PictureTypeName (StdVideoH264PictureType value)
+const char* getQueryPoolSamplingModeINTELName (VkQueryPoolSamplingModeINTEL value)
 {
        switch (value)
        {
-               case STD_VIDEO_H264_PICTURE_TYPE_P:                     return "STD_VIDEO_H264_PICTURE_TYPE_P";
-               case STD_VIDEO_H264_PICTURE_TYPE_B:                     return "STD_VIDEO_H264_PICTURE_TYPE_B";
-               case STD_VIDEO_H264_PICTURE_TYPE_I:                     return "STD_VIDEO_H264_PICTURE_TYPE_I";
-               case STD_VIDEO_H264_PICTURE_TYPE_IDR:           return "STD_VIDEO_H264_PICTURE_TYPE_IDR";
-               case STD_VIDEO_H264_PICTURE_TYPE_INVALID:       return "STD_VIDEO_H264_PICTURE_TYPE_INVALID";
-               default:                                                                        return DE_NULL;
+               case VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL:  return "VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL";
+               default:                                                                                return DE_NULL;
        }
 }
 
-const char* getdVideoH264NonVclNaluTypeName (StdVideoH264NonVclNaluType value)
+const char* getPerformanceOverrideTypeINTELName (VkPerformanceOverrideTypeINTEL value)
 {
        switch (value)
        {
-               case STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS:                              return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS";
-               case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS:                              return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS";
-               case STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD:                              return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD";
-               case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX:                   return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX";
-               case STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE:  return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE";
-               case STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM:    return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM";
-               case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED:                 return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED";
-               case STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID:                  return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID";
-               default:                                                                                                return DE_NULL;
+               case VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL:          return "VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL";
+               case VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL:       return "VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL";
+               default:                                                                                                        return DE_NULL;
        }
 }
 
-const char* getdVideoH265ChromaFormatIdcName (StdVideoH265ChromaFormatIdc value)
+const char* getPerformanceParameterTypeINTELName (VkPerformanceParameterTypeINTEL value)
 {
        switch (value)
        {
-               case STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME:       return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME";
-               case STD_VIDEO_H265_CHROMA_FORMAT_IDC_420:                      return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_420";
-               case STD_VIDEO_H265_CHROMA_FORMAT_IDC_422:                      return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_422";
-               case STD_VIDEO_H265_CHROMA_FORMAT_IDC_444:                      return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_444";
-               case STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID:          return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID";
-               default:                                                                                        return DE_NULL;
+               case VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL:         return "VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL";
+               case VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL:      return "VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL";
+               default:                                                                                                                        return DE_NULL;
        }
 }
 
-const char* getdVideoH265ProfileIdcName (StdVideoH265ProfileIdc value)
+const char* getPerformanceValueTypeINTELName (VkPerformanceValueTypeINTEL value)
 {
        switch (value)
        {
-               case STD_VIDEO_H265_PROFILE_IDC_MAIN:                                           return "STD_VIDEO_H265_PROFILE_IDC_MAIN";
-               case STD_VIDEO_H265_PROFILE_IDC_MAIN_10:                                        return "STD_VIDEO_H265_PROFILE_IDC_MAIN_10";
-               case STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE:                     return "STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE";
-               case STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS:        return "STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS";
-               case STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS:                         return "STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS";
-               case STD_VIDEO_H265_PROFILE_IDC_INVALID:                                        return "STD_VIDEO_H265_PROFILE_IDC_INVALID";
-               default:                                                                                                        return DE_NULL;
+               case VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL:    return "VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL";
+               case VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL:    return "VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL";
+               case VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL:             return "VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL";
+               case VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL:              return "VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL";
+               case VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL:    return "VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL";
+               default:                                                                                return DE_NULL;
        }
 }
 
-const char* getdVideoH265LevelName (StdVideoH265Level value)
+const char* getLineRasterizationModeEXTName (VkLineRasterizationModeEXT value)
 {
        switch (value)
        {
-               case STD_VIDEO_H265_LEVEL_1_0:          return "STD_VIDEO_H265_LEVEL_1_0";
-               case STD_VIDEO_H265_LEVEL_2_0:          return "STD_VIDEO_H265_LEVEL_2_0";
-               case STD_VIDEO_H265_LEVEL_2_1:          return "STD_VIDEO_H265_LEVEL_2_1";
-               case STD_VIDEO_H265_LEVEL_3_0:          return "STD_VIDEO_H265_LEVEL_3_0";
-               case STD_VIDEO_H265_LEVEL_3_1:          return "STD_VIDEO_H265_LEVEL_3_1";
-               case STD_VIDEO_H265_LEVEL_4_0:          return "STD_VIDEO_H265_LEVEL_4_0";
-               case STD_VIDEO_H265_LEVEL_4_1:          return "STD_VIDEO_H265_LEVEL_4_1";
-               case STD_VIDEO_H265_LEVEL_5_0:          return "STD_VIDEO_H265_LEVEL_5_0";
-               case STD_VIDEO_H265_LEVEL_5_1:          return "STD_VIDEO_H265_LEVEL_5_1";
-               case STD_VIDEO_H265_LEVEL_5_2:          return "STD_VIDEO_H265_LEVEL_5_2";
-               case STD_VIDEO_H265_LEVEL_6_0:          return "STD_VIDEO_H265_LEVEL_6_0";
-               case STD_VIDEO_H265_LEVEL_6_1:          return "STD_VIDEO_H265_LEVEL_6_1";
-               case STD_VIDEO_H265_LEVEL_6_2:          return "STD_VIDEO_H265_LEVEL_6_2";
-               case STD_VIDEO_H265_LEVEL_INVALID:      return "STD_VIDEO_H265_LEVEL_INVALID";
-               default:                                                        return DE_NULL;
+               case VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT:                    return "VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT";
+               case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT:                return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT";
+               case VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT:                  return "VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT";
+               case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT: return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT";
+               default:                                                                                                return DE_NULL;
        }
 }
 
-const char* getdVideoH265SliceTypeName (StdVideoH265SliceType value)
+tcu::Format::Bitfield<32> getToolPurposeFlagsStr (VkToolPurposeFlags value)
 {
-       switch (value)
-       {
-               case STD_VIDEO_H265_SLICE_TYPE_B:               return "STD_VIDEO_H265_SLICE_TYPE_B";
-               case STD_VIDEO_H265_SLICE_TYPE_P:               return "STD_VIDEO_H265_SLICE_TYPE_P";
-               case STD_VIDEO_H265_SLICE_TYPE_I:               return "STD_VIDEO_H265_SLICE_TYPE_I";
-               case STD_VIDEO_H265_SLICE_TYPE_INVALID: return "STD_VIDEO_H265_SLICE_TYPE_INVALID";
-               default:                                                                return DE_NULL;
-       }
+       static const tcu::Format::BitDesc s_desc[] =
+       {
+               tcu::Format::BitDesc(VK_TOOL_PURPOSE_VALIDATION_BIT,                    "VK_TOOL_PURPOSE_VALIDATION_BIT"),
+               tcu::Format::BitDesc(VK_TOOL_PURPOSE_PROFILING_BIT,                             "VK_TOOL_PURPOSE_PROFILING_BIT"),
+               tcu::Format::BitDesc(VK_TOOL_PURPOSE_TRACING_BIT,                               "VK_TOOL_PURPOSE_TRACING_BIT"),
+               tcu::Format::BitDesc(VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,   "VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT"),
+               tcu::Format::BitDesc(VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,    "VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT"),
+               tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,   "VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT"),
+               tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT,             "VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT"),
+       };
+       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-const char* getdVideoH265PictureTypeName (StdVideoH265PictureType value)
+const char* getFragmentShadingRateNVName (VkFragmentShadingRateNV value)
 {
        switch (value)
        {
-               case STD_VIDEO_H265_PICTURE_TYPE_P:                     return "STD_VIDEO_H265_PICTURE_TYPE_P";
-               case STD_VIDEO_H265_PICTURE_TYPE_B:                     return "STD_VIDEO_H265_PICTURE_TYPE_B";
-               case STD_VIDEO_H265_PICTURE_TYPE_I:                     return "STD_VIDEO_H265_PICTURE_TYPE_I";
-               case STD_VIDEO_H265_PICTURE_TYPE_IDR:           return "STD_VIDEO_H265_PICTURE_TYPE_IDR";
-               case STD_VIDEO_H265_PICTURE_TYPE_INVALID:       return "STD_VIDEO_H265_PICTURE_TYPE_INVALID";
-               default:                                                                        return DE_NULL;
+               case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV:                return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV";
+               case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV";
+               case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV";
+               case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV";
+               case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV";
+               case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV";
+               case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV:   return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV";
+               case VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV:               return "VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV";
+               case VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV:               return "VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV";
+               case VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV:               return "VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV";
+               case VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV:              return "VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV";
+               case VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV:                                return "VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV";
+               default:                                                                                                                return DE_NULL;
        }
 }
 
-const char* getdVideoDecodeH264FieldOrderCountName (StdVideoDecodeH264FieldOrderCount value)
+const char* getFragmentShadingRateTypeNVName (VkFragmentShadingRateTypeNV value)
 {
        switch (value)
        {
-               case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP:               return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP";
-               case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM:    return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM";
-               case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID:   return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID";
+               case VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV:    return "VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV";
+               case VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV:                    return "VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV";
                default:                                                                                                return DE_NULL;
        }
 }
 
-const char* getFullScreenExclusiveEXTName (VkFullScreenExclusiveEXT value)
+const char* getSubpassMergeStatusEXTName (VkSubpassMergeStatusEXT value)
 {
        switch (value)
        {
-               case VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT:                                      return "VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT";
-               case VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT:                                      return "VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT";
-               case VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT:                           return "VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT";
-               case VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT:       return "VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT";
-               case VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT:                                     return "VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT";
-               default:                                                                                                        return DE_NULL;
+               case VK_SUBPASS_MERGE_STATUS_MERGED_EXT:                                                                        return "VK_SUBPASS_MERGE_STATUS_MERGED_EXT";
+               case VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT:                                                            return "VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT";
+               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT:                                       return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT";
+               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT:                           return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT";
+               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT:                                     return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT";
+               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT:                                           return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT";
+               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT:                                       return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT";
+               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT:      return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT";
+               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT:                       return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT";
+               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT:                       return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT";
+               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT:                        return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT";
+               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT:           return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT";
+               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT:                                     return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT";
+               case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT:                                        return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT";
+               default:                                                                                                                                        return DE_NULL;
        }
 }
 
-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_NONE,                                                                                    "VK_ACCESS_NONE"),
-               tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,                                "VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,                 "VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"),
-               tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,                "VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,                              "VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT"),
-               tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,               "VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"),
-               tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,                             "VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR"),
-               tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,                    "VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,                               "VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"),
-               tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,   "VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"),
-               tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,                                  "VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV"),
-               tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,                                 "VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV"),
-               tcu::Format::BitDesc(VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV,                                  "VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV"),
-               tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,                              "VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV"),
-               tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV,                             "VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV"),
-               tcu::Format::BitDesc(VK_ACCESS_NONE_KHR,                                                                                "VK_ACCESS_NONE_KHR"),
-               tcu::Format::BitDesc(VK_ACCESS_FLAG_BITS_MAX_ENUM,                                                              "VK_ACCESS_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
-}
-
-tcu::Format::Bitfield<32> getImageAspectFlagsStr (VkImageAspectFlags value)
+tcu::Format::Bitfield<64> getAccessFlags2Str (VkAccessFlags2 value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_IMAGE_ASPECT_COLOR_BIT,                                 "VK_IMAGE_ASPECT_COLOR_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_ASPECT_DEPTH_BIT,                                 "VK_IMAGE_ASPECT_DEPTH_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_ASPECT_STENCIL_BIT,                               "VK_IMAGE_ASPECT_STENCIL_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_ASPECT_METADATA_BIT,                              "VK_IMAGE_ASPECT_METADATA_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_0_BIT,                               "VK_IMAGE_ASPECT_PLANE_0_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_1_BIT,                               "VK_IMAGE_ASPECT_PLANE_1_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_2_BIT,                               "VK_IMAGE_ASPECT_PLANE_2_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_ASPECT_NONE,                                              "VK_IMAGE_ASPECT_NONE"),
-               tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,    "VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,                   "VK_IMAGE_ASPECT_PLANE_0_BIT_KHR"),
-               tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_1_BIT_KHR,                   "VK_IMAGE_ASPECT_PLANE_1_BIT_KHR"),
-               tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_2_BIT_KHR,                   "VK_IMAGE_ASPECT_PLANE_2_BIT_KHR"),
-               tcu::Format::BitDesc(VK_IMAGE_ASPECT_NONE_KHR,                                  "VK_IMAGE_ASPECT_NONE_KHR"),
-               tcu::Format::BitDesc(VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM,                "VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_ACCESS_2_NONE,                                                                                  "VK_ACCESS_2_NONE"),
+               tcu::Format::BitDesc(VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT,                                             "VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_INDEX_READ_BIT,                                                                "VK_ACCESS_2_INDEX_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT,                                             "VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_UNIFORM_READ_BIT,                                                              "VK_ACCESS_2_UNIFORM_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT,                                             "VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_SHADER_READ_BIT,                                                               "VK_ACCESS_2_SHADER_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_SHADER_WRITE_BIT,                                                              "VK_ACCESS_2_SHADER_WRITE_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT,                                             "VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT,                                    "VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT,                             "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,                    "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_TRANSFER_READ_BIT,                                                             "VK_ACCESS_2_TRANSFER_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_TRANSFER_WRITE_BIT,                                                    "VK_ACCESS_2_TRANSFER_WRITE_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_HOST_READ_BIT,                                                                 "VK_ACCESS_2_HOST_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_HOST_WRITE_BIT,                                                                "VK_ACCESS_2_HOST_WRITE_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_MEMORY_READ_BIT,                                                               "VK_ACCESS_2_MEMORY_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_MEMORY_WRITE_BIT,                                                              "VK_ACCESS_2_MEMORY_WRITE_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV,                                "VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV"),
+               tcu::Format::BitDesc(VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV,                               "VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV"),
+               tcu::Format::BitDesc(VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,             "VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT,                    "VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,                   "VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR"),
+               tcu::Format::BitDesc(VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,                  "VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR, "VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"),
+               tcu::Format::BitDesc(VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,                             "VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,                              "VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,               "VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,              "VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_SHADER_SAMPLED_READ_BIT,                                               "VK_ACCESS_2_SHADER_SAMPLED_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_SHADER_STORAGE_READ_BIT,                                               "VK_ACCESS_2_SHADER_STORAGE_READ_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT,                                              "VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT"),
+               tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,                                             "VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR"),
+               tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,                                    "VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,                                             "VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR"),
+               tcu::Format::BitDesc(VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,                                    "VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI,                               "VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI"),
+               tcu::Format::BitDesc(VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR,                             "VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR"),
        };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+       return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getFormatFeatureFlagsStr (VkFormatFeatureFlags value)
+tcu::Format::Bitfield<64> getPipelineStageFlags2Str (VkPipelineStageFlags2 value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,                                                                                                                               "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,                                                                                                                               "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,                                                                                                                "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,                                                                                                                "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,                                                                                                                "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,                                                                                                 "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,                                                                                                                               "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,                                                                                                                    "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,                                                                                                              "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,                                                                                                    "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT"),
-               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_TRANSFER_SRC_BIT,                                                                                                                                "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_DST_BIT,                                                                                                                                "VK_FORMAT_FEATURE_TRANSFER_DST_BIT"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,                                                                                                             "VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,                                                                "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,                               "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,                               "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,             "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_DISJOINT_BIT,                                                                                                                                    "VK_FORMAT_FEATURE_DISJOINT_BIT"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,                                                                                                              "VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,                                                                                                 "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR,                                                                                                             "VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR,                                                                                                                "VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,                                                                    "VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,                                                                                              "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,                                                                                                    "VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,                                                                                "VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR,                                                                                                              "VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR,                                                                                                                "VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR"),
-               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_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"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR,                   "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR, "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_DISJOINT_BIT_KHR,                                                                                                                                "VK_FORMAT_FEATURE_DISJOINT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR,                                                                                                  "VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR"),
-               tcu::Format::BitDesc(VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM,                                                                                                                              "VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_NONE,                                                                          "VK_PIPELINE_STAGE_2_NONE"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT,                                                       "VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT,                                                     "VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT,                                                      "VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,                                                     "VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT,                       "VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT,            "VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT,                                           "VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,                                           "VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,                                      "VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT,                                       "VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT,                           "VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT,                                            "VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT,                                                      "VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT,                                            "VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_HOST_BIT,                                                                      "VK_PIPELINE_STAGE_2_HOST_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,                                                      "VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT,                                                      "VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV,                                     "VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT,                         "VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV,                                            "VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV,                                            "VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR,                            "VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,      "VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT,                      "VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,                            "VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,          "VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR,                                          "VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR,                                          "VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR,           "VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_COPY_BIT,                                                                      "VK_PIPELINE_STAGE_2_COPY_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_RESOLVE_BIT,                                                           "VK_PIPELINE_STAGE_2_RESOLVE_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_BLIT_BIT,                                                                      "VK_PIPELINE_STAGE_2_BLIT_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_CLEAR_BIT,                                                                     "VK_PIPELINE_STAGE_2_CLEAR_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT,                                                       "VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT,                            "VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT,                         "VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI,                            "VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI"),
+               tcu::Format::BitDesc(VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI,                            "VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI"),
        };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+       return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getImageCreateFlagsStr (VkImageCreateFlags value)
+const char* getProvokingVertexModeEXTName (VkProvokingVertexModeEXT value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               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_ALIAS_BIT,                                                                         "VK_IMAGE_CREATE_ALIAS_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,                           "VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,                                           "VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,                           "VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,                                                        "VK_IMAGE_CREATE_EXTENDED_USAGE_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_PROTECTED_BIT,                                                                     "VK_IMAGE_CREATE_PROTECTED_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_DISJOINT_BIT,                                                                      "VK_IMAGE_CREATE_DISJOINT_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,                                                     "VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV"),
-               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_SUBSAMPLED_BIT_EXT,                                                        "VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT,     "VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT,                                        "VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM,                      "VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,                       "VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_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_DISJOINT_BIT_KHR,                                                          "VK_IMAGE_CREATE_DISJOINT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_ALIAS_BIT_KHR,                                                                     "VK_IMAGE_CREATE_ALIAS_BIT_KHR"),
-               tcu::Format::BitDesc(VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM,                                                        "VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT: return "VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT";
+               case VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT:  return "VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT";
+               default:                                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getSampleCountFlagsStr (VkSampleCountFlags value)
+tcu::Format::Bitfield<32> getImageConstraintsInfoFlagsFUCHSIAStr (VkImageConstraintsInfoFlagsFUCHSIA value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_SAMPLE_COUNT_1_BIT,                                     "VK_SAMPLE_COUNT_1_BIT"),
-               tcu::Format::BitDesc(VK_SAMPLE_COUNT_2_BIT,                                     "VK_SAMPLE_COUNT_2_BIT"),
-               tcu::Format::BitDesc(VK_SAMPLE_COUNT_4_BIT,                                     "VK_SAMPLE_COUNT_4_BIT"),
-               tcu::Format::BitDesc(VK_SAMPLE_COUNT_8_BIT,                                     "VK_SAMPLE_COUNT_8_BIT"),
-               tcu::Format::BitDesc(VK_SAMPLE_COUNT_16_BIT,                            "VK_SAMPLE_COUNT_16_BIT"),
-               tcu::Format::BitDesc(VK_SAMPLE_COUNT_32_BIT,                            "VK_SAMPLE_COUNT_32_BIT"),
-               tcu::Format::BitDesc(VK_SAMPLE_COUNT_64_BIT,                            "VK_SAMPLE_COUNT_64_BIT"),
-               tcu::Format::BitDesc(VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM,        "VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA,         "VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA"),
+               tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA,          "VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA"),
+               tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA,        "VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA"),
+               tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA,         "VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA"),
+               tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA,      "VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getImageUsageFlagsStr (VkImageUsageFlags value)
+tcu::Format::Bitfield<64> getFormatFeatureFlags2Str (VkFormatFeatureFlags2 value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_SRC_BIT,                                                   "VK_IMAGE_USAGE_TRANSFER_SRC_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_DST_BIT,                                                   "VK_IMAGE_USAGE_TRANSFER_DST_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLED_BIT,                                                                "VK_IMAGE_USAGE_SAMPLED_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_USAGE_STORAGE_BIT,                                                                "VK_IMAGE_USAGE_STORAGE_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,                                               "VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,                               "VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,                                   "VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,                                               "VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT"),
-               tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
-               tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
-               tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR"),
-               tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,                               "VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,   "VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
-               tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
-               tcu::Format::BitDesc(VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR,                                   "VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR"),
-               tcu::Format::BitDesc(VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI,                                 "VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI"),
-               tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM,                                             "VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM"),
-               tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM,                                "VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM"),
-               tcu::Format::BitDesc(VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,                                  "VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV"),
-               tcu::Format::BitDesc(VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM,                                                 "VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT,                                                                                                                             "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT,                                                                                                                             "VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT,                                                                                                              "VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT,                                                                                                              "VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT,                                                                                                              "VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,                                                                                               "VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT,                                                                                                                             "VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT,                                                                                                                  "VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT,                                                                                                    "VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT,                                                                                                  "VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BLIT_SRC_BIT,                                                                                                                                  "VK_FORMAT_FEATURE_2_BLIT_SRC_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BLIT_DST_BIT,                                                                                                                                  "VK_FORMAT_FEATURE_2_BLIT_DST_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT,                                                                                               "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT,                                                                                                "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT,                                                                                                                              "VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT,                                                                                                                              "VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT,                                                                                               "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT,                                                                                                   "VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,                                                              "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,                             "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,                             "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,   "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_DISJOINT_BIT,                                                                                                                                  "VK_FORMAT_FEATURE_2_DISJOINT_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT,                                                                                                    "VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT,                                                                                                  "VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR,                                                                                                   "VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR,                                                                                                              "VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR,                                                                                                    "VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR,                                                                                                              "VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,                                                                  "VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,                                                                              "VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT,                                                                                               "VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT,                                                                                              "VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT,                                                                                    "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM,                                                                                                                 "VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM,                                                                                                 "VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM,                                                                                                               "VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM,                                                                                                   "VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM"),
+               tcu::Format::BitDesc(VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV,                                                                                                "VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV"),
        };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+       return tcu::Format::Bitfield<64>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getInstanceCreateFlagsStr (VkInstanceCreateFlags value)
+tcu::Format::Bitfield<32> getRenderingFlagsStr (VkRenderingFlags value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR,  "VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR"),
-               tcu::Format::BitDesc(VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM,                             "VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,       "VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT"),
+               tcu::Format::BitDesc(VK_RENDERING_SUSPENDING_BIT,                                                       "VK_RENDERING_SUSPENDING_BIT"),
+               tcu::Format::BitDesc(VK_RENDERING_RESUMING_BIT,                                                         "VK_RENDERING_RESUMING_BIT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getMemoryHeapFlagsStr (VkMemoryHeapFlags value)
+tcu::Format::Bitfield<32> getPipelineDepthStencilStateCreateFlagsStr (VkPipelineDepthStencilStateCreateFlags 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,         "VK_MEMORY_HEAP_MULTI_INSTANCE_BIT"),
-               tcu::Format::BitDesc(VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR,     "VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM,         "VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM,        "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM"),
+               tcu::Format::BitDesc(VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM,      "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getMemoryPropertyFlagsStr (VkMemoryPropertyFlags value)
+tcu::Format::Bitfield<32> getPipelineColorBlendStateCreateFlagsStr (VkPipelineColorBlendStateCreateFlags value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,                       "VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT"),
-               tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,                       "VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT"),
-               tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,                      "VK_MEMORY_PROPERTY_HOST_COHERENT_BIT"),
-               tcu::Format::BitDesc(VK_MEMORY_PROPERTY_HOST_CACHED_BIT,                        "VK_MEMORY_PROPERTY_HOST_CACHED_BIT"),
-               tcu::Format::BitDesc(VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,           "VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT"),
-               tcu::Format::BitDesc(VK_MEMORY_PROPERTY_PROTECTED_BIT,                          "VK_MEMORY_PROPERTY_PROTECTED_BIT"),
-               tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD,        "VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD"),
-               tcu::Format::BitDesc(VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD,        "VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD"),
-               tcu::Format::BitDesc(VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV,            "VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV"),
-               tcu::Format::BitDesc(VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM,                     "VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM,        "VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getQueueFlagsStr (VkQueueFlags value)
+tcu::Format::Bitfield<32> getImageCompressionFlagsEXTStr (VkImageCompressionFlagsEXT value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_QUEUE_GRAPHICS_BIT,                     "VK_QUEUE_GRAPHICS_BIT"),
-               tcu::Format::BitDesc(VK_QUEUE_COMPUTE_BIT,                      "VK_QUEUE_COMPUTE_BIT"),
-               tcu::Format::BitDesc(VK_QUEUE_TRANSFER_BIT,                     "VK_QUEUE_TRANSFER_BIT"),
-               tcu::Format::BitDesc(VK_QUEUE_SPARSE_BINDING_BIT,       "VK_QUEUE_SPARSE_BINDING_BIT"),
-               tcu::Format::BitDesc(VK_QUEUE_PROTECTED_BIT,            "VK_QUEUE_PROTECTED_BIT"),
-               tcu::Format::BitDesc(VK_QUEUE_VIDEO_DECODE_BIT_KHR,     "VK_QUEUE_VIDEO_DECODE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_QUEUE_VIDEO_ENCODE_BIT_KHR,     "VK_QUEUE_VIDEO_ENCODE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_QUEUE_FLAG_BITS_MAX_ENUM,       "VK_QUEUE_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_DEFAULT_EXT,                          "VK_IMAGE_COMPRESSION_DEFAULT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT,       "VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_DISABLED_EXT,                         "VK_IMAGE_COMPRESSION_DISABLED_EXT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getDeviceQueueCreateFlagsStr (VkDeviceQueueCreateFlags value)
+tcu::Format::Bitfield<32> getImageCompressionFixedRateFlagsEXTStr (VkImageCompressionFixedRateFlagsEXT value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT,              "VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT"),
-               tcu::Format::BitDesc(VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM, "VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT,          "VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT,     "VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getPipelineStageFlagsStr (VkPipelineStageFlags value)
+tcu::Format::Bitfield<32> getExportMetalObjectTypeFlagsEXTStr (VkExportMetalObjectTypeFlagsEXT value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,                                                         "VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,                                                       "VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,                                                        "VK_PIPELINE_STAGE_VERTEX_INPUT_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,                                                       "VK_PIPELINE_STAGE_VERTEX_SHADER_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,                         "VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,                      "VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,                                                     "VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,                                                     "VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,                                        "VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,                                         "VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,                                     "VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,                                                      "VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFER_BIT,                                                            "VK_PIPELINE_STAGE_TRANSFER_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,                                                      "VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT"),
-               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_NONE,                                                                            "VK_PIPELINE_STAGE_NONE"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,                                      "VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,                           "VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,            "VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,                                      "VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,                                                      "VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,                                                      "VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,                        "VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,        "VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,                                       "VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,                                       "VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV,                                       "VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,                     "VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_NONE_KHR,                                                                        "VK_PIPELINE_STAGE_NONE_KHR"),
-               tcu::Format::BitDesc(VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM,                                                      "VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT,                  "VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT,   "VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT,                  "VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT"),
+               tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT,                 "VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT,               "VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT,    "VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getSparseMemoryBindFlagsStr (VkSparseMemoryBindFlags value)
+const char* getPipelineRobustnessBufferBehaviorEXTName (VkPipelineRobustnessBufferBehaviorEXT value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_SPARSE_MEMORY_BIND_METADATA_BIT,                "VK_SPARSE_MEMORY_BIND_METADATA_BIT"),
-               tcu::Format::BitDesc(VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM,  "VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT:                 return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT";
+               case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT:                               return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT";
+               case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT:   return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT";
+               case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT: return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT";
+               default:                                                                                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getSparseImageFormatFlagsStr (VkSparseImageFormatFlags value)
+const char* getPipelineRobustnessImageBehaviorEXTName (VkPipelineRobustnessImageBehaviorEXT value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,                 "VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT"),
-               tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,               "VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT"),
-               tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT, "VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT"),
-               tcu::Format::BitDesc(VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM,                 "VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT:                  return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT";
+               case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT:                                return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT";
+               case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT:             return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT";
+               case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT:   return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT";
+               default:                                                                                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getFenceCreateFlagsStr (VkFenceCreateFlags value)
+const char* getColorSpaceKHRName (VkColorSpaceKHR value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_FENCE_CREATE_SIGNALED_BIT,                      "VK_FENCE_CREATE_SIGNALED_BIT"),
-               tcu::Format::BitDesc(VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM,        "VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               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_DISPLAY_P3_LINEAR_EXT:                      return "VK_COLOR_SPACE_DISPLAY_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";
+               case VK_COLOR_SPACE_DISPLAY_NATIVE_AMD:                         return "VK_COLOR_SPACE_DISPLAY_NATIVE_AMD";
+               default:                                                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getEventCreateFlagsStr (VkEventCreateFlags value)
+tcu::Format::Bitfield<32> getCompositeAlphaFlagsKHRStr (VkCompositeAlphaFlagsKHR value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_EVENT_CREATE_DEVICE_ONLY_BIT,           "VK_EVENT_CREATE_DEVICE_ONLY_BIT"),
-               tcu::Format::BitDesc(VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR,       "VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM,        "VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,                         "VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,         "VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR"),
+               tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,        "VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR"),
+               tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR,                        "VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getQueryPipelineStatisticFlagsStr (VkQueryPipelineStatisticFlags value)
+tcu::Format::Bitfield<32> getDisplayPlaneAlphaFlagsKHRStr (VkDisplayPlaneAlphaFlagsKHR value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,                                           "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT"),
-               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,                                         "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT"),
-               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,                                         "VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT"),
-               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,                                       "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT"),
-               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,                                        "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT"),
-               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,                                                      "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT"),
-               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,                                                       "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT"),
-               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,                                       "VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT"),
-               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,                       "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT"),
-               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,        "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT"),
-               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT,                                        "VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT"),
-               tcu::Format::BitDesc(VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM,                                                            "VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,                                             "VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,                                             "VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR"),
+               tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,                                  "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR"),
+               tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR,    "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getQueryResultFlagsStr (VkQueryResultFlags value)
+const char* getPresentModeKHRName (VkPresentModeKHR value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_QUERY_RESULT_64_BIT,                            "VK_QUERY_RESULT_64_BIT"),
-               tcu::Format::BitDesc(VK_QUERY_RESULT_WAIT_BIT,                          "VK_QUERY_RESULT_WAIT_BIT"),
-               tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,     "VK_QUERY_RESULT_WITH_AVAILABILITY_BIT"),
-               tcu::Format::BitDesc(VK_QUERY_RESULT_PARTIAL_BIT,                       "VK_QUERY_RESULT_PARTIAL_BIT"),
-               tcu::Format::BitDesc(VK_QUERY_RESULT_WITH_STATUS_BIT_KHR,       "VK_QUERY_RESULT_WITH_STATUS_BIT_KHR"),
-               tcu::Format::BitDesc(VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM,        "VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_PRESENT_MODE_IMMEDIATE_KHR:                                     return "VK_PRESENT_MODE_IMMEDIATE_KHR";
+               case VK_PRESENT_MODE_MAILBOX_KHR:                                       return "VK_PRESENT_MODE_MAILBOX_KHR";
+               case VK_PRESENT_MODE_FIFO_KHR:                                          return "VK_PRESENT_MODE_FIFO_KHR";
+               case VK_PRESENT_MODE_FIFO_RELAXED_KHR:                          return "VK_PRESENT_MODE_FIFO_RELAXED_KHR";
+               case VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR:         return "VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR";
+               case VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR:     return "VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR";
+               default:                                                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getBufferCreateFlagsStr (VkBufferCreateFlags value)
+tcu::Format::Bitfield<32> getSurfaceTransformFlagsKHRStr (VkSurfaceTransformFlagsKHR value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_BINDING_BIT,                                               "VK_BUFFER_CREATE_SPARSE_BINDING_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,                                             "VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,                                               "VK_BUFFER_CREATE_SPARSE_ALIASED_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_CREATE_PROTECTED_BIT,                                                    "VK_BUFFER_CREATE_PROTECTED_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,                "VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT,    "VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT"),
-               tcu::Format::BitDesc(VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,    "VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"),
-               tcu::Format::BitDesc(VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM,                                               "VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,                                             "VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR"),
+               tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,                                    "VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR"),
+               tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,                                   "VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR"),
+               tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,                                   "VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR"),
+               tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,                    "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR"),
+               tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,  "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR"),
+               tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR, "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR"),
+               tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR, "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"),
+               tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR,                                              "VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getBufferUsageFlagsStr (VkBufferUsageFlags value)
+tcu::Format::Bitfield<32> getDebugReportFlagsEXTStr (VkDebugReportFlagsEXT value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,                                                                          "VK_BUFFER_USAGE_TRANSFER_SRC_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFER_DST_BIT,                                                                          "VK_BUFFER_USAGE_TRANSFER_DST_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,                                                          "VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,                                                          "VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,                                                                        "VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,                                                                        "VK_BUFFER_USAGE_STORAGE_BUFFER_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_INDEX_BUFFER_BIT,                                                                          "VK_BUFFER_USAGE_INDEX_BUFFER_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,                                                                         "VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,                                                                       "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,                                                         "VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,                                         "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,                         "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,                                                     "VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR,      "VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR,                            "VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,                                                      "VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR,                                                          "VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,                                                                        "VK_BUFFER_USAGE_RAY_TRACING_BIT_NV"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,                                                     "VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR,                                                     "VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR"),
-               tcu::Format::BitDesc(VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM,                                                                        "VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM"),
+               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> getImageViewCreateFlagsStr (VkImageViewCreateFlags value)
+const char* getDebugReportObjectTypeEXTName (VkDebugReportObjectTypeEXT value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,         "VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT,        "VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM,                                           "VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT:                                           return "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT:                                          return "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT:                                            return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT:                                         return "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT:                            return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT:                                            return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT:                                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT:                                        return "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT:                                        return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT:                            return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT:                                          return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT:                     return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT:                                           return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT:                            return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT:                                      return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT:                                       return "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT:         return "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_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_VALIDATION_CACHE_EXT_EXT:                      return "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT:                                     return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT:                           return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT:        return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT:        return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT:          return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT:         return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT";
+               case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT:         return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT";
+               default:                                                                                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getPipelineCacheCreateFlagsStr (VkPipelineCacheCreateFlags value)
+const char* getDeviceMemoryReportEventTypeEXTName (VkDeviceMemoryReportEventTypeEXT value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,              "VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT,  "VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM,                               "VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT:                   return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT";
+               case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT:                               return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT";
+               case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT:                             return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT";
+               case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT:                   return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT";
+               case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT:  return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT";
+               default:                                                                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getColorComponentFlagsStr (VkColorComponentFlags value)
+const char* getRasterizationOrderAMDName (VkRasterizationOrderAMD value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_COLOR_COMPONENT_R_BIT,                          "VK_COLOR_COMPONENT_R_BIT"),
-               tcu::Format::BitDesc(VK_COLOR_COMPONENT_G_BIT,                          "VK_COLOR_COMPONENT_G_BIT"),
-               tcu::Format::BitDesc(VK_COLOR_COMPONENT_B_BIT,                          "VK_COLOR_COMPONENT_B_BIT"),
-               tcu::Format::BitDesc(VK_COLOR_COMPONENT_A_BIT,                          "VK_COLOR_COMPONENT_A_BIT"),
-               tcu::Format::BitDesc(VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM,     "VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               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;
+       }
 }
 
-tcu::Format::Bitfield<32> getPipelineCreateFlagsStr (VkPipelineCreateFlags value)
+tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsNVStr (VkExternalMemoryHandleTypeFlagsNV value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               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,                                                               "VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,                                                                                              "VK_PIPELINE_CREATE_DISPATCH_BASE_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,                                                  "VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,                                                                    "VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,                             "VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,                              "VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR,                                    "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR,                                "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR,                                               "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR,                               "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,                                                             "VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,                                                                 "VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR,                 "VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,                                                                                   "VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,                                                                             "VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,                                               "VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,                                                                               "VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,                                                                                                "VK_PIPELINE_CREATE_LIBRARY_BIT_KHR"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT,                                             "VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT,                                                                 "VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV,                                                                "VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE,                                                                                                  "VK_PIPELINE_CREATE_DISPATCH_BASE"),
-               tcu::Format::BitDesc(VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,   "VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,    "VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"),
-               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"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT,                                              "VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT,                                                                "VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM,                                                                                             "VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM"),
+               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> getPipelineShaderStageCreateFlagsStr (VkPipelineShaderStageCreateFlags value)
+tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsNVStr (VkExternalMemoryFeatureFlagsNV value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,           "VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,                        "VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT,       "VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT,            "VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT"),
-               tcu::Format::BitDesc(VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM,                                        "VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM"),
+               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> getShaderStageFlagsStr (VkShaderStageFlags value)
+const char* getValidationCheckEXTName (VkValidationCheckEXT value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_SHADER_STAGE_VERTEX_BIT,                                        "VK_SHADER_STAGE_VERTEX_BIT"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,          "VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,       "VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_GEOMETRY_BIT,                                      "VK_SHADER_STAGE_GEOMETRY_BIT"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_FRAGMENT_BIT,                                      "VK_SHADER_STAGE_FRAGMENT_BIT"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_COMPUTE_BIT,                                       "VK_SHADER_STAGE_COMPUTE_BIT"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_ALL_GRAPHICS,                                      "VK_SHADER_STAGE_ALL_GRAPHICS"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_ALL,                                                       "VK_SHADER_STAGE_ALL"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_RAYGEN_BIT_KHR,                            "VK_SHADER_STAGE_RAYGEN_BIT_KHR"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_ANY_HIT_BIT_KHR,                           "VK_SHADER_STAGE_ANY_HIT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,                       "VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_MISS_BIT_KHR,                                      "VK_SHADER_STAGE_MISS_BIT_KHR"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_INTERSECTION_BIT_KHR,                      "VK_SHADER_STAGE_INTERSECTION_BIT_KHR"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_CALLABLE_BIT_KHR,                          "VK_SHADER_STAGE_CALLABLE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_TASK_BIT_NV,                                       "VK_SHADER_STAGE_TASK_BIT_NV"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_MESH_BIT_NV,                                       "VK_SHADER_STAGE_MESH_BIT_NV"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI,        "VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_RAYGEN_BIT_NV,                                     "VK_SHADER_STAGE_RAYGEN_BIT_NV"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_ANY_HIT_BIT_NV,                            "VK_SHADER_STAGE_ANY_HIT_BIT_NV"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,                        "VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_MISS_BIT_NV,                                       "VK_SHADER_STAGE_MISS_BIT_NV"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_INTERSECTION_BIT_NV,                       "VK_SHADER_STAGE_INTERSECTION_BIT_NV"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_CALLABLE_BIT_NV,                           "VK_SHADER_STAGE_CALLABLE_BIT_NV"),
-               tcu::Format::BitDesc(VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM,                        "VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               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;
+       }
 }
 
-tcu::Format::Bitfield<32> getCullModeFlagsStr (VkCullModeFlags value)
+const char* getValidationFeatureEnableEXTName (VkValidationFeatureEnableEXT value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_CULL_MODE_NONE,                                 "VK_CULL_MODE_NONE"),
-               tcu::Format::BitDesc(VK_CULL_MODE_FRONT_BIT,                    "VK_CULL_MODE_FRONT_BIT"),
-               tcu::Format::BitDesc(VK_CULL_MODE_BACK_BIT,                             "VK_CULL_MODE_BACK_BIT"),
-               tcu::Format::BitDesc(VK_CULL_MODE_FRONT_AND_BACK,               "VK_CULL_MODE_FRONT_AND_BACK"),
-               tcu::Format::BitDesc(VK_CULL_MODE_FLAG_BITS_MAX_ENUM,   "VK_CULL_MODE_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT:                                                     return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT";
+               case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT:        return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT";
+               case VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT:                                           return "VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT";
+               case VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT:                                                     return "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT";
+               case VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT:                       return "VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT";
+               default:                                                                                                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getPipelineDepthStencilStateCreateFlagsStr (VkPipelineDepthStencilStateCreateFlags value)
+const char* getValidationFeatureDisableEXTName (VkValidationFeatureDisableEXT value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM,        "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM"),
-               tcu::Format::BitDesc(VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM,      "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM"),
-               tcu::Format::BitDesc(VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM,                                                                         "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_VALIDATION_FEATURE_DISABLE_ALL_EXT:                                             return "VK_VALIDATION_FEATURE_DISABLE_ALL_EXT";
+               case VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT:                                 return "VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT";
+               case VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT:                   return "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT";
+               case VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT:                  return "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT";
+               case VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT:                return "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT";
+               case VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT:                             return "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT";
+               case VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT:                  return "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT";
+               case VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT: return "VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT";
+               default:                                                                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getPipelineColorBlendStateCreateFlagsStr (VkPipelineColorBlendStateCreateFlags value)
+tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsStr (VkExternalMemoryHandleTypeFlags value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM,        "VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM"),
-               tcu::Format::BitDesc(VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM,                                                           "VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,                                                      "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,                                           "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,                                       "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,                                          "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,                                      "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,                                                     "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,                                         "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,                            "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT,         "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,                                            "VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,        "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA,                                     "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV,                                        "VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getPipelineLayoutCreateFlagsStr (VkPipelineLayoutCreateFlags value)
+tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsStr (VkExternalMemoryFeatureFlags value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT,        "VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT"),
-               tcu::Format::BitDesc(VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM,                      "VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,     "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,         "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,         "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getSamplerCreateFlagsStr (VkSamplerCreateFlags value)
+tcu::Format::Bitfield<32> getExternalSemaphoreHandleTypeFlagsStr (VkExternalSemaphoreHandleTypeFlags value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,                                                      "VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT,        "VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT"),
-               tcu::Format::BitDesc(VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT,                           "VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT"),
-               tcu::Format::BitDesc(VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM,                                       "VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM"),
-               tcu::Format::BitDesc(VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM,                                                      "VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,                           "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,                        "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,            "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,                         "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,                                     "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA,        "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getDescriptorPoolCreateFlagsStr (VkDescriptorPoolCreateFlags value)
+tcu::Format::Bitfield<32> getExternalSemaphoreFeatureFlagsStr (VkExternalSemaphoreFeatureFlags value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,         "VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT"),
-               tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,           "VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT"),
-               tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE,                     "VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE"),
-               tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT,       "VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT"),
-               tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM,                      "VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,      "VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,      "VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getDescriptorSetLayoutCreateFlagsStr (VkDescriptorSetLayoutCreateFlags value)
+tcu::Format::Bitfield<32> getSemaphoreImportFlagsStr (VkSemaphoreImportFlags value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,                "VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT"),
-               tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,                   "VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR"),
-               tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE,                  "VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE"),
-               tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT,    "VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT"),
-               tcu::Format::BitDesc(VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM,                                "VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_SEMAPHORE_IMPORT_TEMPORARY_BIT, "VK_SEMAPHORE_IMPORT_TEMPORARY_BIT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getAttachmentDescriptionFlagsStr (VkAttachmentDescriptionFlags value)
+tcu::Format::Bitfield<32> getExternalFenceHandleTypeFlagsStr (VkExternalFenceHandleTypeFlags value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT,           "VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT"),
-               tcu::Format::BitDesc(VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM,      "VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,                       "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,            "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,        "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,                         "VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getDependencyFlagsStr (VkDependencyFlags value)
+tcu::Format::Bitfield<32> getExternalFenceFeatureFlagsStr (VkExternalFenceFeatureFlags 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_DEVICE_GROUP_BIT,            "VK_DEPENDENCY_DEVICE_GROUP_BIT"),
-               tcu::Format::BitDesc(VK_DEPENDENCY_VIEW_LOCAL_BIT,                      "VK_DEPENDENCY_VIEW_LOCAL_BIT"),
-               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"),
-               tcu::Format::BitDesc(VK_DEPENDENCY_FLAG_BITS_MAX_ENUM,          "VK_DEPENDENCY_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,  "VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"),
+               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,  "VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getFramebufferCreateFlagsStr (VkFramebufferCreateFlags value)
+tcu::Format::Bitfield<32> getFenceImportFlagsStr (VkFenceImportFlags value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,               "VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT"),
-               tcu::Format::BitDesc(VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR,   "VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR"),
-               tcu::Format::BitDesc(VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM,  "VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_FENCE_IMPORT_TEMPORARY_BIT,     "VK_FENCE_IMPORT_TEMPORARY_BIT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getRenderPassCreateFlagsStr (VkRenderPassCreateFlags value)
+tcu::Format::Bitfield<32> getSurfaceCounterFlagsEXTStr (VkSurfaceCounterFlagsEXT value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM,  "VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM"),
-               tcu::Format::BitDesc(VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM,  "VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_SURFACE_COUNTER_VBLANK_BIT_EXT, "VK_SURFACE_COUNTER_VBLANK_BIT_EXT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getSubpassDescriptionFlagsStr (VkSubpassDescriptionFlags value)
+const char* getDisplayPowerStateEXTName (VkDisplayPowerStateEXT value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               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"),
-               tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,                                                           "VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM"),
-               tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM,                                                            "VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM"),
-               tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM,        "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM"),
-               tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM,        "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM"),
-               tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM,      "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM"),
-               tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM,                                                                         "VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               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;
+       }
 }
 
-tcu::Format::Bitfield<32> getCommandPoolCreateFlagsStr (VkCommandPoolCreateFlags value)
+const char* getDeviceEventTypeEXTName (VkDeviceEventTypeEXT value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,                              "VK_COMMAND_POOL_CREATE_TRANSIENT_BIT"),
-               tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,   "VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT"),
-               tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_PROTECTED_BIT,                              "VK_COMMAND_POOL_CREATE_PROTECTED_BIT"),
-               tcu::Format::BitDesc(VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM,                 "VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT:  return "VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT";
+               default:                                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getCommandPoolResetFlagsStr (VkCommandPoolResetFlags value)
+const char* getDisplayEventTypeEXTName (VkDisplayEventTypeEXT value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT,       "VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT"),
-               tcu::Format::BitDesc(VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM,          "VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT: return "VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT";
+               default:                                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getCommandBufferUsageFlagsStr (VkCommandBufferUsageFlags value)
+tcu::Format::Bitfield<32> getPeerMemoryFeatureFlagsStr (VkPeerMemoryFeatureFlags value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,               "VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT"),
-               tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,  "VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT"),
-               tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT,              "VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT"),
-               tcu::Format::BitDesc(VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM,                "VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,               "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT"),
+               tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,               "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT"),
+               tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,    "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"),
+               tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,    "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getQueryControlFlagsStr (VkQueryControlFlags value)
+tcu::Format::Bitfield<32> getMemoryAllocateFlagsStr (VkMemoryAllocateFlags value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_QUERY_CONTROL_PRECISE_BIT,                      "VK_QUERY_CONTROL_PRECISE_BIT"),
-               tcu::Format::BitDesc(VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM,       "VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,                                        "VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT"),
+               tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,                                     "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT"),
+               tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,      "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getCommandBufferResetFlagsStr (VkCommandBufferResetFlags value)
+tcu::Format::Bitfield<32> getDeviceGroupPresentModeFlagsKHRStr (VkDeviceGroupPresentModeFlagsKHR value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT,     "VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT"),
-               tcu::Format::BitDesc(VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM,        "VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM"),
+               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));
 }
 
-tcu::Format::Bitfield<32> getStencilFaceFlagsStr (VkStencilFaceFlags value)
+tcu::Format::Bitfield<32> getSwapchainCreateFlagsKHRStr (VkSwapchainCreateFlagsKHR value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_BIT,                         "VK_STENCIL_FACE_FRONT_BIT"),
-               tcu::Format::BitDesc(VK_STENCIL_FACE_BACK_BIT,                          "VK_STENCIL_FACE_BACK_BIT"),
-               tcu::Format::BitDesc(VK_STENCIL_FACE_FRONT_AND_BACK,            "VK_STENCIL_FACE_FRONT_AND_BACK"),
-               tcu::Format::BitDesc(VK_STENCIL_FRONT_AND_BACK,                         "VK_STENCIL_FRONT_AND_BACK"),
-               tcu::Format::BitDesc(VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM,        "VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,   "VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"),
+               tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,                                             "VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR"),
+               tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR,                                "VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
@@ -3702,1010 +3610,903 @@ tcu::Format::Bitfield<32> getSubgroupFeatureFlagsStr (VkSubgroupFeatureFlags val
                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"),
                tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV,    "VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV"),
-               tcu::Format::BitDesc(VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM,    "VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
-}
-
-tcu::Format::Bitfield<32> getPeerMemoryFeatureFlagsStr (VkPeerMemoryFeatureFlags value)
-{
-       static const tcu::Format::BitDesc s_desc[] =
-       {
-               tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,                       "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT"),
-               tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,                       "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT"),
-               tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,            "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"),
-               tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,            "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT"),
-               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"),
-               tcu::Format::BitDesc(VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM,         "VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getMemoryAllocateFlagsStr (VkMemoryAllocateFlags value)
+const char* getTessellationDomainOriginName (VkTessellationDomainOrigin value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,                                                "VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT"),
-               tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,                                             "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT"),
-               tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,              "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"),
-               tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR,                                    "VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR"),
-               tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR,                                 "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR"),
-               tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,  "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"),
-               tcu::Format::BitDesc(VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM,                                             "VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT:  return "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT";
+               case VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT:  return "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT";
+               default:                                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsStr (VkExternalMemoryHandleTypeFlags value)
+const char* getSamplerYcbcrModelConversionName (VkSamplerYcbcrModelConversion value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,                                                      "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,                                           "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,                                       "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,                                          "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,                                      "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,                                                     "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,                                         "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,                                            "VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,        "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,                            "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT,         "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA,                                     "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV,                                        "VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,                                          "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,                                       "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,                           "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR,                                      "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR,                          "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR,                                         "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR,                                     "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM,                                         "VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY:    return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY";
+               case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY:  return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY";
+               case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709:               return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709";
+               case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601:               return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601";
+               case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020:              return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020";
+               default:                                                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsStr (VkExternalMemoryFeatureFlags value)
+const char* getSamplerYcbcrRangeName (VkSamplerYcbcrRange value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,             "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,                 "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,                 "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR, "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR,             "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR,             "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM,             "VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_SAMPLER_YCBCR_RANGE_ITU_FULL:   return "VK_SAMPLER_YCBCR_RANGE_ITU_FULL";
+               case VK_SAMPLER_YCBCR_RANGE_ITU_NARROW: return "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW";
+               default:                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getExternalFenceHandleTypeFlagsStr (VkExternalFenceHandleTypeFlags value)
+const char* getChromaLocationName (VkChromaLocation value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,                               "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,                    "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,                "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,                                 "VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"),
-               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"),
-               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM,                  "VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_CHROMA_LOCATION_COSITED_EVEN:   return "VK_CHROMA_LOCATION_COSITED_EVEN";
+               case VK_CHROMA_LOCATION_MIDPOINT:               return "VK_CHROMA_LOCATION_MIDPOINT";
+               default:                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getExternalFenceFeatureFlagsStr (VkExternalFenceFeatureFlags value)
+const char* getSamplerReductionModeName (VkSamplerReductionMode value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,          "VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,          "VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"),
-               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_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM,      "VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE:        return "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE";
+               case VK_SAMPLER_REDUCTION_MODE_MIN:                                     return "VK_SAMPLER_REDUCTION_MODE_MIN";
+               case VK_SAMPLER_REDUCTION_MODE_MAX:                                     return "VK_SAMPLER_REDUCTION_MODE_MAX";
+               default:                                                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getFenceImportFlagsStr (VkFenceImportFlags value)
+const char* getBlendOverlapEXTName (VkBlendOverlapEXT value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_FENCE_IMPORT_TEMPORARY_BIT,                     "VK_FENCE_IMPORT_TEMPORARY_BIT"),
-               tcu::Format::BitDesc(VK_FENCE_IMPORT_TEMPORARY_BIT_KHR,         "VK_FENCE_IMPORT_TEMPORARY_BIT_KHR"),
-               tcu::Format::BitDesc(VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM,        "VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               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;
+       }
 }
 
-tcu::Format::Bitfield<32> getSemaphoreImportFlagsStr (VkSemaphoreImportFlags value)
+tcu::Format::Bitfield<32> getDebugUtilsMessageSeverityFlagsEXTStr (VkDebugUtilsMessageSeverityFlagsEXT value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,                 "VK_SEMAPHORE_IMPORT_TEMPORARY_BIT"),
-               tcu::Format::BitDesc(VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR,             "VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR"),
-               tcu::Format::BitDesc(VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM,    "VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,   "VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,              "VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT"),
+               tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,   "VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT"),
+               tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT,             "VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getExternalSemaphoreHandleTypeFlagsStr (VkExternalSemaphoreHandleTypeFlags value)
+tcu::Format::Bitfield<32> getDebugUtilsMessageTypeFlagsEXTStr (VkDebugUtilsMessageTypeFlagsEXT value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,                           "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,                        "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,            "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,                         "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,                                     "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA,        "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA"),
-               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT,                         "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,                       "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,            "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,        "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR,                     "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR,                         "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM,                      "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,               "VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT"),
+               tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,    "VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT"),
+               tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT,   "VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getExternalSemaphoreFeatureFlagsStr (VkExternalSemaphoreFeatureFlags value)
+const char* getFullScreenExclusiveEXTName (VkFullScreenExclusiveEXT value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,              "VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,              "VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"),
-               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR,  "VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR,  "VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM,  "VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT:                                      return "VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT";
+               case VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT:                                      return "VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT";
+               case VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT:                           return "VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT";
+               case VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT:       return "VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT";
+               default:                                                                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getResolveModeFlagsStr (VkResolveModeFlags value)
+const char* getShaderFloatControlsIndependenceName (VkShaderFloatControlsIndependence value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_RESOLVE_MODE_NONE,                                      "VK_RESOLVE_MODE_NONE"),
-               tcu::Format::BitDesc(VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,           "VK_RESOLVE_MODE_SAMPLE_ZERO_BIT"),
-               tcu::Format::BitDesc(VK_RESOLVE_MODE_AVERAGE_BIT,                       "VK_RESOLVE_MODE_AVERAGE_BIT"),
-               tcu::Format::BitDesc(VK_RESOLVE_MODE_MIN_BIT,                           "VK_RESOLVE_MODE_MIN_BIT"),
-               tcu::Format::BitDesc(VK_RESOLVE_MODE_MAX_BIT,                           "VK_RESOLVE_MODE_MAX_BIT"),
-               tcu::Format::BitDesc(VK_RESOLVE_MODE_NONE_KHR,                          "VK_RESOLVE_MODE_NONE_KHR"),
-               tcu::Format::BitDesc(VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR,       "VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR"),
-               tcu::Format::BitDesc(VK_RESOLVE_MODE_AVERAGE_BIT_KHR,           "VK_RESOLVE_MODE_AVERAGE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_RESOLVE_MODE_MIN_BIT_KHR,                       "VK_RESOLVE_MODE_MIN_BIT_KHR"),
-               tcu::Format::BitDesc(VK_RESOLVE_MODE_MAX_BIT_KHR,                       "VK_RESOLVE_MODE_MAX_BIT_KHR"),
-               tcu::Format::BitDesc(VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM,        "VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY: return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY";
+               case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL:                 return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL";
+               case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE:                return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE";
+               default:                                                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getDescriptorBindingFlagsStr (VkDescriptorBindingFlags value)
+tcu::Format::Bitfield<32> getSwapchainImageUsageFlagsANDROIDStr (VkSwapchainImageUsageFlagsANDROID value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,                               "VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT"),
-               tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,             "VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT"),
-               tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,                                 "VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT"),
-               tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,               "VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT"),
-               tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT,                   "VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT"),
-               tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT, "VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT"),
-               tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT,                             "VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT"),
-               tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT,   "VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT"),
-               tcu::Format::BitDesc(VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM,                                  "VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID,       "VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getSemaphoreWaitFlagsStr (VkSemaphoreWaitFlags value)
+const char* getFragmentShadingRateCombinerOpKHRName (VkFragmentShadingRateCombinerOpKHR value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_SEMAPHORE_WAIT_ANY_BIT,                         "VK_SEMAPHORE_WAIT_ANY_BIT"),
-               tcu::Format::BitDesc(VK_SEMAPHORE_WAIT_ANY_BIT_KHR,                     "VK_SEMAPHORE_WAIT_ANY_BIT_KHR"),
-               tcu::Format::BitDesc(VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM,      "VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR:             return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR";
+               case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR:  return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR";
+               case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR:              return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR";
+               case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR:              return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR";
+               case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR:              return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR";
+               default:                                                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getPipelineCreationFeedbackFlagsStr (VkPipelineCreationFeedbackFlags value)
+tcu::Format::Bitfield<32> getSubmitFlagsStr (VkSubmitFlags value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,                                                           "VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,          "VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,                      "VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT,                                                       "VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT,      "VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT,          "VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT"),
-               tcu::Format::BitDesc(VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM,                                          "VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_SUBMIT_PROTECTED_BIT,   "VK_SUBMIT_PROTECTED_BIT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getToolPurposeFlagsStr (VkToolPurposeFlags value)
+tcu::Format::Bitfield<32> getGraphicsPipelineLibraryFlagsEXTStr (VkGraphicsPipelineLibraryFlagsEXT value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_TOOL_PURPOSE_VALIDATION_BIT,                            "VK_TOOL_PURPOSE_VALIDATION_BIT"),
-               tcu::Format::BitDesc(VK_TOOL_PURPOSE_PROFILING_BIT,                                     "VK_TOOL_PURPOSE_PROFILING_BIT"),
-               tcu::Format::BitDesc(VK_TOOL_PURPOSE_TRACING_BIT,                                       "VK_TOOL_PURPOSE_TRACING_BIT"),
-               tcu::Format::BitDesc(VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,           "VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT"),
-               tcu::Format::BitDesc(VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,            "VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT"),
-               tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT,           "VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT"),
-               tcu::Format::BitDesc(VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT,                     "VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT"),
-               tcu::Format::BitDesc(VK_TOOL_PURPOSE_VALIDATION_BIT_EXT,                        "VK_TOOL_PURPOSE_VALIDATION_BIT_EXT"),
-               tcu::Format::BitDesc(VK_TOOL_PURPOSE_PROFILING_BIT_EXT,                         "VK_TOOL_PURPOSE_PROFILING_BIT_EXT"),
-               tcu::Format::BitDesc(VK_TOOL_PURPOSE_TRACING_BIT_EXT,                           "VK_TOOL_PURPOSE_TRACING_BIT_EXT"),
-               tcu::Format::BitDesc(VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT,       "VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT"),
-               tcu::Format::BitDesc(VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT,        "VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT"),
-               tcu::Format::BitDesc(VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM,                        "VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM"),
+               tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT,               "VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,    "VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT"),
+               tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,                              "VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT"),
+               tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT,    "VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getSubmitFlagsStr (VkSubmitFlags value)
+const char* getVendorIdName (VkVendorId value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_SUBMIT_PROTECTED_BIT,           "VK_SUBMIT_PROTECTED_BIT"),
-               tcu::Format::BitDesc(VK_SUBMIT_PROTECTED_BIT_KHR,       "VK_SUBMIT_PROTECTED_BIT_KHR"),
-               tcu::Format::BitDesc(VK_SUBMIT_FLAG_BITS_MAX_ENUM,      "VK_SUBMIT_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_VENDOR_ID_VIV:          return "VK_VENDOR_ID_VIV";
+               case VK_VENDOR_ID_VSI:          return "VK_VENDOR_ID_VSI";
+               case VK_VENDOR_ID_KAZAN:        return "VK_VENDOR_ID_KAZAN";
+               case VK_VENDOR_ID_CODEPLAY:     return "VK_VENDOR_ID_CODEPLAY";
+               case VK_VENDOR_ID_MESA:         return "VK_VENDOR_ID_MESA";
+               case VK_VENDOR_ID_POCL:         return "VK_VENDOR_ID_POCL";
+               default:                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getRenderingFlagsStr (VkRenderingFlags value)
+const char* getDriverIdName (VkDriverId value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,               "VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT"),
-               tcu::Format::BitDesc(VK_RENDERING_SUSPENDING_BIT,                                                               "VK_RENDERING_SUSPENDING_BIT"),
-               tcu::Format::BitDesc(VK_RENDERING_RESUMING_BIT,                                                                 "VK_RENDERING_RESUMING_BIT"),
-               tcu::Format::BitDesc(VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR,   "VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR"),
-               tcu::Format::BitDesc(VK_RENDERING_SUSPENDING_BIT_KHR,                                                   "VK_RENDERING_SUSPENDING_BIT_KHR"),
-               tcu::Format::BitDesc(VK_RENDERING_RESUMING_BIT_KHR,                                                             "VK_RENDERING_RESUMING_BIT_KHR"),
-               tcu::Format::BitDesc(VK_RENDERING_FLAG_BITS_MAX_ENUM,                                                   "VK_RENDERING_FLAG_BITS_MAX_ENUM"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_DRIVER_ID_AMD_PROPRIETARY:                              return "VK_DRIVER_ID_AMD_PROPRIETARY";
+               case VK_DRIVER_ID_AMD_OPEN_SOURCE:                              return "VK_DRIVER_ID_AMD_OPEN_SOURCE";
+               case VK_DRIVER_ID_MESA_RADV:                                    return "VK_DRIVER_ID_MESA_RADV";
+               case VK_DRIVER_ID_NVIDIA_PROPRIETARY:                   return "VK_DRIVER_ID_NVIDIA_PROPRIETARY";
+               case VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS:    return "VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS";
+               case VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA:               return "VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA";
+               case VK_DRIVER_ID_IMAGINATION_PROPRIETARY:              return "VK_DRIVER_ID_IMAGINATION_PROPRIETARY";
+               case VK_DRIVER_ID_QUALCOMM_PROPRIETARY:                 return "VK_DRIVER_ID_QUALCOMM_PROPRIETARY";
+               case VK_DRIVER_ID_ARM_PROPRIETARY:                              return "VK_DRIVER_ID_ARM_PROPRIETARY";
+               case VK_DRIVER_ID_GOOGLE_SWIFTSHADER:                   return "VK_DRIVER_ID_GOOGLE_SWIFTSHADER";
+               case VK_DRIVER_ID_GGP_PROPRIETARY:                              return "VK_DRIVER_ID_GGP_PROPRIETARY";
+               case VK_DRIVER_ID_BROADCOM_PROPRIETARY:                 return "VK_DRIVER_ID_BROADCOM_PROPRIETARY";
+               case VK_DRIVER_ID_MESA_LLVMPIPE:                                return "VK_DRIVER_ID_MESA_LLVMPIPE";
+               case VK_DRIVER_ID_MOLTENVK:                                             return "VK_DRIVER_ID_MOLTENVK";
+               case VK_DRIVER_ID_COREAVI_PROPRIETARY:                  return "VK_DRIVER_ID_COREAVI_PROPRIETARY";
+               case VK_DRIVER_ID_JUICE_PROPRIETARY:                    return "VK_DRIVER_ID_JUICE_PROPRIETARY";
+               case VK_DRIVER_ID_VERISILICON_PROPRIETARY:              return "VK_DRIVER_ID_VERISILICON_PROPRIETARY";
+               case VK_DRIVER_ID_MESA_TURNIP:                                  return "VK_DRIVER_ID_MESA_TURNIP";
+               case VK_DRIVER_ID_MESA_V3DV:                                    return "VK_DRIVER_ID_MESA_V3DV";
+               case VK_DRIVER_ID_MESA_PANVK:                                   return "VK_DRIVER_ID_MESA_PANVK";
+               case VK_DRIVER_ID_SAMSUNG_PROPRIETARY:                  return "VK_DRIVER_ID_SAMSUNG_PROPRIETARY";
+               case VK_DRIVER_ID_MESA_VENUS:                                   return "VK_DRIVER_ID_MESA_VENUS";
+               case VK_DRIVER_ID_MESA_DOZEN:                                   return "VK_DRIVER_ID_MESA_DOZEN";
+               default:                                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getSurfaceTransformFlagsKHRStr (VkSurfaceTransformFlagsKHR value)
+const char* getShadingRatePaletteEntryNVName (VkShadingRatePaletteEntryNV value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,                                             "VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR"),
-               tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,                                    "VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR"),
-               tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,                                   "VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR"),
-               tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,                                   "VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR"),
-               tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,                    "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR"),
-               tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,  "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR"),
-               tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR, "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR"),
-               tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR, "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"),
-               tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR,                                              "VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR,                               "VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV:                           return "VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV";
+               case VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV:         return "VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV";
+               case VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV:          return "VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV";
+               case VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV:          return "VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV";
+               case VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV:          return "VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV";
+               case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV:           return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV";
+               case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV";
+               case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV";
+               case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV";
+               case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV";
+               case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV";
+               case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV:      return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV";
+               default:                                                                                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getCompositeAlphaFlagsKHRStr (VkCompositeAlphaFlagsKHR value)
+const char* getCoarseSampleOrderTypeNVName (VkCoarseSampleOrderTypeNV value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,                         "VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,         "VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR"),
-               tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,        "VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR"),
-               tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR,                        "VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR,         "VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV:            return "VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV";
+               case VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV:                     return "VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV";
+               case VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV:        return "VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV";
+               case VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV:       return "VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV";
+               default:                                                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getSwapchainCreateFlagsKHRStr (VkSwapchainCreateFlagsKHR value)
+const char* getPipelineExecutableStatisticFormatKHRName (VkPipelineExecutableStatisticFormatKHR value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,   "VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"),
-               tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,                                             "VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR"),
-               tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR,                                "VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR,                                "VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR:        return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR";
+               case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR:         return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR";
+               case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR:        return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR";
+               case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR:       return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR";
+               default:                                                                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getDeviceGroupPresentModeFlagsKHRStr (VkDeviceGroupPresentModeFlagsKHR value)
+tcu::Format::Bitfield<32> getVideoCodecOperationFlagsKHRStr (VkVideoCodecOperationFlagsKHR value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               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"),
-               tcu::Format::BitDesc(VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR,               "VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR,          "VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT,      "VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT,      "VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT,      "VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT,      "VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getDisplayPlaneAlphaFlagsKHRStr (VkDisplayPlaneAlphaFlagsKHR value)
+tcu::Format::Bitfield<32> getVideoChromaSubsamplingFlagsKHRStr (VkVideoChromaSubsamplingFlagsKHR value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,                                             "VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,                                             "VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR"),
-               tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,                                  "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR"),
-               tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR,    "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR"),
-               tcu::Format::BitDesc(VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR,                             "VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR,               "VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR,    "VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,                   "VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR,                   "VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR,                   "VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getPerformanceCounterDescriptionFlagsKHRStr (VkPerformanceCounterDescriptionFlagsKHR value)
+tcu::Format::Bitfield<32> getVideoComponentBitDepthFlagsKHRStr (VkVideoComponentBitDepthFlagsKHR value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,  "VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR"),
-               tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,  "VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR"),
-               tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR,              "VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR"),
-               tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR,              "VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR"),
-               tcu::Format::BitDesc(VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR,                 "VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR,  "VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR,    "VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR,   "VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR,   "VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getAcquireProfilingLockFlagsKHRStr (VkAcquireProfilingLockFlagsKHR value)
+tcu::Format::Bitfield<32> getVideoCapabilityFlagsKHRStr (VkVideoCapabilityFlagsKHR value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR,  "VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR,                     "VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR,     "VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_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> getVideoSessionCreateFlagsKHRStr (VkVideoSessionCreateFlagsKHR 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_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT,            "VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_DEFAULT_KHR,                               "VK_VIDEO_SESSION_CREATE_DEFAULT_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR, "VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getExternalMemoryHandleTypeFlagsNVStr (VkExternalMemoryHandleTypeFlagsNV value)
+tcu::Format::Bitfield<32> getVideoCodingQualityPresetFlagsKHRStr (VkVideoCodingQualityPresetFlagsKHR value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               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"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV,              "VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV"),
+               tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR,             "VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR,              "VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR,    "VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getExternalMemoryFeatureFlagsNVStr (VkExternalMemoryFeatureFlagsNV value)
+tcu::Format::Bitfield<32> getVideoCodingControlFlagsKHRStr (VkVideoCodingControlFlagsKHR value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               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"),
-               tcu::Format::BitDesc(VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV,  "VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV"),
+               tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_DEFAULT_KHR,       "VK_VIDEO_CODING_CONTROL_DEFAULT_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR,     "VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getConditionalRenderingFlagsEXTStr (VkConditionalRenderingFlagsEXT value)
+const char* getQueryResultStatusKHRName (VkQueryResultStatusKHR value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT,                 "VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT,   "VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_QUERY_RESULT_STATUS_ERROR_KHR:          return "VK_QUERY_RESULT_STATUS_ERROR_KHR";
+               case VK_QUERY_RESULT_STATUS_NOT_READY_KHR:      return "VK_QUERY_RESULT_STATUS_NOT_READY_KHR";
+               case VK_QUERY_RESULT_STATUS_COMPLETE_KHR:       return "VK_QUERY_RESULT_STATUS_COMPLETE_KHR";
+               default:                                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getSurfaceCounterFlagsEXTStr (VkSurfaceCounterFlagsEXT value)
+tcu::Format::Bitfield<32> getVideoDecodeCapabilityFlagsKHRStr (VkVideoDecodeCapabilityFlagsKHR value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_SURFACE_COUNTER_VBLANK_BIT_EXT,                 "VK_SURFACE_COUNTER_VBLANK_BIT_EXT"),
-               tcu::Format::BitDesc(VK_SURFACE_COUNTER_VBLANK_EXT,                             "VK_SURFACE_COUNTER_VBLANK_EXT"),
-               tcu::Format::BitDesc(VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT, "VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_DECODE_CAPABILITY_DEFAULT_KHR,                                            "VK_VIDEO_DECODE_CAPABILITY_DEFAULT_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR,        "VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR,        "VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getDebugUtilsMessageSeverityFlagsEXTStr (VkDebugUtilsMessageSeverityFlagsEXT value)
+tcu::Format::Bitfield<32> getVideoDecodeFlagsKHRStr (VkVideoDecodeFlagsKHR value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,                   "VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,                              "VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT"),
-               tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,                   "VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT"),
-               tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT,                             "VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT"),
-               tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT,    "VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_DECODE_DEFAULT_KHR,                       "VK_VIDEO_DECODE_DEFAULT_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_DECODE_RESERVED_0_BIT_KHR,        "VK_VIDEO_DECODE_RESERVED_0_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getDebugUtilsMessageTypeFlagsEXTStr (VkDebugUtilsMessageTypeFlagsEXT value)
+tcu::Format::Bitfield<32> getVideoDecodeH264PictureLayoutFlagsEXTStr (VkVideoDecodeH264PictureLayoutFlagsEXT value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,                       "VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT"),
-               tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,            "VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT"),
-               tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT,           "VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT,        "VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT,                                               "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT,  "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT,    "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getGeometryFlagsKHRStr (VkGeometryFlagsKHR value)
+tcu::Format::Bitfield<32> getVideoEncodeFlagsKHRStr (VkVideoEncodeFlagsKHR value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_GEOMETRY_OPAQUE_BIT_KHR,                                                        "VK_GEOMETRY_OPAQUE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,       "VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR"),
-               tcu::Format::BitDesc(VK_GEOMETRY_OPAQUE_BIT_NV,                                                         "VK_GEOMETRY_OPAQUE_BIT_NV"),
-               tcu::Format::BitDesc(VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV,        "VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV"),
-               tcu::Format::BitDesc(VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR,                                        "VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_DEFAULT_KHR,                       "VK_VIDEO_ENCODE_DEFAULT_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR,        "VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getGeometryInstanceFlagsKHRStr (VkGeometryInstanceFlagsKHR value)
+tcu::Format::Bitfield<32> getVideoEncodeCapabilityFlagsKHRStr (VkVideoEncodeCapabilityFlagsKHR value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,         "VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,                         "VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR"),
-               tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,                                         "VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,                                      "VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,      "VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV,                         "VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV"),
-               tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV,       "VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV"),
-               tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV,                                          "VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV"),
-               tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV,                                       "VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV"),
-               tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR,                                       "VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_CAPABILITY_DEFAULT_KHR,                                                            "VK_VIDEO_ENCODE_CAPABILITY_DEFAULT_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR,     "VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getBuildAccelerationStructureFlagsKHRStr (VkBuildAccelerationStructureFlagsKHR value)
+tcu::Format::Bitfield<32> getVideoEncodeRateControlFlagsKHRStr (VkVideoEncodeRateControlFlagsKHR value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,              "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,  "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR, "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR, "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,                "VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV,                             "VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV,               "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV,   "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV,  "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV,  "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV,                 "VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR,    "VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR,                  "VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR,   "VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getPipelineCompilerControlFlagsAMDStr (VkPipelineCompilerControlFlagsAMD value)
+tcu::Format::Bitfield<32> getVideoEncodeRateControlModeFlagsKHRStr (VkVideoEncodeRateControlModeFlagsKHR value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD,       "VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR,    "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR,             "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR,             "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getShaderCorePropertiesFlagsAMDStr (VkShaderCorePropertiesFlagsAMD value)
+tcu::Format::Bitfield<32> getVideoEncodeH264CapabilityFlagsEXTStr (VkVideoEncodeH264CapabilityFlagsEXT value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD,  "VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT,              "VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT,             "VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT,                             "VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT,   "VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT,                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT,                                    "VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT,                                  "VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT,                   "VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT,                               "VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT,                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT,                  "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT,                  "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT,                    "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT,                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT,                                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT,                                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT,                "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT,                 "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT,                 "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT,    "VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT,                  "VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT,                                    "VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT,                               "VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT,                              "VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT,                                "VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getIndirectStateFlagsNVStr (VkIndirectStateFlagsNV value)
+tcu::Format::Bitfield<32> getVideoEncodeH264InputModeFlagsEXTStr (VkVideoEncodeH264InputModeFlagsEXT value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV,   "VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV"),
-               tcu::Format::BitDesc(VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV,   "VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT,             "VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT,             "VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT,   "VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getIndirectCommandsLayoutUsageFlagsNVStr (VkIndirectCommandsLayoutUsageFlagsNV value)
+tcu::Format::Bitfield<32> getVideoEncodeH264OutputModeFlagsEXTStr (VkVideoEncodeH264OutputModeFlagsEXT value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,      "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV"),
-               tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,        "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV"),
-               tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV,      "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV"),
-               tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV,           "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT,    "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT,    "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT,  "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getDeviceDiagnosticsConfigFlagsNVStr (VkDeviceDiagnosticsConfigFlagsNV value)
+tcu::Format::Bitfield<32> getVideoEncodeH264RateControlStructureFlagsEXTStr (VkVideoEncodeH264RateControlStructureFlagsEXT value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,              "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV"),
-               tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,              "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV"),
-               tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV,  "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV"),
-               tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV, "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV"),
-               tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV,                                "VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT,           "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT,          "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT,        "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getGraphicsPipelineLibraryFlagsEXTStr (VkGraphicsPipelineLibraryFlagsEXT value)
+tcu::Format::Bitfield<32> getVideoEncodeH265CapabilityFlagsEXTStr (VkVideoEncodeH265CapabilityFlagsEXT value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT,               "VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT,    "VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT"),
-               tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT,                              "VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT"),
-               tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT,    "VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT,                               "VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT,                                     "VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT,                                                     "VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT,            "VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT,                                                        "VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT,                          "VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT,                                            "VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT,                                           "VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT,          "VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT,                          "VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT,                            "VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT,       "VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT,                                                     "VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT,                                           "VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT,                            "VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT,                         "VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT,                       "VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT,        "VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT,                       "VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT,                                      "VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT,                                        "VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getImageCompressionFlagsEXTStr (VkImageCompressionFlagsEXT value)
+tcu::Format::Bitfield<32> getVideoEncodeH265InputModeFlagsEXTStr (VkVideoEncodeH265InputModeFlagsEXT value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_DEFAULT_EXT,                          "VK_IMAGE_COMPRESSION_DEFAULT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT,       "VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT,      "VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_DISABLED_EXT,                         "VK_IMAGE_COMPRESSION_DISABLED_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT,       "VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT,                     "VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT,     "VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT,           "VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getImageCompressionFixedRateFlagsEXTStr (VkImageCompressionFixedRateFlagsEXT value)
+tcu::Format::Bitfield<32> getVideoEncodeH265OutputModeFlagsEXTStr (VkVideoEncodeH265OutputModeFlagsEXT value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT,                                  "VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT,                              "VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT,                              "VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT,                              "VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT,                              "VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT,                              "VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT,                              "VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT,                              "VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT,                              "VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT,                              "VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT,                             "VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT,    "VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT,                    "VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT,    "VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT,                  "VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getAccelerationStructureCreateFlagsKHRStr (VkAccelerationStructureCreateFlagsKHR value)
+tcu::Format::Bitfield<32> getVideoEncodeH265RateControlStructureFlagsEXTStr (VkVideoEncodeH265RateControlStructureFlagsEXT value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR,    "VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"),
-               tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV,                                                    "VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV"),
-               tcu::Format::BitDesc(VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR,                                   "VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT,           "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT,          "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT,        "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getVideoCodecOperationFlagsKHRStr (VkVideoCodecOperationFlagsKHR value)
+tcu::Format::Bitfield<32> getVideoEncodeH265CtbSizeFlagsEXTStr (VkVideoEncodeH265CtbSizeFlagsEXT value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR,                  "VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT,              "VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT,              "VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT,              "VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT,              "VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR,   "VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT,  "VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT,  "VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT,  "VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getVideoChromaSubsamplingFlagsKHRStr (VkVideoChromaSubsamplingFlagsKHR value)
+tcu::Format::Bitfield<32> getVideoEncodeH265TransformBlockSizeFlagsEXTStr (VkVideoEncodeH265TransformBlockSizeFlagsEXT value)
 {
        static const tcu::Format::BitDesc s_desc[] =
        {
-               tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR,                       "VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR,            "VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR,                           "VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR,                           "VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR,                           "VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR,        "VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT,       "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT,       "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT,      "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT"),
+               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT,      "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT"),
        };
        return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getVideoComponentBitDepthFlagsKHRStr (VkVideoComponentBitDepthFlagsKHR value)
+const char* getAccelerationStructureMotionInstanceTypeNVName (VkAccelerationStructureMotionInstanceTypeNV value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR,                          "VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR,                            "VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR,                           "VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR,                           "VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR,       "VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV:                  return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV";
+               case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV:   return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV";
+               case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV:              return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV";
+               default:                                                                                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getVideoCapabilityFlagsKHRStr (VkVideoCapabilityFlagsKHR value)
+const char* getdVideoH264ChromaFormatIdcName (StdVideoH264ChromaFormatIdc value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR,                     "VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR,     "VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR,                        "VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME:       return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME";
+               case STD_VIDEO_H264_CHROMA_FORMAT_IDC_420:                      return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_420";
+               case STD_VIDEO_H264_CHROMA_FORMAT_IDC_422:                      return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_422";
+               case STD_VIDEO_H264_CHROMA_FORMAT_IDC_444:                      return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_444";
+               case STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID:          return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID";
+               default:                                                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getVideoSessionCreateFlagsKHRStr (VkVideoSessionCreateFlagsKHR value)
+const char* getdVideoH264ProfileIdcName (StdVideoH264ProfileIdc value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_DEFAULT_KHR,                               "VK_VIDEO_SESSION_CREATE_DEFAULT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR, "VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR,    "VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case STD_VIDEO_H264_PROFILE_IDC_BASELINE:                               return "STD_VIDEO_H264_PROFILE_IDC_BASELINE";
+               case STD_VIDEO_H264_PROFILE_IDC_MAIN:                                   return "STD_VIDEO_H264_PROFILE_IDC_MAIN";
+               case STD_VIDEO_H264_PROFILE_IDC_HIGH:                                   return "STD_VIDEO_H264_PROFILE_IDC_HIGH";
+               case STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE:    return "STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE";
+               case STD_VIDEO_H264_PROFILE_IDC_INVALID:                                return "STD_VIDEO_H264_PROFILE_IDC_INVALID";
+               default:                                                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getVideoCodingControlFlagsKHRStr (VkVideoCodingControlFlagsKHR value)
+const char* getdVideoH264LevelName (StdVideoH264Level value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_DEFAULT_KHR,                               "VK_VIDEO_CODING_CONTROL_DEFAULT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR,                             "VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR,    "VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case STD_VIDEO_H264_LEVEL_1_0:          return "STD_VIDEO_H264_LEVEL_1_0";
+               case STD_VIDEO_H264_LEVEL_1_1:          return "STD_VIDEO_H264_LEVEL_1_1";
+               case STD_VIDEO_H264_LEVEL_1_2:          return "STD_VIDEO_H264_LEVEL_1_2";
+               case STD_VIDEO_H264_LEVEL_1_3:          return "STD_VIDEO_H264_LEVEL_1_3";
+               case STD_VIDEO_H264_LEVEL_2_0:          return "STD_VIDEO_H264_LEVEL_2_0";
+               case STD_VIDEO_H264_LEVEL_2_1:          return "STD_VIDEO_H264_LEVEL_2_1";
+               case STD_VIDEO_H264_LEVEL_2_2:          return "STD_VIDEO_H264_LEVEL_2_2";
+               case STD_VIDEO_H264_LEVEL_3_0:          return "STD_VIDEO_H264_LEVEL_3_0";
+               case STD_VIDEO_H264_LEVEL_3_1:          return "STD_VIDEO_H264_LEVEL_3_1";
+               case STD_VIDEO_H264_LEVEL_3_2:          return "STD_VIDEO_H264_LEVEL_3_2";
+               case STD_VIDEO_H264_LEVEL_4_0:          return "STD_VIDEO_H264_LEVEL_4_0";
+               case STD_VIDEO_H264_LEVEL_4_1:          return "STD_VIDEO_H264_LEVEL_4_1";
+               case STD_VIDEO_H264_LEVEL_4_2:          return "STD_VIDEO_H264_LEVEL_4_2";
+               case STD_VIDEO_H264_LEVEL_5_0:          return "STD_VIDEO_H264_LEVEL_5_0";
+               case STD_VIDEO_H264_LEVEL_5_1:          return "STD_VIDEO_H264_LEVEL_5_1";
+               case STD_VIDEO_H264_LEVEL_5_2:          return "STD_VIDEO_H264_LEVEL_5_2";
+               case STD_VIDEO_H264_LEVEL_6_0:          return "STD_VIDEO_H264_LEVEL_6_0";
+               case STD_VIDEO_H264_LEVEL_6_1:          return "STD_VIDEO_H264_LEVEL_6_1";
+               case STD_VIDEO_H264_LEVEL_6_2:          return "STD_VIDEO_H264_LEVEL_6_2";
+               case STD_VIDEO_H264_LEVEL_INVALID:      return "STD_VIDEO_H264_LEVEL_INVALID";
+               default:                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getVideoCodingQualityPresetFlagsKHRStr (VkVideoCodingQualityPresetFlagsKHR value)
+const char* getdVideoH264PocTypeName (StdVideoH264PocType value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR,                     "VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR,                      "VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR,            "VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_CODING_QUALITY_PRESET_FLAG_BITS_MAX_ENUM_KHR,     "VK_VIDEO_CODING_QUALITY_PRESET_FLAG_BITS_MAX_ENUM_KHR"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case STD_VIDEO_H264_POC_TYPE_0:                 return "STD_VIDEO_H264_POC_TYPE_0";
+               case STD_VIDEO_H264_POC_TYPE_1:                 return "STD_VIDEO_H264_POC_TYPE_1";
+               case STD_VIDEO_H264_POC_TYPE_2:                 return "STD_VIDEO_H264_POC_TYPE_2";
+               case STD_VIDEO_H264_POC_TYPE_INVALID:   return "STD_VIDEO_H264_POC_TYPE_INVALID";
+               default:                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getVideoDecodeCapabilityFlagsKHRStr (VkVideoDecodeCapabilityFlagsKHR value)
+const char* getdVideoH264AspectRatioIdcName (StdVideoH264AspectRatioIdc value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_VIDEO_DECODE_CAPABILITY_DEFAULT_KHR,                                            "VK_VIDEO_DECODE_CAPABILITY_DEFAULT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR,        "VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR,        "VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR,                         "VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED:       return "STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED";
+               case STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE:            return "STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE";
+               case STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11";
+               case STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11";
+               case STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11";
+               case STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33";
+               case STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11";
+               case STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11";
+               case STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11";
+               case STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33";
+               case STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11";
+               case STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11";
+               case STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33:                     return "STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33";
+               case STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99:            return "STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99";
+               case STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3:                       return "STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3";
+               case STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2:                       return "STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2";
+               case STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1:                       return "STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1";
+               case STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR:      return "STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR";
+               case STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID:           return "STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID";
+               default:                                                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getVideoDecodeFlagsKHRStr (VkVideoDecodeFlagsKHR value)
+const char* getdVideoH264WeightedBipredIdcName (StdVideoH264WeightedBipredIdc value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_VIDEO_DECODE_DEFAULT_KHR,                               "VK_VIDEO_DECODE_DEFAULT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_DECODE_RESERVED_0_BIT_KHR,                "VK_VIDEO_DECODE_RESERVED_0_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_DECODE_FLAG_BITS_MAX_ENUM_KHR,    "VK_VIDEO_DECODE_FLAG_BITS_MAX_ENUM_KHR"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT:        return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT";
+               case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT:       return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT";
+               case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT:       return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT";
+               case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID:        return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID";
+               default:                                                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getVideoEncodeFlagsKHRStr (VkVideoEncodeFlagsKHR value)
+const char* getdVideoH264ModificationOfPicNumsIdcName (StdVideoH264ModificationOfPicNumsIdc value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_DEFAULT_KHR,                               "VK_VIDEO_ENCODE_DEFAULT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR,                "VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR,    "VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT:   return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT";
+               case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD:                return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD";
+               case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM:                             return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM";
+               case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END:                                   return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END";
+               case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID:                               return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID";
+               default:                                                                                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getVideoEncodeCapabilityFlagsKHRStr (VkVideoEncodeCapabilityFlagsKHR value)
+const char* getdVideoH264MemMgmtControlOpName (StdVideoH264MemMgmtControlOp value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_CAPABILITY_DEFAULT_KHR,                                                            "VK_VIDEO_ENCODE_CAPABILITY_DEFAULT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR,     "VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR,                                         "VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END:                                            return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END";
+               case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM:                      return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM";
+               case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM:                       return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM";
+               case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM:                         return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM";
+               case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX:        return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX";
+               case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL:                                     return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL";
+               case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM:      return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM";
+               case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID:                                        return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID";
+               default:                                                                                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getVideoEncodeRateControlModeFlagsKHRStr (VkVideoEncodeRateControlModeFlagsKHR value)
+const char* getdVideoH264CabacInitIdcName (StdVideoH264CabacInitIdc value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR,                    "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR,                             "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR,                             "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR,  "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case STD_VIDEO_H264_CABAC_INIT_IDC_0:           return "STD_VIDEO_H264_CABAC_INIT_IDC_0";
+               case STD_VIDEO_H264_CABAC_INIT_IDC_1:           return "STD_VIDEO_H264_CABAC_INIT_IDC_1";
+               case STD_VIDEO_H264_CABAC_INIT_IDC_2:           return "STD_VIDEO_H264_CABAC_INIT_IDC_2";
+               case STD_VIDEO_H264_CABAC_INIT_IDC_INVALID:     return "STD_VIDEO_H264_CABAC_INIT_IDC_INVALID";
+               default:                                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getVideoEncodeRateControlFlagsKHRStr (VkVideoEncodeRateControlFlagsKHR value)
+const char* getdVideoH264DisableDeblockingFilterIdcName (StdVideoH264DisableDeblockingFilterIdc value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR,                          "VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR,           "VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR,       "VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED:     return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED";
+               case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED:      return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED";
+               case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL:      return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL";
+               case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID:      return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID";
+               default:                                                                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getVideoEncodeH264CapabilityFlagsEXTStr (VkVideoEncodeH264CapabilityFlagsEXT value)
+const char* getdVideoH264SliceTypeName (StdVideoH264SliceType value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT,              "VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT,             "VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT,                             "VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT,   "VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT,                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT,                                    "VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT,                                  "VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT,                   "VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT,                               "VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT,                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT,                  "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT,                  "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT,                    "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT,                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT,                                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT,                                                             "VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT,                "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT,                 "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT,                 "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT,    "VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT,                  "VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT,                                    "VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT,                               "VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT,                              "VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT,                                "VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT,                                    "VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case STD_VIDEO_H264_SLICE_TYPE_P:               return "STD_VIDEO_H264_SLICE_TYPE_P";
+               case STD_VIDEO_H264_SLICE_TYPE_B:               return "STD_VIDEO_H264_SLICE_TYPE_B";
+               case STD_VIDEO_H264_SLICE_TYPE_I:               return "STD_VIDEO_H264_SLICE_TYPE_I";
+               case STD_VIDEO_H264_SLICE_TYPE_INVALID: return "STD_VIDEO_H264_SLICE_TYPE_INVALID";
+               default:                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getVideoEncodeH264InputModeFlagsEXTStr (VkVideoEncodeH264InputModeFlagsEXT value)
+const char* getdVideoH264PictureTypeName (StdVideoH264PictureType value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT,                             "VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT,                             "VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT,                   "VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT,    "VK_VIDEO_ENCODE_H264_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case STD_VIDEO_H264_PICTURE_TYPE_P:                     return "STD_VIDEO_H264_PICTURE_TYPE_P";
+               case STD_VIDEO_H264_PICTURE_TYPE_B:                     return "STD_VIDEO_H264_PICTURE_TYPE_B";
+               case STD_VIDEO_H264_PICTURE_TYPE_I:                     return "STD_VIDEO_H264_PICTURE_TYPE_I";
+               case STD_VIDEO_H264_PICTURE_TYPE_IDR:           return "STD_VIDEO_H264_PICTURE_TYPE_IDR";
+               case STD_VIDEO_H264_PICTURE_TYPE_INVALID:       return "STD_VIDEO_H264_PICTURE_TYPE_INVALID";
+               default:                                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getVideoEncodeH264OutputModeFlagsEXTStr (VkVideoEncodeH264OutputModeFlagsEXT value)
+const char* getdVideoH264NonVclNaluTypeName (StdVideoH264NonVclNaluType value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT,                    "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT,                    "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT,                  "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT,   "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS:                              return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS";
+               case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS:                              return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS";
+               case STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD:                              return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD";
+               case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX:                   return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX";
+               case STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE:  return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE";
+               case STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM:    return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM";
+               case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED:                 return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED";
+               case STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID:                  return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID";
+               default:                                                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getVideoEncodeH264RateControlStructureFlagsEXTStr (VkVideoEncodeH264RateControlStructureFlagsEXT value)
+const char* getdVideoDecodeH264FieldOrderCountName (StdVideoDecodeH264FieldOrderCount value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT,                           "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT,                          "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT,                        "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT,        "VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP:               return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP";
+               case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM:    return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM";
+               case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID:   return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID";
+               default:                                                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getVideoEncodeH265CapabilityFlagsEXTStr (VkVideoEncodeH265CapabilityFlagsEXT value)
+const char* getdVideoH265ChromaFormatIdcName (StdVideoH265ChromaFormatIdc value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT,                                     "VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT,                                                     "VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT,            "VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT,                                                        "VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT,                          "VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT,                                            "VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT,                                           "VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT,          "VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT,                          "VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT,                            "VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT,       "VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT,                                                     "VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT,                                           "VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT,                            "VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT,                         "VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT,                       "VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT,        "VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT,                       "VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT,                           "VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT,                                      "VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT,                                        "VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT,                                            "VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME:       return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME";
+               case STD_VIDEO_H265_CHROMA_FORMAT_IDC_420:                      return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_420";
+               case STD_VIDEO_H265_CHROMA_FORMAT_IDC_422:                      return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_422";
+               case STD_VIDEO_H265_CHROMA_FORMAT_IDC_444:                      return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_444";
+               case STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID:          return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID";
+               default:                                                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getVideoEncodeH265InputModeFlagsEXTStr (VkVideoEncodeH265InputModeFlagsEXT value)
+const char* getdVideoH265ProfileIdcName (StdVideoH265ProfileIdc value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT,                             "VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT,             "VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT,                   "VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT,    "VK_VIDEO_ENCODE_H265_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case STD_VIDEO_H265_PROFILE_IDC_MAIN:                                           return "STD_VIDEO_H265_PROFILE_IDC_MAIN";
+               case STD_VIDEO_H265_PROFILE_IDC_MAIN_10:                                        return "STD_VIDEO_H265_PROFILE_IDC_MAIN_10";
+               case STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE:                     return "STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE";
+               case STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS:        return "STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS";
+               case STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS:                         return "STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS";
+               case STD_VIDEO_H265_PROFILE_IDC_INVALID:                                        return "STD_VIDEO_H265_PROFILE_IDC_INVALID";
+               default:                                                                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getVideoEncodeH265OutputModeFlagsEXTStr (VkVideoEncodeH265OutputModeFlagsEXT value)
+const char* getdVideoH265LevelName (StdVideoH265Level value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT,                    "VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT,    "VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT,                  "VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT,   "VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case STD_VIDEO_H265_LEVEL_1_0:          return "STD_VIDEO_H265_LEVEL_1_0";
+               case STD_VIDEO_H265_LEVEL_2_0:          return "STD_VIDEO_H265_LEVEL_2_0";
+               case STD_VIDEO_H265_LEVEL_2_1:          return "STD_VIDEO_H265_LEVEL_2_1";
+               case STD_VIDEO_H265_LEVEL_3_0:          return "STD_VIDEO_H265_LEVEL_3_0";
+               case STD_VIDEO_H265_LEVEL_3_1:          return "STD_VIDEO_H265_LEVEL_3_1";
+               case STD_VIDEO_H265_LEVEL_4_0:          return "STD_VIDEO_H265_LEVEL_4_0";
+               case STD_VIDEO_H265_LEVEL_4_1:          return "STD_VIDEO_H265_LEVEL_4_1";
+               case STD_VIDEO_H265_LEVEL_5_0:          return "STD_VIDEO_H265_LEVEL_5_0";
+               case STD_VIDEO_H265_LEVEL_5_1:          return "STD_VIDEO_H265_LEVEL_5_1";
+               case STD_VIDEO_H265_LEVEL_5_2:          return "STD_VIDEO_H265_LEVEL_5_2";
+               case STD_VIDEO_H265_LEVEL_6_0:          return "STD_VIDEO_H265_LEVEL_6_0";
+               case STD_VIDEO_H265_LEVEL_6_1:          return "STD_VIDEO_H265_LEVEL_6_1";
+               case STD_VIDEO_H265_LEVEL_6_2:          return "STD_VIDEO_H265_LEVEL_6_2";
+               case STD_VIDEO_H265_LEVEL_INVALID:      return "STD_VIDEO_H265_LEVEL_INVALID";
+               default:                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getVideoEncodeH265CtbSizeFlagsEXTStr (VkVideoEncodeH265CtbSizeFlagsEXT value)
+const char* getdVideoH265SliceTypeName (StdVideoH265SliceType value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT,                          "VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT,                          "VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT,                          "VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_EXT,      "VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_EXT"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case STD_VIDEO_H265_SLICE_TYPE_B:               return "STD_VIDEO_H265_SLICE_TYPE_B";
+               case STD_VIDEO_H265_SLICE_TYPE_P:               return "STD_VIDEO_H265_SLICE_TYPE_P";
+               case STD_VIDEO_H265_SLICE_TYPE_I:               return "STD_VIDEO_H265_SLICE_TYPE_I";
+               case STD_VIDEO_H265_SLICE_TYPE_INVALID: return "STD_VIDEO_H265_SLICE_TYPE_INVALID";
+               default:                                                                return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getVideoEncodeH265TransformBlockSizeFlagsEXTStr (VkVideoEncodeH265TransformBlockSizeFlagsEXT value)
+const char* getdVideoH265PictureTypeName (StdVideoH265PictureType value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
+       switch (value)
        {
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT,                               "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT,                               "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT,                              "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT,                              "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_EXT,  "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_EXT"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+               case STD_VIDEO_H265_PICTURE_TYPE_P:                     return "STD_VIDEO_H265_PICTURE_TYPE_P";
+               case STD_VIDEO_H265_PICTURE_TYPE_B:                     return "STD_VIDEO_H265_PICTURE_TYPE_B";
+               case STD_VIDEO_H265_PICTURE_TYPE_I:                     return "STD_VIDEO_H265_PICTURE_TYPE_I";
+               case STD_VIDEO_H265_PICTURE_TYPE_IDR:           return "STD_VIDEO_H265_PICTURE_TYPE_IDR";
+               case STD_VIDEO_H265_PICTURE_TYPE_INVALID:       return "STD_VIDEO_H265_PICTURE_TYPE_INVALID";
+               default:                                                                        return DE_NULL;
+       }
 }
 
-tcu::Format::Bitfield<32> getVideoEncodeH265RateControlStructureFlagsEXTStr (VkVideoEncodeH265RateControlStructureFlagsEXT value)
+tcu::Format::Bitfield<32> getQueryPoolCreateFlagsStr (VkQueryPoolCreateFlags value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
-       {
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT,                           "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT,                          "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT,                        "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT,        "VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+       return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getVideoDecodeH264PictureLayoutFlagsEXTStr (VkVideoDecodeH264PictureLayoutFlagsEXT value)
+tcu::Format::Bitfield<32> getPipelineDynamicStateCreateFlagsStr (VkPipelineDynamicStateCreateFlags value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
-       {
-               tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT,                                               "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT,  "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT,    "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_EXT"),
-               tcu::Format::BitDesc(VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_EXT,                                "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_EXT"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+       return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getImageConstraintsInfoFlagsFUCHSIAStr (VkImageConstraintsInfoFlagsFUCHSIA value)
+tcu::Format::Bitfield<32> getPipelineMultisampleStateCreateFlagsStr (VkPipelineMultisampleStateCreateFlags value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
-       {
-               tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA,         "VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA"),
-               tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA,          "VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA"),
-               tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA,        "VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA"),
-               tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA,         "VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA"),
-               tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA,      "VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA"),
-               tcu::Format::BitDesc(VK_IMAGE_CONSTRAINTS_INFO_FLAG_BITS_MAX_ENUM_FUCHSIA,      "VK_IMAGE_CONSTRAINTS_INFO_FLAG_BITS_MAX_ENUM_FUCHSIA"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+       return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getExportMetalObjectTypeFlagsEXTStr (VkExportMetalObjectTypeFlagsEXT value)
+tcu::Format::Bitfield<32> getPipelineRasterizationStateCreateFlagsStr (VkPipelineRasterizationStateCreateFlags value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
-       {
-               tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT,                  "VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT,   "VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT,                  "VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT"),
-               tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT,                 "VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT,               "VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT"),
-               tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT,    "VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT"),
-               tcu::Format::BitDesc(VK_EXPORT_METAL_OBJECT_TYPE_FLAG_BITS_MAX_ENUM_EXT,                "VK_EXPORT_METAL_OBJECT_TYPE_FLAG_BITS_MAX_ENUM_EXT"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+       return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getDeviceCreateFlagsStr (VkDeviceCreateFlags value)
+tcu::Format::Bitfield<32> getPipelineViewportStateCreateFlagsStr (VkPipelineViewportStateCreateFlags value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getMemoryMapFlagsStr (VkMemoryMapFlags value)
+tcu::Format::Bitfield<32> getPipelineTessellationStateCreateFlagsStr (VkPipelineTessellationStateCreateFlags value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getSemaphoreCreateFlagsStr (VkSemaphoreCreateFlags value)
+tcu::Format::Bitfield<32> getPipelineInputAssemblyStateCreateFlagsStr (VkPipelineInputAssemblyStateCreateFlags value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getQueryPoolCreateFlagsStr (VkQueryPoolCreateFlags value)
+tcu::Format::Bitfield<32> getPipelineVertexInputStateCreateFlagsStr (VkPipelineVertexInputStateCreateFlags value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
@@ -4715,62 +4516,62 @@ tcu::Format::Bitfield<32> getBufferViewCreateFlagsStr (VkBufferViewCreateFlags v
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getShaderModuleCreateFlagsStr (VkShaderModuleCreateFlags value)
+tcu::Format::Bitfield<32> getDeviceCreateFlagsStr (VkDeviceCreateFlags value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getPipelineVertexInputStateCreateFlagsStr (VkPipelineVertexInputStateCreateFlags value)
+tcu::Format::Bitfield<32> getSemaphoreCreateFlagsStr (VkSemaphoreCreateFlags value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getPipelineInputAssemblyStateCreateFlagsStr (VkPipelineInputAssemblyStateCreateFlags value)
+tcu::Format::Bitfield<32> getShaderModuleCreateFlagsStr (VkShaderModuleCreateFlags value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getPipelineTessellationStateCreateFlagsStr (VkPipelineTessellationStateCreateFlags value)
+tcu::Format::Bitfield<32> getMemoryMapFlagsStr (VkMemoryMapFlags value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getPipelineViewportStateCreateFlagsStr (VkPipelineViewportStateCreateFlags value)
+tcu::Format::Bitfield<32> getDescriptorPoolResetFlagsStr (VkDescriptorPoolResetFlags value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getPipelineRasterizationStateCreateFlagsStr (VkPipelineRasterizationStateCreateFlags value)
+tcu::Format::Bitfield<32> getPrivateDataSlotCreateFlagsStr (VkPrivateDataSlotCreateFlags value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getPipelineMultisampleStateCreateFlagsStr (VkPipelineMultisampleStateCreateFlags value)
+tcu::Format::Bitfield<32> getDescriptorUpdateTemplateCreateFlagsStr (VkDescriptorUpdateTemplateCreateFlags value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getPipelineDynamicStateCreateFlagsStr (VkPipelineDynamicStateCreateFlags value)
+tcu::Format::Bitfield<32> getAcquireProfilingLockFlagsKHRStr (VkAcquireProfilingLockFlagsKHR value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getDescriptorPoolResetFlagsStr (VkDescriptorPoolResetFlags value)
+tcu::Format::Bitfield<32> getPipelineCompilerControlFlagsAMDStr (VkPipelineCompilerControlFlagsAMD value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getCommandPoolTrimFlagsStr (VkCommandPoolTrimFlags value)
+tcu::Format::Bitfield<32> getShaderCorePropertiesFlagsAMDStr (VkShaderCorePropertiesFlagsAMD value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getDescriptorUpdateTemplateCreateFlagsStr (VkDescriptorUpdateTemplateCreateFlags value)
+tcu::Format::Bitfield<32> getAccelerationStructureMotionInfoFlagsNVStr (VkAccelerationStructureMotionInfoFlagsNV value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getPrivateDataSlotCreateFlagsStr (VkPrivateDataSlotCreateFlags value)
+tcu::Format::Bitfield<32> getAccelerationStructureMotionInstanceFlagsNVStr (VkAccelerationStructureMotionInstanceFlagsNV value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
@@ -4785,57 +4586,62 @@ tcu::Format::Bitfield<32> getDisplaySurfaceCreateFlagsKHRStr (VkDisplaySurfaceCr
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getPipelineRasterizationStateStreamCreateFlagsEXTStr (VkPipelineRasterizationStateStreamCreateFlagsEXT value)
+tcu::Format::Bitfield<32> getAndroidSurfaceCreateFlagsKHRStr (VkAndroidSurfaceCreateFlagsKHR value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getPipelineViewportSwizzleStateCreateFlagsNVStr (VkPipelineViewportSwizzleStateCreateFlagsNV value)
+tcu::Format::Bitfield<32> getViSurfaceCreateFlagsNNStr (VkViSurfaceCreateFlagsNN value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getPipelineDiscardRectangleStateCreateFlagsEXTStr (VkPipelineDiscardRectangleStateCreateFlagsEXT value)
+tcu::Format::Bitfield<32> getWaylandSurfaceCreateFlagsKHRStr (VkWaylandSurfaceCreateFlagsKHR value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getPipelineRasterizationConservativeStateCreateFlagsEXTStr (VkPipelineRasterizationConservativeStateCreateFlagsEXT value)
+tcu::Format::Bitfield<32> getWin32SurfaceCreateFlagsKHRStr (VkWin32SurfaceCreateFlagsKHR value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getPipelineRasterizationDepthClipStateCreateFlagsEXTStr (VkPipelineRasterizationDepthClipStateCreateFlagsEXT value)
+tcu::Format::Bitfield<32> getXlibSurfaceCreateFlagsKHRStr (VkXlibSurfaceCreateFlagsKHR value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getDebugUtilsMessengerCallbackDataFlagsEXTStr (VkDebugUtilsMessengerCallbackDataFlagsEXT value)
+tcu::Format::Bitfield<32> getXcbSurfaceCreateFlagsKHRStr (VkXcbSurfaceCreateFlagsKHR value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getDebugUtilsMessengerCreateFlagsEXTStr (VkDebugUtilsMessengerCreateFlagsEXT value)
+tcu::Format::Bitfield<32> getDirectFBSurfaceCreateFlagsEXTStr (VkDirectFBSurfaceCreateFlagsEXT value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getPipelineCoverageToColorStateCreateFlagsNVStr (VkPipelineCoverageToColorStateCreateFlagsNV value)
+tcu::Format::Bitfield<32> getIOSSurfaceCreateFlagsMVKStr (VkIOSSurfaceCreateFlagsMVK value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getPipelineCoverageModulationStateCreateFlagsNVStr (VkPipelineCoverageModulationStateCreateFlagsNV value)
+tcu::Format::Bitfield<32> getMacOSSurfaceCreateFlagsMVKStr (VkMacOSSurfaceCreateFlagsMVK value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getValidationCacheCreateFlagsEXTStr (VkValidationCacheCreateFlagsEXT value)
+tcu::Format::Bitfield<32> getMetalSurfaceCreateFlagsEXTStr (VkMetalSurfaceCreateFlagsEXT value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getPipelineCoverageReductionStateCreateFlagsNVStr (VkPipelineCoverageReductionStateCreateFlagsNV value)
+tcu::Format::Bitfield<32> getImagePipeSurfaceCreateFlagsFUCHSIAStr (VkImagePipeSurfaceCreateFlagsFUCHSIA value)
+{
+       return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
+}
+
+tcu::Format::Bitfield<32> getStreamDescriptorSurfaceCreateFlagsGGPStr (VkStreamDescriptorSurfaceCreateFlagsGGP value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
@@ -4845,109 +4651,126 @@ tcu::Format::Bitfield<32> getHeadlessSurfaceCreateFlagsEXTStr (VkHeadlessSurface
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getDeviceMemoryReportFlagsEXTStr (VkDeviceMemoryReportFlagsEXT value)
+tcu::Format::Bitfield<32> getScreenSurfaceCreateFlagsQNXStr (VkScreenSurfaceCreateFlagsQNX value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getAccelerationStructureMotionInfoFlagsNVStr (VkAccelerationStructureMotionInfoFlagsNV value)
+tcu::Format::Bitfield<32> getCommandPoolTrimFlagsStr (VkCommandPoolTrimFlags value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getAccelerationStructureMotionInstanceFlagsNVStr (VkAccelerationStructureMotionInstanceFlagsNV value)
+tcu::Format::Bitfield<32> getPipelineViewportSwizzleStateCreateFlagsNVStr (VkPipelineViewportSwizzleStateCreateFlagsNV value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getAndroidSurfaceCreateFlagsKHRStr (VkAndroidSurfaceCreateFlagsKHR value)
+tcu::Format::Bitfield<32> getPipelineDiscardRectangleStateCreateFlagsEXTStr (VkPipelineDiscardRectangleStateCreateFlagsEXT value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getVideoBeginCodingFlagsKHRStr (VkVideoBeginCodingFlagsKHR value)
+tcu::Format::Bitfield<32> getPipelineCoverageToColorStateCreateFlagsNVStr (VkPipelineCoverageToColorStateCreateFlagsNV value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getVideoEndCodingFlagsKHRStr (VkVideoEndCodingFlagsKHR value)
+tcu::Format::Bitfield<32> getPipelineCoverageModulationStateCreateFlagsNVStr (VkPipelineCoverageModulationStateCreateFlagsNV value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getImagePipeSurfaceCreateFlagsFUCHSIAStr (VkImagePipeSurfaceCreateFlagsFUCHSIA value)
+tcu::Format::Bitfield<32> getPipelineCoverageReductionStateCreateFlagsNVStr (VkPipelineCoverageReductionStateCreateFlagsNV value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getImageFormatConstraintsFlagsFUCHSIAStr (VkImageFormatConstraintsFlagsFUCHSIA value)
+tcu::Format::Bitfield<32> getValidationCacheCreateFlagsEXTStr (VkValidationCacheCreateFlagsEXT value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getStreamDescriptorSurfaceCreateFlagsGGPStr (VkStreamDescriptorSurfaceCreateFlagsGGP value)
+tcu::Format::Bitfield<32> getDebugUtilsMessengerCreateFlagsEXTStr (VkDebugUtilsMessengerCreateFlagsEXT value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getIOSSurfaceCreateFlagsMVKStr (VkIOSSurfaceCreateFlagsMVK value)
+tcu::Format::Bitfield<32> getDebugUtilsMessengerCallbackDataFlagsEXTStr (VkDebugUtilsMessengerCallbackDataFlagsEXT value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getMacOSSurfaceCreateFlagsMVKStr (VkMacOSSurfaceCreateFlagsMVK value)
+tcu::Format::Bitfield<32> getDeviceMemoryReportFlagsEXTStr (VkDeviceMemoryReportFlagsEXT value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getMetalSurfaceCreateFlagsEXTStr (VkMetalSurfaceCreateFlagsEXT value)
+tcu::Format::Bitfield<32> getPipelineRasterizationConservativeStateCreateFlagsEXTStr (VkPipelineRasterizationConservativeStateCreateFlagsEXT value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getViSurfaceCreateFlagsNNStr (VkViSurfaceCreateFlagsNN value)
+tcu::Format::Bitfield<32> getPipelineRasterizationStateStreamCreateFlagsEXTStr (VkPipelineRasterizationStateStreamCreateFlagsEXT value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getWaylandSurfaceCreateFlagsKHRStr (VkWaylandSurfaceCreateFlagsKHR value)
+tcu::Format::Bitfield<32> getPipelineRasterizationDepthClipStateCreateFlagsEXTStr (VkPipelineRasterizationDepthClipStateCreateFlagsEXT value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getWin32SurfaceCreateFlagsKHRStr (VkWin32SurfaceCreateFlagsKHR value)
+tcu::Format::Bitfield<32> getImageFormatConstraintsFlagsFUCHSIAStr (VkImageFormatConstraintsFlagsFUCHSIA value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getXcbSurfaceCreateFlagsKHRStr (VkXcbSurfaceCreateFlagsKHR value)
+tcu::Format::Bitfield<32> getVideoBeginCodingFlagsKHRStr (VkVideoBeginCodingFlagsKHR value)
+{
+       return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
+}
+
+tcu::Format::Bitfield<32> getVideoEndCodingFlagsKHRStr (VkVideoEndCodingFlagsKHR value)
 {
        return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getXlibSurfaceCreateFlagsKHRStr (VkXlibSurfaceCreateFlagsKHR value)
+std::ostream& operator<< (std::ostream& s, const VkBaseOutStructure& value)
+{
+       s << "VkBaseOutStructure = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkBaseInStructure& value)
+{
+       s << "VkBaseInStructure = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkOffset2D& value)
 {
-       return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
+       s << "VkOffset2D = {\n";
+       s << "\tx = " << value.x << '\n';
+       s << "\ty = " << value.y << '\n';
+       s << '}';
+       return s;
 }
 
-tcu::Format::Bitfield<32> getBuildAccelerationStructureFlagsNVStr (VkBuildAccelerationStructureFlagsNV value)
+std::ostream& operator<< (std::ostream& s, const VkOffset3D& value)
 {
-       static const tcu::Format::BitDesc s_desc[] =
-       {
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,              "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,  "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR, "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR, "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,                "VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV,                             "VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV,               "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV,   "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV,  "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV,  "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV,                 "VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV"),
-               tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR,    "VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR"),
-       };
-       return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+       s << "VkOffset3D = {\n";
+       s << "\tx = " << value.x << '\n';
+       s << "\ty = " << value.y << '\n';
+       s << "\tz = " << value.z << '\n';
+       s << '}';
+       return s;
 }
 
 std::ostream& operator<< (std::ostream& s, const VkExtent2D& value)
@@ -4969,176 +4792,248 @@ std::ostream& operator<< (std::ostream& s, const VkExtent3D& value)
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkOffset2D& value)
+std::ostream& operator<< (std::ostream& s, const VkViewport& value)
 {
-       s << "VkOffset2D = {\n";
+       s << "VkViewport = {\n";
        s << "\tx = " << value.x << '\n';
        s << "\ty = " << value.y << '\n';
+       s << "\twidth = " << value.width << '\n';
+       s << "\theight = " << value.height << '\n';
+       s << "\tminDepth = " << value.minDepth << '\n';
+       s << "\tmaxDepth = " << value.maxDepth << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkOffset3D& value)
+std::ostream& operator<< (std::ostream& s, const VkRect2D& value)
 {
-       s << "VkOffset3D = {\n";
-       s << "\tx = " << value.x << '\n';
-       s << "\ty = " << value.y << '\n';
-       s << "\tz = " << value.z << '\n';
+       s << "VkRect2D = {\n";
+       s << "\toffset = " << value.offset << '\n';
+       s << "\textent = " << value.extent << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkRect2D& value)
+std::ostream& operator<< (std::ostream& s, const VkClearRect& value)
 {
-       s << "VkRect2D = {\n";
-       s << "\toffset = " << value.offset << '\n';
-       s << "\textent = " << value.extent << '\n';
+       s << "VkClearRect = {\n";
+       s << "\trect = " << value.rect << '\n';
+       s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
+       s << "\tlayerCount = " << value.layerCount << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBaseInStructure& value)
+std::ostream& operator<< (std::ostream& s, const VkComponentMapping& value)
 {
-       s << "VkBaseInStructure = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
+       s << "VkComponentMapping = {\n";
+       s << "\tr = " << value.r << '\n';
+       s << "\tg = " << value.g << '\n';
+       s << "\tb = " << value.b << '\n';
+       s << "\ta = " << value.a << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBaseOutStructure& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties& value)
 {
-       s << "VkBaseOutStructure = {\n";
+       s << "VkPhysicalDeviceProperties = {\n";
+       s << "\tapiVersion = " << value.apiVersion << '\n';
+       s << "\tdriverVersion = " << value.driverVersion << '\n';
+       s << "\tvendorID = " << value.vendorID << '\n';
+       s << "\tdeviceID = " << value.deviceID << '\n';
+       s << "\tdeviceType = " << value.deviceType << '\n';
+       s << "\tdeviceName = " << (const char*)value.deviceName << '\n';
+       s << "\tpipelineCacheUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.pipelineCacheUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.pipelineCacheUUID))) << '\n';
+       s << "\tlimits = " << value.limits << '\n';
+       s << "\tsparseProperties = " << value.sparseProperties << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkExtensionProperties& value)
+{
+       s << "VkExtensionProperties = {\n";
+       s << "\textensionName = " << (const char*)value.extensionName << '\n';
+       s << "\tspecVersion = " << value.specVersion << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkLayerProperties& value)
+{
+       s << "VkLayerProperties = {\n";
+       s << "\tlayerName = " << (const char*)value.layerName << '\n';
+       s << "\tspecVersion = " << value.specVersion << '\n';
+       s << "\timplementationVersion = " << value.implementationVersion << '\n';
+       s << "\tdescription = " << (const char*)value.description << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkApplicationInfo& value)
+{
+       s << "VkApplicationInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
+       s << "\tpApplicationName = " << getCharPtrStr(value.pApplicationName) << '\n';
+       s << "\tapplicationVersion = " << value.applicationVersion << '\n';
+       s << "\tpEngineName = " << getCharPtrStr(value.pEngineName) << '\n';
+       s << "\tengineVersion = " << value.engineVersion << '\n';
+       s << "\tapiVersion = " << value.apiVersion << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier& value)
+std::ostream& operator<< (std::ostream& s, const VkAllocationCallbacks& value)
 {
-       s << "VkBufferMemoryBarrier = {\n";
+       s << "VkAllocationCallbacks = {\n";
+       s << "\tpUserData = " << value.pUserData << '\n';
+       s << "\tpfnAllocation = " << value.pfnAllocation << '\n';
+       s << "\tpfnReallocation = " << value.pfnReallocation << '\n';
+       s << "\tpfnFree = " << value.pfnFree << '\n';
+       s << "\tpfnInternalAllocation = " << value.pfnInternalAllocation << '\n';
+       s << "\tpfnInternalFree = " << value.pfnInternalFree << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkDeviceQueueCreateInfo& value)
+{
+       s << "VkDeviceQueueCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
-       s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
-       s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
-       s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
-       s << "\tbuffer = " << value.buffer << '\n';
-       s << "\toffset = " << value.offset << '\n';
-       s << "\tsize = " << value.size << '\n';
+       s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
+       s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
+       s << "\tqueueCount = " << value.queueCount << '\n';
+       s << "\tpQueuePriorities = " << value.pQueuePriorities << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDispatchIndirectCommand& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceCreateInfo& value)
 {
-       s << "VkDispatchIndirectCommand = {\n";
-       s << "\tx = " << value.x << '\n';
-       s << "\ty = " << value.y << '\n';
-       s << "\tz = " << value.z << '\n';
+       s << "VkDeviceCreateInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tflags = " << getDeviceCreateFlagsStr(value.flags) << '\n';
+       s << "\tqueueCreateInfoCount = " << value.queueCreateInfoCount << '\n';
+       s << "\tpQueueCreateInfos = " << value.pQueueCreateInfos << '\n';
+       s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
+       s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
+       s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
+       s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
+       s << "\tpEnabledFeatures = " << value.pEnabledFeatures << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDrawIndexedIndirectCommand& value)
+std::ostream& operator<< (std::ostream& s, const VkInstanceCreateInfo& value)
 {
-       s << "VkDrawIndexedIndirectCommand = {\n";
-       s << "\tindexCount = " << value.indexCount << '\n';
-       s << "\tinstanceCount = " << value.instanceCount << '\n';
-       s << "\tfirstIndex = " << value.firstIndex << '\n';
-       s << "\tvertexOffset = " << value.vertexOffset << '\n';
-       s << "\tfirstInstance = " << value.firstInstance << '\n';
+       s << "VkInstanceCreateInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tflags = " << getInstanceCreateFlagsStr(value.flags) << '\n';
+       s << "\tpApplicationInfo = " << value.pApplicationInfo << '\n';
+       s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
+       s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
+       s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
+       s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDrawIndirectCommand& value)
+std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties& value)
 {
-       s << "VkDrawIndirectCommand = {\n";
-       s << "\tvertexCount = " << value.vertexCount << '\n';
-       s << "\tinstanceCount = " << value.instanceCount << '\n';
-       s << "\tfirstVertex = " << value.firstVertex << '\n';
-       s << "\tfirstInstance = " << value.firstInstance << '\n';
+       s << "VkQueueFamilyProperties = {\n";
+       s << "\tqueueFlags = " << getQueueFlagsStr(value.queueFlags) << '\n';
+       s << "\tqueueCount = " << value.queueCount << '\n';
+       s << "\ttimestampValidBits = " << value.timestampValidBits << '\n';
+       s << "\tminImageTransferGranularity = " << value.minImageTransferGranularity << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageSubresourceRange& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties& value)
 {
-       s << "VkImageSubresourceRange = {\n";
-       s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
-       s << "\tbaseMipLevel = " << value.baseMipLevel << '\n';
-       s << "\tlevelCount = " << value.levelCount << '\n';
-       s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
-       s << "\tlayerCount = " << value.layerCount << '\n';
+       s << "VkPhysicalDeviceMemoryProperties = {\n";
+       s << "\tmemoryTypeCount = " << value.memoryTypeCount << '\n';
+       s << "\tmemoryTypes = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryTypes), DE_ARRAY_BEGIN(value.memoryTypes) + value.memoryTypeCount) << '\n';
+       s << "\tmemoryHeapCount = " << value.memoryHeapCount << '\n';
+       s << "\tmemoryHeaps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryHeaps), DE_ARRAY_BEGIN(value.memoryHeaps) + value.memoryHeapCount) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateInfo& value)
 {
-       s << "VkImageMemoryBarrier = {\n";
+       s << "VkMemoryAllocateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
-       s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
-       s << "\toldLayout = " << value.oldLayout << '\n';
-       s << "\tnewLayout = " << value.newLayout << '\n';
-       s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
-       s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
-       s << "\timage = " << value.image << '\n';
-       s << "\tsubresourceRange = " << value.subresourceRange << '\n';
+       s << "\tallocationSize = " << value.allocationSize << '\n';
+       s << "\tmemoryTypeIndex = " << value.memoryTypeIndex << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements& value)
 {
-       s << "VkMemoryBarrier = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
-       s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
+       s << "VkMemoryRequirements = {\n";
+       s << "\tsize = " << value.size << '\n';
+       s << "\talignment = " << value.alignment << '\n';
+       s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineCacheHeaderVersionOne& value)
+std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties& value)
 {
-       s << "VkPipelineCacheHeaderVersionOne = {\n";
-       s << "\theaderSize = " << value.headerSize << '\n';
-       s << "\theaderVersion = " << value.headerVersion << '\n';
-       s << "\tvendorID = " << value.vendorID << '\n';
-       s << "\tdeviceID = " << value.deviceID << '\n';
-       s << "\tpipelineCacheUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.pipelineCacheUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.pipelineCacheUUID))) << '\n';
+       s << "VkSparseImageFormatProperties = {\n";
+       s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
+       s << "\timageGranularity = " << value.imageGranularity << '\n';
+       s << "\tflags = " << getSparseImageFormatFlagsStr(value.flags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAllocationCallbacks& value)
+std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements& value)
 {
-       s << "VkAllocationCallbacks = {\n";
-       s << "\tpUserData = " << value.pUserData << '\n';
-       s << "\tpfnAllocation = " << value.pfnAllocation << '\n';
-       s << "\tpfnReallocation = " << value.pfnReallocation << '\n';
-       s << "\tpfnFree = " << value.pfnFree << '\n';
-       s << "\tpfnInternalAllocation = " << value.pfnInternalAllocation << '\n';
-       s << "\tpfnInternalFree = " << value.pfnInternalFree << '\n';
+       s << "VkSparseImageMemoryRequirements = {\n";
+       s << "\tformatProperties = " << value.formatProperties << '\n';
+       s << "\timageMipTailFirstLod = " << value.imageMipTailFirstLod << '\n';
+       s << "\timageMipTailSize = " << value.imageMipTailSize << '\n';
+       s << "\timageMipTailOffset = " << value.imageMipTailOffset << '\n';
+       s << "\timageMipTailStride = " << value.imageMipTailStride << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkMemoryType& value)
+{
+       s << "VkMemoryType = {\n";
+       s << "\tpropertyFlags = " << getMemoryPropertyFlagsStr(value.propertyFlags) << '\n';
+       s << "\theapIndex = " << value.heapIndex << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkApplicationInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryHeap& value)
 {
-       s << "VkApplicationInfo = {\n";
+       s << "VkMemoryHeap = {\n";
+       s << "\tsize = " << value.size << '\n';
+       s << "\tflags = " << getMemoryHeapFlagsStr(value.flags) << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkMappedMemoryRange& value)
+{
+       s << "VkMappedMemoryRange = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpApplicationName = " << getCharPtrStr(value.pApplicationName) << '\n';
-       s << "\tapplicationVersion = " << value.applicationVersion << '\n';
-       s << "\tpEngineName = " << getCharPtrStr(value.pEngineName) << '\n';
-       s << "\tengineVersion = " << value.engineVersion << '\n';
-       s << "\tapiVersion = " << value.apiVersion << '\n';
+       s << "\tmemory = " << value.memory << '\n';
+       s << "\toffset = " << value.offset << '\n';
+       s << "\tsize = " << value.size << '\n';
        s << '}';
        return s;
 }
@@ -5165,359 +5060,220 @@ std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties& value)
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkInstanceCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDescriptorBufferInfo& value)
 {
-       s << "VkInstanceCreateInfo = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getInstanceCreateFlagsStr(value.flags) << '\n';
-       s << "\tpApplicationInfo = " << value.pApplicationInfo << '\n';
-       s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
-       s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
-       s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
-       s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
+       s << "VkDescriptorBufferInfo = {\n";
+       s << "\tbuffer = " << value.buffer << '\n';
+       s << "\toffset = " << value.offset << '\n';
+       s << "\trange = " << value.range << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryHeap& value)
+std::ostream& operator<< (std::ostream& s, const VkDescriptorImageInfo& value)
 {
-       s << "VkMemoryHeap = {\n";
-       s << "\tsize = " << value.size << '\n';
-       s << "\tflags = " << getMemoryHeapFlagsStr(value.flags) << '\n';
+       s << "VkDescriptorImageInfo = {\n";
+       s << "\tsampler = " << value.sampler << '\n';
+       s << "\timageView = " << value.imageView << '\n';
+       s << "\timageLayout = " << value.imageLayout << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryType& value)
+std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSet& value)
 {
-       s << "VkMemoryType = {\n";
-       s << "\tpropertyFlags = " << getMemoryPropertyFlagsStr(value.propertyFlags) << '\n';
-       s << "\theapIndex = " << value.heapIndex << '\n';
+       s << "VkWriteDescriptorSet = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tdstSet = " << value.dstSet << '\n';
+       s << "\tdstBinding = " << value.dstBinding << '\n';
+       s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
+       s << "\tdescriptorCount = " << value.descriptorCount << '\n';
+       s << "\tdescriptorType = " << value.descriptorType << '\n';
+       s << "\tpImageInfo = " << value.pImageInfo << '\n';
+       s << "\tpBufferInfo = " << value.pBufferInfo << '\n';
+       s << "\tpTexelBufferView = " << value.pTexelBufferView << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkCopyDescriptorSet& value)
 {
-       s << "VkPhysicalDeviceFeatures = {\n";
-       s << "\trobustBufferAccess = " << value.robustBufferAccess << '\n';
-       s << "\tfullDrawIndexUint32 = " << value.fullDrawIndexUint32 << '\n';
-       s << "\timageCubeArray = " << value.imageCubeArray << '\n';
-       s << "\tindependentBlend = " << value.independentBlend << '\n';
-       s << "\tgeometryShader = " << value.geometryShader << '\n';
-       s << "\ttessellationShader = " << value.tessellationShader << '\n';
-       s << "\tsampleRateShading = " << value.sampleRateShading << '\n';
-       s << "\tdualSrcBlend = " << value.dualSrcBlend << '\n';
-       s << "\tlogicOp = " << value.logicOp << '\n';
-       s << "\tmultiDrawIndirect = " << value.multiDrawIndirect << '\n';
-       s << "\tdrawIndirectFirstInstance = " << value.drawIndirectFirstInstance << '\n';
-       s << "\tdepthClamp = " << value.depthClamp << '\n';
-       s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
-       s << "\tfillModeNonSolid = " << value.fillModeNonSolid << '\n';
-       s << "\tdepthBounds = " << value.depthBounds << '\n';
-       s << "\twideLines = " << value.wideLines << '\n';
-       s << "\tlargePoints = " << value.largePoints << '\n';
-       s << "\talphaToOne = " << value.alphaToOne << '\n';
-       s << "\tmultiViewport = " << value.multiViewport << '\n';
-       s << "\tsamplerAnisotropy = " << value.samplerAnisotropy << '\n';
-       s << "\ttextureCompressionETC2 = " << value.textureCompressionETC2 << '\n';
-       s << "\ttextureCompressionASTC_LDR = " << value.textureCompressionASTC_LDR << '\n';
-       s << "\ttextureCompressionBC = " << value.textureCompressionBC << '\n';
-       s << "\tocclusionQueryPrecise = " << value.occlusionQueryPrecise << '\n';
-       s << "\tpipelineStatisticsQuery = " << value.pipelineStatisticsQuery << '\n';
-       s << "\tvertexPipelineStoresAndAtomics = " << value.vertexPipelineStoresAndAtomics << '\n';
-       s << "\tfragmentStoresAndAtomics = " << value.fragmentStoresAndAtomics << '\n';
-       s << "\tshaderTessellationAndGeometryPointSize = " << value.shaderTessellationAndGeometryPointSize << '\n';
-       s << "\tshaderImageGatherExtended = " << value.shaderImageGatherExtended << '\n';
-       s << "\tshaderStorageImageExtendedFormats = " << value.shaderStorageImageExtendedFormats << '\n';
-       s << "\tshaderStorageImageMultisample = " << value.shaderStorageImageMultisample << '\n';
-       s << "\tshaderStorageImageReadWithoutFormat = " << value.shaderStorageImageReadWithoutFormat << '\n';
-       s << "\tshaderStorageImageWriteWithoutFormat = " << value.shaderStorageImageWriteWithoutFormat << '\n';
-       s << "\tshaderUniformBufferArrayDynamicIndexing = " << value.shaderUniformBufferArrayDynamicIndexing << '\n';
-       s << "\tshaderSampledImageArrayDynamicIndexing = " << value.shaderSampledImageArrayDynamicIndexing << '\n';
-       s << "\tshaderStorageBufferArrayDynamicIndexing = " << value.shaderStorageBufferArrayDynamicIndexing << '\n';
-       s << "\tshaderStorageImageArrayDynamicIndexing = " << value.shaderStorageImageArrayDynamicIndexing << '\n';
-       s << "\tshaderClipDistance = " << value.shaderClipDistance << '\n';
-       s << "\tshaderCullDistance = " << value.shaderCullDistance << '\n';
-       s << "\tshaderFloat64 = " << value.shaderFloat64 << '\n';
-       s << "\tshaderInt64 = " << value.shaderInt64 << '\n';
-       s << "\tshaderInt16 = " << value.shaderInt16 << '\n';
-       s << "\tshaderResourceResidency = " << value.shaderResourceResidency << '\n';
-       s << "\tshaderResourceMinLod = " << value.shaderResourceMinLod << '\n';
-       s << "\tsparseBinding = " << value.sparseBinding << '\n';
-       s << "\tsparseResidencyBuffer = " << value.sparseResidencyBuffer << '\n';
-       s << "\tsparseResidencyImage2D = " << value.sparseResidencyImage2D << '\n';
-       s << "\tsparseResidencyImage3D = " << value.sparseResidencyImage3D << '\n';
-       s << "\tsparseResidency2Samples = " << value.sparseResidency2Samples << '\n';
-       s << "\tsparseResidency4Samples = " << value.sparseResidency4Samples << '\n';
-       s << "\tsparseResidency8Samples = " << value.sparseResidency8Samples << '\n';
-       s << "\tsparseResidency16Samples = " << value.sparseResidency16Samples << '\n';
-       s << "\tsparseResidencyAliased = " << value.sparseResidencyAliased << '\n';
-       s << "\tvariableMultisampleRate = " << value.variableMultisampleRate << '\n';
-       s << "\tinheritedQueries = " << value.inheritedQueries << '\n';
+       s << "VkCopyDescriptorSet = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tsrcSet = " << value.srcSet << '\n';
+       s << "\tsrcBinding = " << value.srcBinding << '\n';
+       s << "\tsrcArrayElement = " << value.srcArrayElement << '\n';
+       s << "\tdstSet = " << value.dstSet << '\n';
+       s << "\tdstBinding = " << value.dstBinding << '\n';
+       s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
+       s << "\tdescriptorCount = " << value.descriptorCount << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLimits& value)
+std::ostream& operator<< (std::ostream& s, const VkBufferCreateInfo& value)
 {
-       s << "VkPhysicalDeviceLimits = {\n";
-       s << "\tmaxImageDimension1D = " << value.maxImageDimension1D << '\n';
-       s << "\tmaxImageDimension2D = " << value.maxImageDimension2D << '\n';
-       s << "\tmaxImageDimension3D = " << value.maxImageDimension3D << '\n';
-       s << "\tmaxImageDimensionCube = " << value.maxImageDimensionCube << '\n';
-       s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
-       s << "\tmaxTexelBufferElements = " << value.maxTexelBufferElements << '\n';
-       s << "\tmaxUniformBufferRange = " << value.maxUniformBufferRange << '\n';
-       s << "\tmaxStorageBufferRange = " << value.maxStorageBufferRange << '\n';
-       s << "\tmaxPushConstantsSize = " << value.maxPushConstantsSize << '\n';
-       s << "\tmaxMemoryAllocationCount = " << value.maxMemoryAllocationCount << '\n';
-       s << "\tmaxSamplerAllocationCount = " << value.maxSamplerAllocationCount << '\n';
-       s << "\tbufferImageGranularity = " << value.bufferImageGranularity << '\n';
-       s << "\tsparseAddressSpaceSize = " << value.sparseAddressSpaceSize << '\n';
-       s << "\tmaxBoundDescriptorSets = " << value.maxBoundDescriptorSets << '\n';
-       s << "\tmaxPerStageDescriptorSamplers = " << value.maxPerStageDescriptorSamplers << '\n';
-       s << "\tmaxPerStageDescriptorUniformBuffers = " << value.maxPerStageDescriptorUniformBuffers << '\n';
-       s << "\tmaxPerStageDescriptorStorageBuffers = " << value.maxPerStageDescriptorStorageBuffers << '\n';
-       s << "\tmaxPerStageDescriptorSampledImages = " << value.maxPerStageDescriptorSampledImages << '\n';
-       s << "\tmaxPerStageDescriptorStorageImages = " << value.maxPerStageDescriptorStorageImages << '\n';
-       s << "\tmaxPerStageDescriptorInputAttachments = " << value.maxPerStageDescriptorInputAttachments << '\n';
-       s << "\tmaxPerStageResources = " << value.maxPerStageResources << '\n';
-       s << "\tmaxDescriptorSetSamplers = " << value.maxDescriptorSetSamplers << '\n';
-       s << "\tmaxDescriptorSetUniformBuffers = " << value.maxDescriptorSetUniformBuffers << '\n';
-       s << "\tmaxDescriptorSetUniformBuffersDynamic = " << value.maxDescriptorSetUniformBuffersDynamic << '\n';
-       s << "\tmaxDescriptorSetStorageBuffers = " << value.maxDescriptorSetStorageBuffers << '\n';
-       s << "\tmaxDescriptorSetStorageBuffersDynamic = " << value.maxDescriptorSetStorageBuffersDynamic << '\n';
-       s << "\tmaxDescriptorSetSampledImages = " << value.maxDescriptorSetSampledImages << '\n';
-       s << "\tmaxDescriptorSetStorageImages = " << value.maxDescriptorSetStorageImages << '\n';
-       s << "\tmaxDescriptorSetInputAttachments = " << value.maxDescriptorSetInputAttachments << '\n';
-       s << "\tmaxVertexInputAttributes = " << value.maxVertexInputAttributes << '\n';
-       s << "\tmaxVertexInputBindings = " << value.maxVertexInputBindings << '\n';
-       s << "\tmaxVertexInputAttributeOffset = " << value.maxVertexInputAttributeOffset << '\n';
-       s << "\tmaxVertexInputBindingStride = " << value.maxVertexInputBindingStride << '\n';
-       s << "\tmaxVertexOutputComponents = " << value.maxVertexOutputComponents << '\n';
-       s << "\tmaxTessellationGenerationLevel = " << value.maxTessellationGenerationLevel << '\n';
-       s << "\tmaxTessellationPatchSize = " << value.maxTessellationPatchSize << '\n';
-       s << "\tmaxTessellationControlPerVertexInputComponents = " << value.maxTessellationControlPerVertexInputComponents << '\n';
-       s << "\tmaxTessellationControlPerVertexOutputComponents = " << value.maxTessellationControlPerVertexOutputComponents << '\n';
-       s << "\tmaxTessellationControlPerPatchOutputComponents = " << value.maxTessellationControlPerPatchOutputComponents << '\n';
-       s << "\tmaxTessellationControlTotalOutputComponents = " << value.maxTessellationControlTotalOutputComponents << '\n';
-       s << "\tmaxTessellationEvaluationInputComponents = " << value.maxTessellationEvaluationInputComponents << '\n';
-       s << "\tmaxTessellationEvaluationOutputComponents = " << value.maxTessellationEvaluationOutputComponents << '\n';
-       s << "\tmaxGeometryShaderInvocations = " << value.maxGeometryShaderInvocations << '\n';
-       s << "\tmaxGeometryInputComponents = " << value.maxGeometryInputComponents << '\n';
-       s << "\tmaxGeometryOutputComponents = " << value.maxGeometryOutputComponents << '\n';
-       s << "\tmaxGeometryOutputVertices = " << value.maxGeometryOutputVertices << '\n';
-       s << "\tmaxGeometryTotalOutputComponents = " << value.maxGeometryTotalOutputComponents << '\n';
-       s << "\tmaxFragmentInputComponents = " << value.maxFragmentInputComponents << '\n';
-       s << "\tmaxFragmentOutputAttachments = " << value.maxFragmentOutputAttachments << '\n';
-       s << "\tmaxFragmentDualSrcAttachments = " << value.maxFragmentDualSrcAttachments << '\n';
-       s << "\tmaxFragmentCombinedOutputResources = " << value.maxFragmentCombinedOutputResources << '\n';
-       s << "\tmaxComputeSharedMemorySize = " << value.maxComputeSharedMemorySize << '\n';
-       s << "\tmaxComputeWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupCount), DE_ARRAY_END(value.maxComputeWorkGroupCount)) << '\n';
-       s << "\tmaxComputeWorkGroupInvocations = " << value.maxComputeWorkGroupInvocations << '\n';
-       s << "\tmaxComputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupSize), DE_ARRAY_END(value.maxComputeWorkGroupSize)) << '\n';
-       s << "\tsubPixelPrecisionBits = " << value.subPixelPrecisionBits << '\n';
-       s << "\tsubTexelPrecisionBits = " << value.subTexelPrecisionBits << '\n';
-       s << "\tmipmapPrecisionBits = " << value.mipmapPrecisionBits << '\n';
-       s << "\tmaxDrawIndexedIndexValue = " << value.maxDrawIndexedIndexValue << '\n';
-       s << "\tmaxDrawIndirectCount = " << value.maxDrawIndirectCount << '\n';
-       s << "\tmaxSamplerLodBias = " << value.maxSamplerLodBias << '\n';
-       s << "\tmaxSamplerAnisotropy = " << value.maxSamplerAnisotropy << '\n';
-       s << "\tmaxViewports = " << value.maxViewports << '\n';
-       s << "\tmaxViewportDimensions = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxViewportDimensions), DE_ARRAY_END(value.maxViewportDimensions)) << '\n';
-       s << "\tviewportBoundsRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewportBoundsRange), DE_ARRAY_END(value.viewportBoundsRange)) << '\n';
-       s << "\tviewportSubPixelBits = " << value.viewportSubPixelBits << '\n';
-       s << "\tminMemoryMapAlignment = " << value.minMemoryMapAlignment << '\n';
-       s << "\tminTexelBufferOffsetAlignment = " << value.minTexelBufferOffsetAlignment << '\n';
-       s << "\tminUniformBufferOffsetAlignment = " << value.minUniformBufferOffsetAlignment << '\n';
-       s << "\tminStorageBufferOffsetAlignment = " << value.minStorageBufferOffsetAlignment << '\n';
-       s << "\tminTexelOffset = " << value.minTexelOffset << '\n';
-       s << "\tmaxTexelOffset = " << value.maxTexelOffset << '\n';
-       s << "\tminTexelGatherOffset = " << value.minTexelGatherOffset << '\n';
-       s << "\tmaxTexelGatherOffset = " << value.maxTexelGatherOffset << '\n';
-       s << "\tminInterpolationOffset = " << value.minInterpolationOffset << '\n';
-       s << "\tmaxInterpolationOffset = " << value.maxInterpolationOffset << '\n';
-       s << "\tsubPixelInterpolationOffsetBits = " << value.subPixelInterpolationOffsetBits << '\n';
-       s << "\tmaxFramebufferWidth = " << value.maxFramebufferWidth << '\n';
-       s << "\tmaxFramebufferHeight = " << value.maxFramebufferHeight << '\n';
-       s << "\tmaxFramebufferLayers = " << value.maxFramebufferLayers << '\n';
-       s << "\tframebufferColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferColorSampleCounts) << '\n';
-       s << "\tframebufferDepthSampleCounts = " << getSampleCountFlagsStr(value.framebufferDepthSampleCounts) << '\n';
-       s << "\tframebufferStencilSampleCounts = " << getSampleCountFlagsStr(value.framebufferStencilSampleCounts) << '\n';
-       s << "\tframebufferNoAttachmentsSampleCounts = " << getSampleCountFlagsStr(value.framebufferNoAttachmentsSampleCounts) << '\n';
-       s << "\tmaxColorAttachments = " << value.maxColorAttachments << '\n';
-       s << "\tsampledImageColorSampleCounts = " << getSampleCountFlagsStr(value.sampledImageColorSampleCounts) << '\n';
-       s << "\tsampledImageIntegerSampleCounts = " << getSampleCountFlagsStr(value.sampledImageIntegerSampleCounts) << '\n';
-       s << "\tsampledImageDepthSampleCounts = " << getSampleCountFlagsStr(value.sampledImageDepthSampleCounts) << '\n';
-       s << "\tsampledImageStencilSampleCounts = " << getSampleCountFlagsStr(value.sampledImageStencilSampleCounts) << '\n';
-       s << "\tstorageImageSampleCounts = " << getSampleCountFlagsStr(value.storageImageSampleCounts) << '\n';
-       s << "\tmaxSampleMaskWords = " << value.maxSampleMaskWords << '\n';
-       s << "\ttimestampComputeAndGraphics = " << value.timestampComputeAndGraphics << '\n';
-       s << "\ttimestampPeriod = " << value.timestampPeriod << '\n';
-       s << "\tmaxClipDistances = " << value.maxClipDistances << '\n';
-       s << "\tmaxCullDistances = " << value.maxCullDistances << '\n';
-       s << "\tmaxCombinedClipAndCullDistances = " << value.maxCombinedClipAndCullDistances << '\n';
-       s << "\tdiscreteQueuePriorities = " << value.discreteQueuePriorities << '\n';
-       s << "\tpointSizeRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.pointSizeRange), DE_ARRAY_END(value.pointSizeRange)) << '\n';
-       s << "\tlineWidthRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.lineWidthRange), DE_ARRAY_END(value.lineWidthRange)) << '\n';
-       s << "\tpointSizeGranularity = " << value.pointSizeGranularity << '\n';
-       s << "\tlineWidthGranularity = " << value.lineWidthGranularity << '\n';
-       s << "\tstrictLines = " << value.strictLines << '\n';
-       s << "\tstandardSampleLocations = " << value.standardSampleLocations << '\n';
-       s << "\toptimalBufferCopyOffsetAlignment = " << value.optimalBufferCopyOffsetAlignment << '\n';
-       s << "\toptimalBufferCopyRowPitchAlignment = " << value.optimalBufferCopyRowPitchAlignment << '\n';
-       s << "\tnonCoherentAtomSize = " << value.nonCoherentAtomSize << '\n';
+       s << "VkBufferCreateInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
+       s << "\tsize = " << value.size << '\n';
+       s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
+       s << "\tsharingMode = " << value.sharingMode << '\n';
+       s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
+       s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkBufferViewCreateInfo& value)
 {
-       s << "VkPhysicalDeviceMemoryProperties = {\n";
-       s << "\tmemoryTypeCount = " << value.memoryTypeCount << '\n';
-       s << "\tmemoryTypes = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryTypes), DE_ARRAY_BEGIN(value.memoryTypes) + value.memoryTypeCount) << '\n';
-       s << "\tmemoryHeapCount = " << value.memoryHeapCount << '\n';
-       s << "\tmemoryHeaps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryHeaps), DE_ARRAY_BEGIN(value.memoryHeaps) + value.memoryHeapCount) << '\n';
+       s << "VkBufferViewCreateInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tflags = " << getBufferViewCreateFlagsStr(value.flags) << '\n';
+       s << "\tbuffer = " << value.buffer << '\n';
+       s << "\tformat = " << value.format << '\n';
+       s << "\toffset = " << value.offset << '\n';
+       s << "\trange = " << value.range << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkImageSubresource& value)
 {
-       s << "VkPhysicalDeviceSparseProperties = {\n";
-       s << "\tresidencyStandard2DBlockShape = " << value.residencyStandard2DBlockShape << '\n';
-       s << "\tresidencyStandard2DMultisampleBlockShape = " << value.residencyStandard2DMultisampleBlockShape << '\n';
-       s << "\tresidencyStandard3DBlockShape = " << value.residencyStandard3DBlockShape << '\n';
-       s << "\tresidencyAlignedMipSize = " << value.residencyAlignedMipSize << '\n';
-       s << "\tresidencyNonResidentStrict = " << value.residencyNonResidentStrict << '\n';
+       s << "VkImageSubresource = {\n";
+       s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
+       s << "\tmipLevel = " << value.mipLevel << '\n';
+       s << "\tarrayLayer = " << value.arrayLayer << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkImageSubresourceLayers& value)
 {
-       s << "VkPhysicalDeviceProperties = {\n";
-       s << "\tapiVersion = " << value.apiVersion << '\n';
-       s << "\tdriverVersion = " << value.driverVersion << '\n';
-       s << "\tvendorID = " << value.vendorID << '\n';
-       s << "\tdeviceID = " << value.deviceID << '\n';
-       s << "\tdeviceType = " << value.deviceType << '\n';
-       s << "\tdeviceName = " << (const char*)value.deviceName << '\n';
-       s << "\tpipelineCacheUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.pipelineCacheUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.pipelineCacheUUID))) << '\n';
-       s << "\tlimits = " << value.limits << '\n';
-       s << "\tsparseProperties = " << value.sparseProperties << '\n';
+       s << "VkImageSubresourceLayers = {\n";
+       s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
+       s << "\tmipLevel = " << value.mipLevel << '\n';
+       s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
+       s << "\tlayerCount = " << value.layerCount << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkImageSubresourceRange& value)
 {
-       s << "VkQueueFamilyProperties = {\n";
-       s << "\tqueueFlags = " << getQueueFlagsStr(value.queueFlags) << '\n';
-       s << "\tqueueCount = " << value.queueCount << '\n';
-       s << "\ttimestampValidBits = " << value.timestampValidBits << '\n';
-       s << "\tminImageTransferGranularity = " << value.minImageTransferGranularity << '\n';
+       s << "VkImageSubresourceRange = {\n";
+       s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
+       s << "\tbaseMipLevel = " << value.baseMipLevel << '\n';
+       s << "\tlevelCount = " << value.levelCount << '\n';
+       s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
+       s << "\tlayerCount = " << value.layerCount << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceQueueCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier& value)
 {
-       s << "VkDeviceQueueCreateInfo = {\n";
+       s << "VkMemoryBarrier = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
-       s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
-       s << "\tqueueCount = " << value.queueCount << '\n';
-       s << "\tpQueuePriorities = " << value.pQueuePriorities << '\n';
+       s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
+       s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier& value)
 {
-       s << "VkDeviceCreateInfo = {\n";
+       s << "VkBufferMemoryBarrier = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getDeviceCreateFlagsStr(value.flags) << '\n';
-       s << "\tqueueCreateInfoCount = " << value.queueCreateInfoCount << '\n';
-       s << "\tpQueueCreateInfos = " << value.pQueueCreateInfos << '\n';
-       s << "\tenabledLayerCount = " << value.enabledLayerCount << '\n';
-       s << "\tppEnabledLayerNames = " << value.ppEnabledLayerNames << '\n';
-       s << "\tenabledExtensionCount = " << value.enabledExtensionCount << '\n';
-       s << "\tppEnabledExtensionNames = " << value.ppEnabledExtensionNames << '\n';
-       s << "\tpEnabledFeatures = " << value.pEnabledFeatures << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkExtensionProperties& value)
-{
-       s << "VkExtensionProperties = {\n";
-       s << "\textensionName = " << (const char*)value.extensionName << '\n';
-       s << "\tspecVersion = " << value.specVersion << '\n';
+       s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
+       s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
+       s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
+       s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
+       s << "\tbuffer = " << value.buffer << '\n';
+       s << "\toffset = " << value.offset << '\n';
+       s << "\tsize = " << value.size << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkLayerProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier& value)
 {
-       s << "VkLayerProperties = {\n";
-       s << "\tlayerName = " << (const char*)value.layerName << '\n';
-       s << "\tspecVersion = " << value.specVersion << '\n';
-       s << "\timplementationVersion = " << value.implementationVersion << '\n';
-       s << "\tdescription = " << (const char*)value.description << '\n';
+       s << "VkImageMemoryBarrier = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
+       s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
+       s << "\toldLayout = " << value.oldLayout << '\n';
+       s << "\tnewLayout = " << value.newLayout << '\n';
+       s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
+       s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
+       s << "\timage = " << value.image << '\n';
+       s << "\tsubresourceRange = " << value.subresourceRange << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSubmitInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkImageCreateInfo& value)
 {
-       s << "VkSubmitInfo = {\n";
+       s << "VkImageCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
-       s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
-       s << "\tpWaitDstStageMask = " << value.pWaitDstStageMask << '\n';
-       s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
-       s << "\tpCommandBuffers = " << value.pCommandBuffers << '\n';
-       s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
-       s << "\tpSignalSemaphores = " << value.pSignalSemaphores << '\n';
+       s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
+       s << "\timageType = " << value.imageType << '\n';
+       s << "\tformat = " << value.format << '\n';
+       s << "\textent = " << value.extent << '\n';
+       s << "\tmipLevels = " << value.mipLevels << '\n';
+       s << "\tarrayLayers = " << value.arrayLayers << '\n';
+       s << "\tsamples = " << value.samples << '\n';
+       s << "\ttiling = " << value.tiling << '\n';
+       s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
+       s << "\tsharingMode = " << value.sharingMode << '\n';
+       s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
+       s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
+       s << "\tinitialLayout = " << value.initialLayout << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMappedMemoryRange& value)
+std::ostream& operator<< (std::ostream& s, const VkSubresourceLayout& value)
 {
-       s << "VkMappedMemoryRange = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemory = " << value.memory << '\n';
+       s << "VkSubresourceLayout = {\n";
        s << "\toffset = " << value.offset << '\n';
        s << "\tsize = " << value.size << '\n';
+       s << "\trowPitch = " << value.rowPitch << '\n';
+       s << "\tarrayPitch = " << value.arrayPitch << '\n';
+       s << "\tdepthPitch = " << value.depthPitch << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkImageViewCreateInfo& value)
 {
-       s << "VkMemoryAllocateInfo = {\n";
+       s << "VkImageViewCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tallocationSize = " << value.allocationSize << '\n';
-       s << "\tmemoryTypeIndex = " << value.memoryTypeIndex << '\n';
+       s << "\tflags = " << getImageViewCreateFlagsStr(value.flags) << '\n';
+       s << "\timage = " << value.image << '\n';
+       s << "\tviewType = " << value.viewType << '\n';
+       s << "\tformat = " << value.format << '\n';
+       s << "\tcomponents = " << value.components << '\n';
+       s << "\tsubresourceRange = " << value.subresourceRange << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements& value)
+std::ostream& operator<< (std::ostream& s, const VkBufferCopy& value)
 {
-       s << "VkMemoryRequirements = {\n";
+       s << "VkBufferCopy = {\n";
+       s << "\tsrcOffset = " << value.srcOffset << '\n';
+       s << "\tdstOffset = " << value.dstOffset << '\n';
        s << "\tsize = " << value.size << '\n';
-       s << "\talignment = " << value.alignment << '\n';
-       s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
        s << '}';
        return s;
 }
@@ -5534,6 +5290,19 @@ std::ostream& operator<< (std::ostream& s, const VkSparseMemoryBind& value)
        return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBind& value)
+{
+       s << "VkSparseImageMemoryBind = {\n";
+       s << "\tsubresource = " << value.subresource << '\n';
+       s << "\toffset = " << value.offset << '\n';
+       s << "\textent = " << value.extent << '\n';
+       s << "\tmemory = " << value.memory << '\n';
+       s << "\tmemoryOffset = " << value.memoryOffset << '\n';
+       s << "\tflags = " << getSparseMemoryBindFlagsStr(value.flags) << '\n';
+       s << '}';
+       return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkSparseBufferMemoryBindInfo& value)
 {
        s << "VkSparseBufferMemoryBindInfo = {\n";
@@ -5554,29 +5323,6 @@ std::ostream& operator<< (std::ostream& s, const VkSparseImageOpaqueMemoryBindIn
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageSubresource& value)
-{
-       s << "VkImageSubresource = {\n";
-       s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
-       s << "\tmipLevel = " << value.mipLevel << '\n';
-       s << "\tarrayLayer = " << value.arrayLayer << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBind& value)
-{
-       s << "VkSparseImageMemoryBind = {\n";
-       s << "\tsubresource = " << value.subresource << '\n';
-       s << "\toffset = " << value.offset << '\n';
-       s << "\textent = " << value.extent << '\n';
-       s << "\tmemory = " << value.memory << '\n';
-       s << "\tmemoryOffset = " << value.memoryOffset << '\n';
-       s << "\tflags = " << getSparseMemoryBindFlagsStr(value.flags) << '\n';
-       s << '}';
-       return s;
-}
-
 std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBindInfo& value)
 {
        s << "VkSparseImageMemoryBindInfo = {\n";
@@ -5606,180 +5352,120 @@ std::ostream& operator<< (std::ostream& s, const VkBindSparseInfo& value)
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties& value)
-{
-       s << "VkSparseImageFormatProperties = {\n";
-       s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
-       s << "\timageGranularity = " << value.imageGranularity << '\n';
-       s << "\tflags = " << getSparseImageFormatFlagsStr(value.flags) << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements& value)
-{
-       s << "VkSparseImageMemoryRequirements = {\n";
-       s << "\tformatProperties = " << value.formatProperties << '\n';
-       s << "\timageMipTailFirstLod = " << value.imageMipTailFirstLod << '\n';
-       s << "\timageMipTailSize = " << value.imageMipTailSize << '\n';
-       s << "\timageMipTailOffset = " << value.imageMipTailOffset << '\n';
-       s << "\timageMipTailStride = " << value.imageMipTailStride << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkFenceCreateInfo& value)
-{
-       s << "VkFenceCreateInfo = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getFenceCreateFlagsStr(value.flags) << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkSemaphoreCreateInfo& value)
-{
-       s << "VkSemaphoreCreateInfo = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getSemaphoreCreateFlagsStr(value.flags) << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkEventCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkImageCopy& value)
 {
-       s << "VkEventCreateInfo = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getEventCreateFlagsStr(value.flags) << '\n';
+       s << "VkImageCopy = {\n";
+       s << "\tsrcSubresource = " << value.srcSubresource << '\n';
+       s << "\tsrcOffset = " << value.srcOffset << '\n';
+       s << "\tdstSubresource = " << value.dstSubresource << '\n';
+       s << "\tdstOffset = " << value.dstOffset << '\n';
+       s << "\textent = " << value.extent << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkQueryPoolCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkImageBlit& value)
 {
-       s << "VkQueryPoolCreateInfo = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getQueryPoolCreateFlagsStr(value.flags) << '\n';
-       s << "\tqueryType = " << value.queryType << '\n';
-       s << "\tqueryCount = " << value.queryCount << '\n';
-       s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
+       s << "VkImageBlit = {\n";
+       s << "\tsrcSubresource = " << value.srcSubresource << '\n';
+       s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
+       s << "\tdstSubresource = " << value.dstSubresource << '\n';
+       s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBufferCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy& value)
 {
-       s << "VkBufferCreateInfo = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getBufferCreateFlagsStr(value.flags) << '\n';
-       s << "\tsize = " << value.size << '\n';
-       s << "\tusage = " << getBufferUsageFlagsStr(value.usage) << '\n';
-       s << "\tsharingMode = " << value.sharingMode << '\n';
-       s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
-       s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
+       s << "VkBufferImageCopy = {\n";
+       s << "\tbufferOffset = " << value.bufferOffset << '\n';
+       s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
+       s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
+       s << "\timageSubresource = " << value.imageSubresource << '\n';
+       s << "\timageOffset = " << value.imageOffset << '\n';
+       s << "\timageExtent = " << value.imageExtent << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBufferViewCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkImageResolve& value)
 {
-       s << "VkBufferViewCreateInfo = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getBufferViewCreateFlagsStr(value.flags) << '\n';
-       s << "\tbuffer = " << value.buffer << '\n';
-       s << "\tformat = " << value.format << '\n';
-       s << "\toffset = " << value.offset << '\n';
-       s << "\trange = " << value.range << '\n';
+       s << "VkImageResolve = {\n";
+       s << "\tsrcSubresource = " << value.srcSubresource << '\n';
+       s << "\tsrcOffset = " << value.srcOffset << '\n';
+       s << "\tdstSubresource = " << value.dstSubresource << '\n';
+       s << "\tdstOffset = " << value.dstOffset << '\n';
+       s << "\textent = " << value.extent << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkShaderModuleCreateInfo& value)
 {
-       s << "VkImageCreateInfo = {\n";
+       s << "VkShaderModuleCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
-       s << "\timageType = " << value.imageType << '\n';
-       s << "\tformat = " << value.format << '\n';
-       s << "\textent = " << value.extent << '\n';
-       s << "\tmipLevels = " << value.mipLevels << '\n';
-       s << "\tarrayLayers = " << value.arrayLayers << '\n';
-       s << "\tsamples = " << value.samples << '\n';
-       s << "\ttiling = " << value.tiling << '\n';
-       s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
-       s << "\tsharingMode = " << value.sharingMode << '\n';
-       s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
-       s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
-       s << "\tinitialLayout = " << value.initialLayout << '\n';
+       s << "\tflags = " << getShaderModuleCreateFlagsStr(value.flags) << '\n';
+       s << "\tcodeSize = " << value.codeSize << '\n';
+       s << "\tpCode = " << value.pCode << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSubresourceLayout& value)
+std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBinding& value)
 {
-       s << "VkSubresourceLayout = {\n";
-       s << "\toffset = " << value.offset << '\n';
-       s << "\tsize = " << value.size << '\n';
-       s << "\trowPitch = " << value.rowPitch << '\n';
-       s << "\tarrayPitch = " << value.arrayPitch << '\n';
-       s << "\tdepthPitch = " << value.depthPitch << '\n';
+       s << "VkDescriptorSetLayoutBinding = {\n";
+       s << "\tbinding = " << value.binding << '\n';
+       s << "\tdescriptorType = " << value.descriptorType << '\n';
+       s << "\tdescriptorCount = " << value.descriptorCount << '\n';
+       s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
+       s << "\tpImmutableSamplers = " << value.pImmutableSamplers << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkComponentMapping& value)
+std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutCreateInfo& value)
 {
-       s << "VkComponentMapping = {\n";
-       s << "\tr = " << value.r << '\n';
-       s << "\tg = " << value.g << '\n';
-       s << "\tb = " << value.b << '\n';
-       s << "\ta = " << value.a << '\n';
+       s << "VkDescriptorSetLayoutCreateInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tflags = " << getDescriptorSetLayoutCreateFlagsStr(value.flags) << '\n';
+       s << "\tbindingCount = " << value.bindingCount << '\n';
+       s << "\tpBindings = " << value.pBindings << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageViewCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolSize& value)
 {
-       s << "VkImageViewCreateInfo = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getImageViewCreateFlagsStr(value.flags) << '\n';
-       s << "\timage = " << value.image << '\n';
-       s << "\tviewType = " << value.viewType << '\n';
-       s << "\tformat = " << value.format << '\n';
-       s << "\tcomponents = " << value.components << '\n';
-       s << "\tsubresourceRange = " << value.subresourceRange << '\n';
+       s << "VkDescriptorPoolSize = {\n";
+       s << "\ttype = " << value.type << '\n';
+       s << "\tdescriptorCount = " << value.descriptorCount << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkShaderModuleCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolCreateInfo& value)
 {
-       s << "VkShaderModuleCreateInfo = {\n";
+       s << "VkDescriptorPoolCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getShaderModuleCreateFlagsStr(value.flags) << '\n';
-       s << "\tcodeSize = " << value.codeSize << '\n';
-       s << "\tpCode = " << value.pCode << '\n';
+       s << "\tflags = " << getDescriptorPoolCreateFlagsStr(value.flags) << '\n';
+       s << "\tmaxSets = " << value.maxSets << '\n';
+       s << "\tpoolSizeCount = " << value.poolSizeCount << '\n';
+       s << "\tpPoolSizes = " << value.pPoolSizes << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineCacheCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDescriptorSetAllocateInfo& value)
 {
-       s << "VkPipelineCacheCreateInfo = {\n";
+       s << "VkDescriptorSetAllocateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getPipelineCacheCreateFlagsStr(value.flags) << '\n';
-       s << "\tinitialDataSize = " << value.initialDataSize << '\n';
-       s << "\tpInitialData = " << value.pInitialData << '\n';
+       s << "\tdescriptorPool = " << value.descriptorPool << '\n';
+       s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
+       s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
        s << '}';
        return s;
 }
@@ -5891,19 +5577,6 @@ std::ostream& operator<< (std::ostream& s, const VkPipelineTessellationStateCrea
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkViewport& value)
-{
-       s << "VkViewport = {\n";
-       s << "\tx = " << value.x << '\n';
-       s << "\ty = " << value.y << '\n';
-       s << "\twidth = " << value.width << '\n';
-       s << "\theight = " << value.height << '\n';
-       s << "\tminDepth = " << value.minDepth << '\n';
-       s << "\tmaxDepth = " << value.maxDepth << '\n';
-       s << '}';
-       return s;
-}
-
 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportStateCreateInfo& value)
 {
        s << "VkPipelineViewportStateCreateInfo = {\n";
@@ -5954,39 +5627,6 @@ std::ostream& operator<< (std::ostream& s, const VkPipelineMultisampleStateCreat
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkStencilOpState& value)
-{
-       s << "VkStencilOpState = {\n";
-       s << "\tfailOp = " << value.failOp << '\n';
-       s << "\tpassOp = " << value.passOp << '\n';
-       s << "\tdepthFailOp = " << value.depthFailOp << '\n';
-       s << "\tcompareOp = " << value.compareOp << '\n';
-       s << "\tcompareMask = " << value.compareMask << '\n';
-       s << "\twriteMask = " << value.writeMask << '\n';
-       s << "\treference = " << value.reference << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkPipelineDepthStencilStateCreateInfo& value)
-{
-       s << "VkPipelineDepthStencilStateCreateInfo = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getPipelineDepthStencilStateCreateFlagsStr(value.flags) << '\n';
-       s << "\tdepthTestEnable = " << value.depthTestEnable << '\n';
-       s << "\tdepthWriteEnable = " << value.depthWriteEnable << '\n';
-       s << "\tdepthCompareOp = " << value.depthCompareOp << '\n';
-       s << "\tdepthBoundsTestEnable = " << value.depthBoundsTestEnable << '\n';
-       s << "\tstencilTestEnable = " << value.stencilTestEnable << '\n';
-       s << "\tfront = " << value.front << '\n';
-       s << "\tback = " << value.back << '\n';
-       s << "\tminDepthBounds = " << value.minDepthBounds << '\n';
-       s << "\tmaxDepthBounds = " << value.maxDepthBounds << '\n';
-       s << '}';
-       return s;
-}
-
 std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAttachmentState& value)
 {
        s << "VkPipelineColorBlendAttachmentState = {\n";
@@ -6029,6 +5669,39 @@ std::ostream& operator<< (std::ostream& s, const VkPipelineDynamicStateCreateInf
        return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkStencilOpState& value)
+{
+       s << "VkStencilOpState = {\n";
+       s << "\tfailOp = " << value.failOp << '\n';
+       s << "\tpassOp = " << value.passOp << '\n';
+       s << "\tdepthFailOp = " << value.depthFailOp << '\n';
+       s << "\tcompareOp = " << value.compareOp << '\n';
+       s << "\tcompareMask = " << value.compareMask << '\n';
+       s << "\twriteMask = " << value.writeMask << '\n';
+       s << "\treference = " << value.reference << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPipelineDepthStencilStateCreateInfo& value)
+{
+       s << "VkPipelineDepthStencilStateCreateInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tflags = " << getPipelineDepthStencilStateCreateFlagsStr(value.flags) << '\n';
+       s << "\tdepthTestEnable = " << value.depthTestEnable << '\n';
+       s << "\tdepthWriteEnable = " << value.depthWriteEnable << '\n';
+       s << "\tdepthCompareOp = " << value.depthCompareOp << '\n';
+       s << "\tdepthBoundsTestEnable = " << value.depthBoundsTestEnable << '\n';
+       s << "\tstencilTestEnable = " << value.stencilTestEnable << '\n';
+       s << "\tfront = " << value.front << '\n';
+       s << "\tback = " << value.back << '\n';
+       s << "\tminDepthBounds = " << value.minDepthBounds << '\n';
+       s << "\tmaxDepthBounds = " << value.maxDepthBounds << '\n';
+       s << '}';
+       return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineCreateInfo& value)
 {
        s << "VkGraphicsPipelineCreateInfo = {\n";
@@ -6055,6 +5728,30 @@ std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineCreateInfo& v
        return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkPipelineCacheCreateInfo& value)
+{
+       s << "VkPipelineCacheCreateInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tflags = " << getPipelineCacheCreateFlagsStr(value.flags) << '\n';
+       s << "\tinitialDataSize = " << value.initialDataSize << '\n';
+       s << "\tpInitialData = " << value.pInitialData << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPipelineCacheHeaderVersionOne& value)
+{
+       s << "VkPipelineCacheHeaderVersionOne = {\n";
+       s << "\theaderSize = " << value.headerSize << '\n';
+       s << "\theaderVersion = " << value.headerVersion << '\n';
+       s << "\tvendorID = " << value.vendorID << '\n';
+       s << "\tdeviceID = " << value.deviceID << '\n';
+       s << "\tpipelineCacheUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.pipelineCacheUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.pipelineCacheUUID))) << '\n';
+       s << '}';
+       return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkPushConstantRange& value)
 {
        s << "VkPushConstantRange = {\n";
@@ -6104,113 +5801,103 @@ std::ostream& operator<< (std::ostream& s, const VkSamplerCreateInfo& value)
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCopyDescriptorSet& value)
+std::ostream& operator<< (std::ostream& s, const VkCommandPoolCreateInfo& value)
 {
-       s << "VkCopyDescriptorSet = {\n";
+       s << "VkCommandPoolCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrcSet = " << value.srcSet << '\n';
-       s << "\tsrcBinding = " << value.srcBinding << '\n';
-       s << "\tsrcArrayElement = " << value.srcArrayElement << '\n';
-       s << "\tdstSet = " << value.dstSet << '\n';
-       s << "\tdstBinding = " << value.dstBinding << '\n';
-       s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
-       s << "\tdescriptorCount = " << value.descriptorCount << '\n';
+       s << "\tflags = " << getCommandPoolCreateFlagsStr(value.flags) << '\n';
+       s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDescriptorBufferInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkCommandBufferAllocateInfo& value)
 {
-       s << "VkDescriptorBufferInfo = {\n";
-       s << "\tbuffer = " << value.buffer << '\n';
-       s << "\toffset = " << value.offset << '\n';
-       s << "\trange = " << value.range << '\n';
+       s << "VkCommandBufferAllocateInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tcommandPool = " << value.commandPool << '\n';
+       s << "\tlevel = " << value.level << '\n';
+       s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDescriptorImageInfo& value)
-{
-       s << "VkDescriptorImageInfo = {\n";
-       s << "\tsampler = " << value.sampler << '\n';
-       s << "\timageView = " << value.imageView << '\n';
-       s << "\timageLayout = " << value.imageLayout << '\n';
+std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceInfo& value)
+{
+       s << "VkCommandBufferInheritanceInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\trenderPass = " << value.renderPass << '\n';
+       s << "\tsubpass = " << value.subpass << '\n';
+       s << "\tframebuffer = " << value.framebuffer << '\n';
+       s << "\tocclusionQueryEnable = " << value.occlusionQueryEnable << '\n';
+       s << "\tqueryFlags = " << getQueryControlFlagsStr(value.queryFlags) << '\n';
+       s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolSize& value)
+std::ostream& operator<< (std::ostream& s, const VkCommandBufferBeginInfo& value)
 {
-       s << "VkDescriptorPoolSize = {\n";
-       s << "\ttype = " << value.type << '\n';
-       s << "\tdescriptorCount = " << value.descriptorCount << '\n';
+       s << "VkCommandBufferBeginInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tflags = " << getCommandBufferUsageFlagsStr(value.flags) << '\n';
+       s << "\tpInheritanceInfo = " << value.pInheritanceInfo << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkRenderPassBeginInfo& value)
 {
-       s << "VkDescriptorPoolCreateInfo = {\n";
+       s << "VkRenderPassBeginInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getDescriptorPoolCreateFlagsStr(value.flags) << '\n';
-       s << "\tmaxSets = " << value.maxSets << '\n';
-       s << "\tpoolSizeCount = " << value.poolSizeCount << '\n';
-       s << "\tpPoolSizes = " << value.pPoolSizes << '\n';
+       s << "\trenderPass = " << value.renderPass << '\n';
+       s << "\tframebuffer = " << value.framebuffer << '\n';
+       s << "\trenderArea = " << value.renderArea << '\n';
+       s << "\tclearValueCount = " << value.clearValueCount << '\n';
+       s << "\tpClearValues = " << value.pClearValues << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDescriptorSetAllocateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkClearColorValue& value)
 {
-       s << "VkDescriptorSetAllocateInfo = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdescriptorPool = " << value.descriptorPool << '\n';
-       s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
-       s << "\tpSetLayouts = " << value.pSetLayouts << '\n';
+       s << "VkClearColorValue = {\n";
+       s << "\tfloat32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.float32), DE_ARRAY_END(value.float32)) << '\n';
+       s << "\tint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.int32), DE_ARRAY_END(value.int32)) << '\n';
+       s << "\tuint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.uint32), DE_ARRAY_END(value.uint32)) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBinding& value)
+std::ostream& operator<< (std::ostream& s, const VkClearDepthStencilValue& value)
 {
-       s << "VkDescriptorSetLayoutBinding = {\n";
-       s << "\tbinding = " << value.binding << '\n';
-       s << "\tdescriptorType = " << value.descriptorType << '\n';
-       s << "\tdescriptorCount = " << value.descriptorCount << '\n';
-       s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
-       s << "\tpImmutableSamplers = " << value.pImmutableSamplers << '\n';
+       s << "VkClearDepthStencilValue = {\n";
+       s << "\tdepth = " << value.depth << '\n';
+       s << "\tstencil = " << value.stencil << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkClearValue& value)
 {
-       s << "VkDescriptorSetLayoutCreateInfo = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getDescriptorSetLayoutCreateFlagsStr(value.flags) << '\n';
-       s << "\tbindingCount = " << value.bindingCount << '\n';
-       s << "\tpBindings = " << value.pBindings << '\n';
+       s << "VkClearValue = {\n";
+       s << "\tcolor = " << value.color << '\n';
+       s << "\tdepthStencil = " << value.depthStencil << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSet& value)
+std::ostream& operator<< (std::ostream& s, const VkClearAttachment& value)
 {
-       s << "VkWriteDescriptorSet = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdstSet = " << value.dstSet << '\n';
-       s << "\tdstBinding = " << value.dstBinding << '\n';
-       s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
-       s << "\tdescriptorCount = " << value.descriptorCount << '\n';
-       s << "\tdescriptorType = " << value.descriptorType << '\n';
-       s << "\tpImageInfo = " << value.pImageInfo << '\n';
-       s << "\tpBufferInfo = " << value.pBufferInfo << '\n';
-       s << "\tpTexelBufferView = " << value.pTexelBufferView << '\n';
+       s << "VkClearAttachment = {\n";
+       s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
+       s << "\tcolorAttachment = " << value.colorAttachment << '\n';
+       s << "\tclearValue = " << value.clearValue << '\n';
        s << '}';
        return s;
 }
@@ -6240,22 +5927,6 @@ std::ostream& operator<< (std::ostream& s, const VkAttachmentReference& value)
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkFramebufferCreateInfo& value)
-{
-       s << "VkFramebufferCreateInfo = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getFramebufferCreateFlagsStr(value.flags) << '\n';
-       s << "\trenderPass = " << value.renderPass << '\n';
-       s << "\tattachmentCount = " << value.attachmentCount << '\n';
-       s << "\tpAttachments = " << value.pAttachments << '\n';
-       s << "\twidth = " << value.width << '\n';
-       s << "\theight = " << value.height << '\n';
-       s << "\tlayers = " << value.layers << '\n';
-       s << '}';
-       return s;
-}
-
 std::ostream& operator<< (std::ostream& s, const VkSubpassDescription& value)
 {
        s << "VkSubpassDescription = {\n";
@@ -6303,1039 +5974,1085 @@ std::ostream& operator<< (std::ostream& s, const VkRenderPassCreateInfo& value)
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCommandPoolCreateInfo& value)
-{
-       s << "VkCommandPoolCreateInfo = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getCommandPoolCreateFlagsStr(value.flags) << '\n';
-       s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkCommandBufferAllocateInfo& value)
-{
-       s << "VkCommandBufferAllocateInfo = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcommandPool = " << value.commandPool << '\n';
-       s << "\tlevel = " << value.level << '\n';
-       s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkEventCreateInfo& value)
 {
-       s << "VkCommandBufferInheritanceInfo = {\n";
+       s << "VkEventCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\trenderPass = " << value.renderPass << '\n';
-       s << "\tsubpass = " << value.subpass << '\n';
-       s << "\tframebuffer = " << value.framebuffer << '\n';
-       s << "\tocclusionQueryEnable = " << value.occlusionQueryEnable << '\n';
-       s << "\tqueryFlags = " << getQueryControlFlagsStr(value.queryFlags) << '\n';
-       s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
+       s << "\tflags = " << getEventCreateFlagsStr(value.flags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCommandBufferBeginInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkFenceCreateInfo& value)
 {
-       s << "VkCommandBufferBeginInfo = {\n";
+       s << "VkFenceCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getCommandBufferUsageFlagsStr(value.flags) << '\n';
-       s << "\tpInheritanceInfo = " << value.pInheritanceInfo << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkBufferCopy& value)
-{
-       s << "VkBufferCopy = {\n";
-       s << "\tsrcOffset = " << value.srcOffset << '\n';
-       s << "\tdstOffset = " << value.dstOffset << '\n';
-       s << "\tsize = " << value.size << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkImageSubresourceLayers& value)
-{
-       s << "VkImageSubresourceLayers = {\n";
-       s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
-       s << "\tmipLevel = " << value.mipLevel << '\n';
-       s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
-       s << "\tlayerCount = " << value.layerCount << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy& value)
-{
-       s << "VkBufferImageCopy = {\n";
-       s << "\tbufferOffset = " << value.bufferOffset << '\n';
-       s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
-       s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
-       s << "\timageSubresource = " << value.imageSubresource << '\n';
-       s << "\timageOffset = " << value.imageOffset << '\n';
-       s << "\timageExtent = " << value.imageExtent << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkClearColorValue& value)
-{
-       s << "VkClearColorValue = {\n";
-       s << "\tfloat32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.float32), DE_ARRAY_END(value.float32)) << '\n';
-       s << "\tint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.int32), DE_ARRAY_END(value.int32)) << '\n';
-       s << "\tuint32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.uint32), DE_ARRAY_END(value.uint32)) << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkClearDepthStencilValue& value)
-{
-       s << "VkClearDepthStencilValue = {\n";
-       s << "\tdepth = " << value.depth << '\n';
-       s << "\tstencil = " << value.stencil << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkClearValue& value)
-{
-       s << "VkClearValue = {\n";
-       s << "\tcolor = " << value.color << '\n';
-       s << "\tdepthStencil = " << value.depthStencil << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkClearAttachment& value)
-{
-       s << "VkClearAttachment = {\n";
-       s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
-       s << "\tcolorAttachment = " << value.colorAttachment << '\n';
-       s << "\tclearValue = " << value.clearValue << '\n';
+       s << "\tflags = " << getFenceCreateFlagsStr(value.flags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkClearRect& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures& value)
 {
-       s << "VkClearRect = {\n";
-       s << "\trect = " << value.rect << '\n';
-       s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
-       s << "\tlayerCount = " << value.layerCount << '\n';
+       s << "VkPhysicalDeviceFeatures = {\n";
+       s << "\trobustBufferAccess = " << value.robustBufferAccess << '\n';
+       s << "\tfullDrawIndexUint32 = " << value.fullDrawIndexUint32 << '\n';
+       s << "\timageCubeArray = " << value.imageCubeArray << '\n';
+       s << "\tindependentBlend = " << value.independentBlend << '\n';
+       s << "\tgeometryShader = " << value.geometryShader << '\n';
+       s << "\ttessellationShader = " << value.tessellationShader << '\n';
+       s << "\tsampleRateShading = " << value.sampleRateShading << '\n';
+       s << "\tdualSrcBlend = " << value.dualSrcBlend << '\n';
+       s << "\tlogicOp = " << value.logicOp << '\n';
+       s << "\tmultiDrawIndirect = " << value.multiDrawIndirect << '\n';
+       s << "\tdrawIndirectFirstInstance = " << value.drawIndirectFirstInstance << '\n';
+       s << "\tdepthClamp = " << value.depthClamp << '\n';
+       s << "\tdepthBiasClamp = " << value.depthBiasClamp << '\n';
+       s << "\tfillModeNonSolid = " << value.fillModeNonSolid << '\n';
+       s << "\tdepthBounds = " << value.depthBounds << '\n';
+       s << "\twideLines = " << value.wideLines << '\n';
+       s << "\tlargePoints = " << value.largePoints << '\n';
+       s << "\talphaToOne = " << value.alphaToOne << '\n';
+       s << "\tmultiViewport = " << value.multiViewport << '\n';
+       s << "\tsamplerAnisotropy = " << value.samplerAnisotropy << '\n';
+       s << "\ttextureCompressionETC2 = " << value.textureCompressionETC2 << '\n';
+       s << "\ttextureCompressionASTC_LDR = " << value.textureCompressionASTC_LDR << '\n';
+       s << "\ttextureCompressionBC = " << value.textureCompressionBC << '\n';
+       s << "\tocclusionQueryPrecise = " << value.occlusionQueryPrecise << '\n';
+       s << "\tpipelineStatisticsQuery = " << value.pipelineStatisticsQuery << '\n';
+       s << "\tvertexPipelineStoresAndAtomics = " << value.vertexPipelineStoresAndAtomics << '\n';
+       s << "\tfragmentStoresAndAtomics = " << value.fragmentStoresAndAtomics << '\n';
+       s << "\tshaderTessellationAndGeometryPointSize = " << value.shaderTessellationAndGeometryPointSize << '\n';
+       s << "\tshaderImageGatherExtended = " << value.shaderImageGatherExtended << '\n';
+       s << "\tshaderStorageImageExtendedFormats = " << value.shaderStorageImageExtendedFormats << '\n';
+       s << "\tshaderStorageImageMultisample = " << value.shaderStorageImageMultisample << '\n';
+       s << "\tshaderStorageImageReadWithoutFormat = " << value.shaderStorageImageReadWithoutFormat << '\n';
+       s << "\tshaderStorageImageWriteWithoutFormat = " << value.shaderStorageImageWriteWithoutFormat << '\n';
+       s << "\tshaderUniformBufferArrayDynamicIndexing = " << value.shaderUniformBufferArrayDynamicIndexing << '\n';
+       s << "\tshaderSampledImageArrayDynamicIndexing = " << value.shaderSampledImageArrayDynamicIndexing << '\n';
+       s << "\tshaderStorageBufferArrayDynamicIndexing = " << value.shaderStorageBufferArrayDynamicIndexing << '\n';
+       s << "\tshaderStorageImageArrayDynamicIndexing = " << value.shaderStorageImageArrayDynamicIndexing << '\n';
+       s << "\tshaderClipDistance = " << value.shaderClipDistance << '\n';
+       s << "\tshaderCullDistance = " << value.shaderCullDistance << '\n';
+       s << "\tshaderFloat64 = " << value.shaderFloat64 << '\n';
+       s << "\tshaderInt64 = " << value.shaderInt64 << '\n';
+       s << "\tshaderInt16 = " << value.shaderInt16 << '\n';
+       s << "\tshaderResourceResidency = " << value.shaderResourceResidency << '\n';
+       s << "\tshaderResourceMinLod = " << value.shaderResourceMinLod << '\n';
+       s << "\tsparseBinding = " << value.sparseBinding << '\n';
+       s << "\tsparseResidencyBuffer = " << value.sparseResidencyBuffer << '\n';
+       s << "\tsparseResidencyImage2D = " << value.sparseResidencyImage2D << '\n';
+       s << "\tsparseResidencyImage3D = " << value.sparseResidencyImage3D << '\n';
+       s << "\tsparseResidency2Samples = " << value.sparseResidency2Samples << '\n';
+       s << "\tsparseResidency4Samples = " << value.sparseResidency4Samples << '\n';
+       s << "\tsparseResidency8Samples = " << value.sparseResidency8Samples << '\n';
+       s << "\tsparseResidency16Samples = " << value.sparseResidency16Samples << '\n';
+       s << "\tsparseResidencyAliased = " << value.sparseResidencyAliased << '\n';
+       s << "\tvariableMultisampleRate = " << value.variableMultisampleRate << '\n';
+       s << "\tinheritedQueries = " << value.inheritedQueries << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageBlit& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseProperties& value)
 {
-       s << "VkImageBlit = {\n";
-       s << "\tsrcSubresource = " << value.srcSubresource << '\n';
-       s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
-       s << "\tdstSubresource = " << value.dstSubresource << '\n';
-       s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
+       s << "VkPhysicalDeviceSparseProperties = {\n";
+       s << "\tresidencyStandard2DBlockShape = " << value.residencyStandard2DBlockShape << '\n';
+       s << "\tresidencyStandard2DMultisampleBlockShape = " << value.residencyStandard2DMultisampleBlockShape << '\n';
+       s << "\tresidencyStandard3DBlockShape = " << value.residencyStandard3DBlockShape << '\n';
+       s << "\tresidencyAlignedMipSize = " << value.residencyAlignedMipSize << '\n';
+       s << "\tresidencyNonResidentStrict = " << value.residencyNonResidentStrict << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageCopy& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLimits& value)
 {
-       s << "VkImageCopy = {\n";
-       s << "\tsrcSubresource = " << value.srcSubresource << '\n';
-       s << "\tsrcOffset = " << value.srcOffset << '\n';
-       s << "\tdstSubresource = " << value.dstSubresource << '\n';
-       s << "\tdstOffset = " << value.dstOffset << '\n';
-       s << "\textent = " << value.extent << '\n';
+       s << "VkPhysicalDeviceLimits = {\n";
+       s << "\tmaxImageDimension1D = " << value.maxImageDimension1D << '\n';
+       s << "\tmaxImageDimension2D = " << value.maxImageDimension2D << '\n';
+       s << "\tmaxImageDimension3D = " << value.maxImageDimension3D << '\n';
+       s << "\tmaxImageDimensionCube = " << value.maxImageDimensionCube << '\n';
+       s << "\tmaxImageArrayLayers = " << value.maxImageArrayLayers << '\n';
+       s << "\tmaxTexelBufferElements = " << value.maxTexelBufferElements << '\n';
+       s << "\tmaxUniformBufferRange = " << value.maxUniformBufferRange << '\n';
+       s << "\tmaxStorageBufferRange = " << value.maxStorageBufferRange << '\n';
+       s << "\tmaxPushConstantsSize = " << value.maxPushConstantsSize << '\n';
+       s << "\tmaxMemoryAllocationCount = " << value.maxMemoryAllocationCount << '\n';
+       s << "\tmaxSamplerAllocationCount = " << value.maxSamplerAllocationCount << '\n';
+       s << "\tbufferImageGranularity = " << value.bufferImageGranularity << '\n';
+       s << "\tsparseAddressSpaceSize = " << value.sparseAddressSpaceSize << '\n';
+       s << "\tmaxBoundDescriptorSets = " << value.maxBoundDescriptorSets << '\n';
+       s << "\tmaxPerStageDescriptorSamplers = " << value.maxPerStageDescriptorSamplers << '\n';
+       s << "\tmaxPerStageDescriptorUniformBuffers = " << value.maxPerStageDescriptorUniformBuffers << '\n';
+       s << "\tmaxPerStageDescriptorStorageBuffers = " << value.maxPerStageDescriptorStorageBuffers << '\n';
+       s << "\tmaxPerStageDescriptorSampledImages = " << value.maxPerStageDescriptorSampledImages << '\n';
+       s << "\tmaxPerStageDescriptorStorageImages = " << value.maxPerStageDescriptorStorageImages << '\n';
+       s << "\tmaxPerStageDescriptorInputAttachments = " << value.maxPerStageDescriptorInputAttachments << '\n';
+       s << "\tmaxPerStageResources = " << value.maxPerStageResources << '\n';
+       s << "\tmaxDescriptorSetSamplers = " << value.maxDescriptorSetSamplers << '\n';
+       s << "\tmaxDescriptorSetUniformBuffers = " << value.maxDescriptorSetUniformBuffers << '\n';
+       s << "\tmaxDescriptorSetUniformBuffersDynamic = " << value.maxDescriptorSetUniformBuffersDynamic << '\n';
+       s << "\tmaxDescriptorSetStorageBuffers = " << value.maxDescriptorSetStorageBuffers << '\n';
+       s << "\tmaxDescriptorSetStorageBuffersDynamic = " << value.maxDescriptorSetStorageBuffersDynamic << '\n';
+       s << "\tmaxDescriptorSetSampledImages = " << value.maxDescriptorSetSampledImages << '\n';
+       s << "\tmaxDescriptorSetStorageImages = " << value.maxDescriptorSetStorageImages << '\n';
+       s << "\tmaxDescriptorSetInputAttachments = " << value.maxDescriptorSetInputAttachments << '\n';
+       s << "\tmaxVertexInputAttributes = " << value.maxVertexInputAttributes << '\n';
+       s << "\tmaxVertexInputBindings = " << value.maxVertexInputBindings << '\n';
+       s << "\tmaxVertexInputAttributeOffset = " << value.maxVertexInputAttributeOffset << '\n';
+       s << "\tmaxVertexInputBindingStride = " << value.maxVertexInputBindingStride << '\n';
+       s << "\tmaxVertexOutputComponents = " << value.maxVertexOutputComponents << '\n';
+       s << "\tmaxTessellationGenerationLevel = " << value.maxTessellationGenerationLevel << '\n';
+       s << "\tmaxTessellationPatchSize = " << value.maxTessellationPatchSize << '\n';
+       s << "\tmaxTessellationControlPerVertexInputComponents = " << value.maxTessellationControlPerVertexInputComponents << '\n';
+       s << "\tmaxTessellationControlPerVertexOutputComponents = " << value.maxTessellationControlPerVertexOutputComponents << '\n';
+       s << "\tmaxTessellationControlPerPatchOutputComponents = " << value.maxTessellationControlPerPatchOutputComponents << '\n';
+       s << "\tmaxTessellationControlTotalOutputComponents = " << value.maxTessellationControlTotalOutputComponents << '\n';
+       s << "\tmaxTessellationEvaluationInputComponents = " << value.maxTessellationEvaluationInputComponents << '\n';
+       s << "\tmaxTessellationEvaluationOutputComponents = " << value.maxTessellationEvaluationOutputComponents << '\n';
+       s << "\tmaxGeometryShaderInvocations = " << value.maxGeometryShaderInvocations << '\n';
+       s << "\tmaxGeometryInputComponents = " << value.maxGeometryInputComponents << '\n';
+       s << "\tmaxGeometryOutputComponents = " << value.maxGeometryOutputComponents << '\n';
+       s << "\tmaxGeometryOutputVertices = " << value.maxGeometryOutputVertices << '\n';
+       s << "\tmaxGeometryTotalOutputComponents = " << value.maxGeometryTotalOutputComponents << '\n';
+       s << "\tmaxFragmentInputComponents = " << value.maxFragmentInputComponents << '\n';
+       s << "\tmaxFragmentOutputAttachments = " << value.maxFragmentOutputAttachments << '\n';
+       s << "\tmaxFragmentDualSrcAttachments = " << value.maxFragmentDualSrcAttachments << '\n';
+       s << "\tmaxFragmentCombinedOutputResources = " << value.maxFragmentCombinedOutputResources << '\n';
+       s << "\tmaxComputeSharedMemorySize = " << value.maxComputeSharedMemorySize << '\n';
+       s << "\tmaxComputeWorkGroupCount = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupCount), DE_ARRAY_END(value.maxComputeWorkGroupCount)) << '\n';
+       s << "\tmaxComputeWorkGroupInvocations = " << value.maxComputeWorkGroupInvocations << '\n';
+       s << "\tmaxComputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxComputeWorkGroupSize), DE_ARRAY_END(value.maxComputeWorkGroupSize)) << '\n';
+       s << "\tsubPixelPrecisionBits = " << value.subPixelPrecisionBits << '\n';
+       s << "\tsubTexelPrecisionBits = " << value.subTexelPrecisionBits << '\n';
+       s << "\tmipmapPrecisionBits = " << value.mipmapPrecisionBits << '\n';
+       s << "\tmaxDrawIndexedIndexValue = " << value.maxDrawIndexedIndexValue << '\n';
+       s << "\tmaxDrawIndirectCount = " << value.maxDrawIndirectCount << '\n';
+       s << "\tmaxSamplerLodBias = " << value.maxSamplerLodBias << '\n';
+       s << "\tmaxSamplerAnisotropy = " << value.maxSamplerAnisotropy << '\n';
+       s << "\tmaxViewports = " << value.maxViewports << '\n';
+       s << "\tmaxViewportDimensions = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxViewportDimensions), DE_ARRAY_END(value.maxViewportDimensions)) << '\n';
+       s << "\tviewportBoundsRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewportBoundsRange), DE_ARRAY_END(value.viewportBoundsRange)) << '\n';
+       s << "\tviewportSubPixelBits = " << value.viewportSubPixelBits << '\n';
+       s << "\tminMemoryMapAlignment = " << value.minMemoryMapAlignment << '\n';
+       s << "\tminTexelBufferOffsetAlignment = " << value.minTexelBufferOffsetAlignment << '\n';
+       s << "\tminUniformBufferOffsetAlignment = " << value.minUniformBufferOffsetAlignment << '\n';
+       s << "\tminStorageBufferOffsetAlignment = " << value.minStorageBufferOffsetAlignment << '\n';
+       s << "\tminTexelOffset = " << value.minTexelOffset << '\n';
+       s << "\tmaxTexelOffset = " << value.maxTexelOffset << '\n';
+       s << "\tminTexelGatherOffset = " << value.minTexelGatherOffset << '\n';
+       s << "\tmaxTexelGatherOffset = " << value.maxTexelGatherOffset << '\n';
+       s << "\tminInterpolationOffset = " << value.minInterpolationOffset << '\n';
+       s << "\tmaxInterpolationOffset = " << value.maxInterpolationOffset << '\n';
+       s << "\tsubPixelInterpolationOffsetBits = " << value.subPixelInterpolationOffsetBits << '\n';
+       s << "\tmaxFramebufferWidth = " << value.maxFramebufferWidth << '\n';
+       s << "\tmaxFramebufferHeight = " << value.maxFramebufferHeight << '\n';
+       s << "\tmaxFramebufferLayers = " << value.maxFramebufferLayers << '\n';
+       s << "\tframebufferColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferColorSampleCounts) << '\n';
+       s << "\tframebufferDepthSampleCounts = " << getSampleCountFlagsStr(value.framebufferDepthSampleCounts) << '\n';
+       s << "\tframebufferStencilSampleCounts = " << getSampleCountFlagsStr(value.framebufferStencilSampleCounts) << '\n';
+       s << "\tframebufferNoAttachmentsSampleCounts = " << getSampleCountFlagsStr(value.framebufferNoAttachmentsSampleCounts) << '\n';
+       s << "\tmaxColorAttachments = " << value.maxColorAttachments << '\n';
+       s << "\tsampledImageColorSampleCounts = " << getSampleCountFlagsStr(value.sampledImageColorSampleCounts) << '\n';
+       s << "\tsampledImageIntegerSampleCounts = " << getSampleCountFlagsStr(value.sampledImageIntegerSampleCounts) << '\n';
+       s << "\tsampledImageDepthSampleCounts = " << getSampleCountFlagsStr(value.sampledImageDepthSampleCounts) << '\n';
+       s << "\tsampledImageStencilSampleCounts = " << getSampleCountFlagsStr(value.sampledImageStencilSampleCounts) << '\n';
+       s << "\tstorageImageSampleCounts = " << getSampleCountFlagsStr(value.storageImageSampleCounts) << '\n';
+       s << "\tmaxSampleMaskWords = " << value.maxSampleMaskWords << '\n';
+       s << "\ttimestampComputeAndGraphics = " << value.timestampComputeAndGraphics << '\n';
+       s << "\ttimestampPeriod = " << value.timestampPeriod << '\n';
+       s << "\tmaxClipDistances = " << value.maxClipDistances << '\n';
+       s << "\tmaxCullDistances = " << value.maxCullDistances << '\n';
+       s << "\tmaxCombinedClipAndCullDistances = " << value.maxCombinedClipAndCullDistances << '\n';
+       s << "\tdiscreteQueuePriorities = " << value.discreteQueuePriorities << '\n';
+       s << "\tpointSizeRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.pointSizeRange), DE_ARRAY_END(value.pointSizeRange)) << '\n';
+       s << "\tlineWidthRange = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.lineWidthRange), DE_ARRAY_END(value.lineWidthRange)) << '\n';
+       s << "\tpointSizeGranularity = " << value.pointSizeGranularity << '\n';
+       s << "\tlineWidthGranularity = " << value.lineWidthGranularity << '\n';
+       s << "\tstrictLines = " << value.strictLines << '\n';
+       s << "\tstandardSampleLocations = " << value.standardSampleLocations << '\n';
+       s << "\toptimalBufferCopyOffsetAlignment = " << value.optimalBufferCopyOffsetAlignment << '\n';
+       s << "\toptimalBufferCopyRowPitchAlignment = " << value.optimalBufferCopyRowPitchAlignment << '\n';
+       s << "\tnonCoherentAtomSize = " << value.nonCoherentAtomSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageResolve& value)
+std::ostream& operator<< (std::ostream& s, const VkSemaphoreCreateInfo& value)
 {
-       s << "VkImageResolve = {\n";
-       s << "\tsrcSubresource = " << value.srcSubresource << '\n';
-       s << "\tsrcOffset = " << value.srcOffset << '\n';
-       s << "\tdstSubresource = " << value.dstSubresource << '\n';
-       s << "\tdstOffset = " << value.dstOffset << '\n';
-       s << "\textent = " << value.extent << '\n';
+       s << "VkSemaphoreCreateInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tflags = " << getSemaphoreCreateFlagsStr(value.flags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkRenderPassBeginInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkQueryPoolCreateInfo& value)
 {
-       s << "VkRenderPassBeginInfo = {\n";
+       s << "VkQueryPoolCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\trenderPass = " << value.renderPass << '\n';
-       s << "\tframebuffer = " << value.framebuffer << '\n';
-       s << "\trenderArea = " << value.renderArea << '\n';
-       s << "\tclearValueCount = " << value.clearValueCount << '\n';
-       s << "\tpClearValues = " << value.pClearValues << '\n';
+       s << "\tflags = " << getQueryPoolCreateFlagsStr(value.flags) << '\n';
+       s << "\tqueryType = " << value.queryType << '\n';
+       s << "\tqueryCount = " << value.queryCount << '\n';
+       s << "\tpipelineStatistics = " << getQueryPipelineStatisticFlagsStr(value.pipelineStatistics) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkFramebufferCreateInfo& value)
 {
-       s << "VkPhysicalDeviceSubgroupProperties = {\n";
+       s << "VkFramebufferCreateInfo = {\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 = " << getFramebufferCreateFlagsStr(value.flags) << '\n';
+       s << "\trenderPass = " << value.renderPass << '\n';
+       s << "\tattachmentCount = " << value.attachmentCount << '\n';
+       s << "\tpAttachments = " << value.pAttachments << '\n';
+       s << "\twidth = " << value.width << '\n';
+       s << "\theight = " << value.height << '\n';
+       s << "\tlayers = " << value.layers << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDrawIndirectCommand& value)
 {
-       s << "VkBindBufferMemoryInfo = {\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 << "VkDrawIndirectCommand = {\n";
+       s << "\tvertexCount = " << value.vertexCount << '\n';
+       s << "\tinstanceCount = " << value.instanceCount << '\n';
+       s << "\tfirstVertex = " << value.firstVertex << '\n';
+       s << "\tfirstInstance = " << value.firstInstance << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDrawIndexedIndirectCommand& value)
 {
-       s << "VkBindImageMemoryInfo = {\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 << "VkDrawIndexedIndirectCommand = {\n";
+       s << "\tindexCount = " << value.indexCount << '\n';
+       s << "\tinstanceCount = " << value.instanceCount << '\n';
+       s << "\tfirstIndex = " << value.firstIndex << '\n';
+       s << "\tvertexOffset = " << value.vertexOffset << '\n';
+       s << "\tfirstInstance = " << value.firstInstance << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice16BitStorageFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkDispatchIndirectCommand& value)
 {
-       s << "VkPhysicalDevice16BitStorageFeatures = {\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 << "VkDispatchIndirectCommand = {\n";
+       s << "\tx = " << value.x << '\n';
+       s << "\ty = " << value.y << '\n';
+       s << "\tz = " << value.z << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedRequirements& value)
+std::ostream& operator<< (std::ostream& s, const VkMultiDrawInfoEXT& value)
 {
-       s << "VkMemoryDedicatedRequirements = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tprefersDedicatedAllocation = " << value.prefersDedicatedAllocation << '\n';
-       s << "\trequiresDedicatedAllocation = " << value.requiresDedicatedAllocation << '\n';
+       s << "VkMultiDrawInfoEXT = {\n";
+       s << "\tfirstVertex = " << value.firstVertex << '\n';
+       s << "\tvertexCount = " << value.vertexCount << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedAllocateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkMultiDrawIndexedInfoEXT& value)
 {
-       s << "VkMemoryDedicatedAllocateInfo = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\timage = " << value.image << '\n';
-       s << "\tbuffer = " << value.buffer << '\n';
+       s << "VkMultiDrawIndexedInfoEXT = {\n";
+       s << "\tfirstIndex = " << value.firstIndex << '\n';
+       s << "\tindexCount = " << value.indexCount << '\n';
+       s << "\tvertexOffset = " << value.vertexOffset << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateFlagsInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkSubmitInfo& value)
 {
-       s << "VkMemoryAllocateFlagsInfo = {\n";
+       s << "VkSubmitInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getMemoryAllocateFlagsStr(value.flags) << '\n';
-       s << "\tdeviceMask = " << value.deviceMask << '\n';
+       s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
+       s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
+       s << "\tpWaitDstStageMask = " << getPipelineStageFlagsStr(*value.pWaitDstStageMask) << '\n';
+       s << "\tcommandBufferCount = " << value.commandBufferCount << '\n';
+       s << "\tpCommandBuffers = " << value.pCommandBuffers << '\n';
+       s << "\tsignalSemaphoreCount = " << value.signalSemaphoreCount << '\n';
+       s << "\tpSignalSemaphores = " << value.pSignalSemaphores << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceGroupRenderPassBeginInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayPropertiesKHR& value)
 {
-       s << "VkDeviceGroupRenderPassBeginInfo = {\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 << "VkDisplayPropertiesKHR = {\n";
+       s << "\tdisplay = " << value.display << '\n';
+       s << "\tdisplayName = " << getCharPtrStr(value.displayName) << '\n';
+       s << "\tphysicalDimensions = " << value.physicalDimensions << '\n';
+       s << "\tphysicalResolution = " << value.physicalResolution << '\n';
+       s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
+       s << "\tplaneReorderPossible = " << value.planeReorderPossible << '\n';
+       s << "\tpersistentContent = " << value.persistentContent << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceGroupCommandBufferBeginInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayPlanePropertiesKHR& value)
 {
-       s << "VkDeviceGroupCommandBufferBeginInfo = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdeviceMask = " << value.deviceMask << '\n';
+       s << "VkDisplayPlanePropertiesKHR = {\n";
+       s << "\tcurrentDisplay = " << value.currentDisplay << '\n';
+       s << "\tcurrentStackIndex = " << value.currentStackIndex << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSubmitInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayModeParametersKHR& value)
 {
-       s << "VkDeviceGroupSubmitInfo = {\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 << "VkDisplayModeParametersKHR = {\n";
+       s << "\tvisibleRegion = " << value.visibleRegion << '\n';
+       s << "\trefreshRate = " << value.refreshRate << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceGroupBindSparseInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayModePropertiesKHR& value)
 {
-       s << "VkDeviceGroupBindSparseInfo = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tresourceDeviceIndex = " << value.resourceDeviceIndex << '\n';
-       s << "\tmemoryDeviceIndex = " << value.memoryDeviceIndex << '\n';
+       s << "VkDisplayModePropertiesKHR = {\n";
+       s << "\tdisplayMode = " << value.displayMode << '\n';
+       s << "\tparameters = " << value.parameters << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryDeviceGroupInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayModeCreateInfoKHR& value)
 {
-       s << "VkBindBufferMemoryDeviceGroupInfo = {\n";
+       s << "VkDisplayModeCreateInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
-       s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
+       s << "\tflags = " << getDisplayModeCreateFlagsKHRStr(value.flags) << '\n';
+       s << "\tparameters = " << value.parameters << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryDeviceGroupInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilitiesKHR& value)
 {
-       s << "VkBindImageMemoryDeviceGroupInfo = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
-       s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
-       s << "\tsplitInstanceBindRegionCount = " << value.splitInstanceBindRegionCount << '\n';
-       s << "\tpSplitInstanceBindRegions = " << value.pSplitInstanceBindRegions << '\n';
+       s << "VkDisplayPlaneCapabilitiesKHR = {\n";
+       s << "\tsupportedAlpha = " << getDisplayPlaneAlphaFlagsKHRStr(value.supportedAlpha) << '\n';
+       s << "\tminSrcPosition = " << value.minSrcPosition << '\n';
+       s << "\tmaxSrcPosition = " << value.maxSrcPosition << '\n';
+       s << "\tminSrcExtent = " << value.minSrcExtent << '\n';
+       s << "\tmaxSrcExtent = " << value.maxSrcExtent << '\n';
+       s << "\tminDstPosition = " << value.minDstPosition << '\n';
+       s << "\tmaxDstPosition = " << value.maxDstPosition << '\n';
+       s << "\tminDstExtent = " << value.minDstExtent << '\n';
+       s << "\tmaxDstExtent = " << value.maxDstExtent << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGroupProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplaySurfaceCreateInfoKHR& value)
 {
-       s << "VkPhysicalDeviceGroupProperties = {\n";
+       s << "VkDisplaySurfaceCreateInfoKHR = {\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 << "\tflags = " << getDisplaySurfaceCreateFlagsKHRStr(value.flags) << '\n';
+       s << "\tdisplayMode = " << value.displayMode << '\n';
+       s << "\tplaneIndex = " << value.planeIndex << '\n';
+       s << "\tplaneStackIndex = " << value.planeStackIndex << '\n';
+       s << "\ttransform = " << value.transform << '\n';
+       s << "\tglobalAlpha = " << value.globalAlpha << '\n';
+       s << "\talphaMode = " << value.alphaMode << '\n';
+       s << "\timageExtent = " << value.imageExtent << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceGroupDeviceCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayPresentInfoKHR& value)
 {
-       s << "VkDeviceGroupDeviceCreateInfo = {\n";
+       s << "VkDisplayPresentInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
-       s << "\tpPhysicalDevices = " << value.pPhysicalDevices << '\n';
+       s << "\tsrcRect = " << value.srcRect << '\n';
+       s << "\tdstRect = " << value.dstRect << '\n';
+       s << "\tpersistent = " << value.persistent << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBufferMemoryRequirementsInfo2& value)
+std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesKHR& value)
 {
-       s << "VkBufferMemoryRequirementsInfo2 = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tbuffer = " << value.buffer << '\n';
+       s << "VkSurfaceCapabilitiesKHR = {\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 << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageMemoryRequirementsInfo2& value)
+std::ostream& operator<< (std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value)
 {
-       s << "VkImageMemoryRequirementsInfo2 = {\n";
+       s << "VkAndroidSurfaceCreateInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\timage = " << value.image << '\n';
+       s << "\tflags = " << getAndroidSurfaceCreateFlagsKHRStr(value.flags) << '\n';
+       s << "\twindow = " << value.window << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageSparseMemoryRequirementsInfo2& value)
+std::ostream& operator<< (std::ostream& s, const VkViSurfaceCreateInfoNN& value)
 {
-       s << "VkImageSparseMemoryRequirementsInfo2 = {\n";
+       s << "VkViSurfaceCreateInfoNN = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\timage = " << value.image << '\n';
+       s << "\tflags = " << getViSurfaceCreateFlagsNNStr(value.flags) << '\n';
+       s << "\twindow = " << value.window << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements2& value)
+std::ostream& operator<< (std::ostream& s, const VkWaylandSurfaceCreateInfoKHR& value)
 {
-       s << "VkMemoryRequirements2 = {\n";
+       s << "VkWaylandSurfaceCreateInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
+       s << "\tflags = " << getWaylandSurfaceCreateFlagsKHRStr(value.flags) << '\n';
+       s << "\tdisplay = " << value.display << '\n';
+       s << "\tsurface = " << value.surface << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements2& value)
+std::ostream& operator<< (std::ostream& s, const VkWin32SurfaceCreateInfoKHR& value)
 {
-       s << "VkSparseImageMemoryRequirements2 = {\n";
+       s << "VkWin32SurfaceCreateInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
+       s << "\tflags = " << getWin32SurfaceCreateFlagsKHRStr(value.flags) << '\n';
+       s << "\thinstance = " << value.hinstance << '\n';
+       s << "\thwnd = " << value.hwnd << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures2& value)
+std::ostream& operator<< (std::ostream& s, const VkXlibSurfaceCreateInfoKHR& value)
 {
-       s << "VkPhysicalDeviceFeatures2 = {\n";
+       s << "VkXlibSurfaceCreateInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfeatures = " << value.features << '\n';
+       s << "\tflags = " << getXlibSurfaceCreateFlagsKHRStr(value.flags) << '\n';
+       s << "\tdpy = " << value.dpy << '\n';
+       s << "\twindow = " << value.window << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties2& value)
+std::ostream& operator<< (std::ostream& s, const VkXcbSurfaceCreateInfoKHR& value)
 {
-       s << "VkPhysicalDeviceProperties2 = {\n";
+       s << "VkXcbSurfaceCreateInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tproperties = " << value.properties << '\n';
+       s << "\tflags = " << getXcbSurfaceCreateFlagsKHRStr(value.flags) << '\n';
+       s << "\tconnection = " << value.connection << '\n';
+       s << "\twindow = " << value.window << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkFormatProperties2& value)
+std::ostream& operator<< (std::ostream& s, const VkImagePipeSurfaceCreateInfoFUCHSIA& value)
 {
-       s << "VkFormatProperties2 = {\n";
+       s << "VkImagePipeSurfaceCreateInfoFUCHSIA = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tformatProperties = " << value.formatProperties << '\n';
+       s << "\tflags = " << getImagePipeSurfaceCreateFlagsFUCHSIAStr(value.flags) << '\n';
+       s << "\timagePipeHandle = " << value.imagePipeHandle << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties2& value)
+std::ostream& operator<< (std::ostream& s, const VkStreamDescriptorSurfaceCreateInfoGGP& value)
 {
-       s << "VkImageFormatProperties2 = {\n";
+       s << "VkStreamDescriptorSurfaceCreateInfoGGP = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
+       s << "\tflags = " << getStreamDescriptorSurfaceCreateFlagsGGPStr(value.flags) << '\n';
+       s << "\tstreamDescriptor = " << value.streamDescriptor << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageFormatInfo2& value)
+std::ostream& operator<< (std::ostream& s, const VkScreenSurfaceCreateInfoQNX& value)
 {
-       s << "VkPhysicalDeviceImageFormatInfo2 = {\n";
+       s << "VkScreenSurfaceCreateInfoQNX = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tformat = " << value.format << '\n';
-       s << "\ttype = " << value.type << '\n';
-       s << "\ttiling = " << value.tiling << '\n';
-       s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
-       s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
+       s << "\tflags = " << getScreenSurfaceCreateFlagsQNXStr(value.flags) << '\n';
+       s << "\tcontext = " << value.context << '\n';
+       s << "\twindow = " << value.window << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties2& value)
+std::ostream& operator<< (std::ostream& s, const VkSurfaceFormatKHR& value)
 {
-       s << "VkQueueFamilyProperties2 = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tqueueFamilyProperties = " << value.queueFamilyProperties << '\n';
+       s << "VkSurfaceFormatKHR = {\n";
+       s << "\tformat = " << value.format << '\n';
+       s << "\tcolorSpace = " << value.colorSpace << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties2& value)
+std::ostream& operator<< (std::ostream& s, const VkSwapchainCreateInfoKHR& value)
 {
-       s << "VkPhysicalDeviceMemoryProperties2 = {\n";
+       s << "VkSwapchainCreateInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemoryProperties = " << value.memoryProperties << '\n';
+       s << "\tflags = " << getSwapchainCreateFlagsKHRStr(value.flags) << '\n';
+       s << "\tsurface = " << value.surface << '\n';
+       s << "\tminImageCount = " << value.minImageCount << '\n';
+       s << "\timageFormat = " << value.imageFormat << '\n';
+       s << "\timageColorSpace = " << value.imageColorSpace << '\n';
+       s << "\timageExtent = " << value.imageExtent << '\n';
+       s << "\timageArrayLayers = " << value.imageArrayLayers << '\n';
+       s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
+       s << "\timageSharingMode = " << value.imageSharingMode << '\n';
+       s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
+       s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
+       s << "\tpreTransform = " << value.preTransform << '\n';
+       s << "\tcompositeAlpha = " << value.compositeAlpha << '\n';
+       s << "\tpresentMode = " << value.presentMode << '\n';
+       s << "\tclipped = " << value.clipped << '\n';
+       s << "\toldSwapchain = " << value.oldSwapchain << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties2& value)
+std::ostream& operator<< (std::ostream& s, const VkPresentInfoKHR& value)
 {
-       s << "VkSparseImageFormatProperties2 = {\n";
+       s << "VkPresentInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tproperties = " << value.properties << '\n';
+       s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
+       s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
+       s << "\tswapchainCount = " << value.swapchainCount << '\n';
+       s << "\tpSwapchains = " << value.pSwapchains << '\n';
+       s << "\tpImageIndices = " << value.pImageIndices << '\n';
+       s << "\tpResults = " << value.pResults << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseImageFormatInfo2& value)
+std::ostream& operator<< (std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value)
 {
-       s << "VkPhysicalDeviceSparseImageFormatInfo2 = {\n";
+       s << "VkDebugReportCallbackCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tformat = " << value.format << '\n';
-       s << "\ttype = " << value.type << '\n';
-       s << "\tsamples = " << value.samples << '\n';
-       s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
-       s << "\ttiling = " << value.tiling << '\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 VkPhysicalDevicePointClippingProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkValidationFlagsEXT& value)
 {
-       s << "VkPhysicalDevicePointClippingProperties = {\n";
+       s << "VkValidationFlagsEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
+       s << "\tdisabledValidationCheckCount = " << value.disabledValidationCheckCount << '\n';
+       s << "\tpDisabledValidationChecks = " << value.pDisabledValidationChecks << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkInputAttachmentAspectReference& value)
+std::ostream& operator<< (std::ostream& s, const VkValidationFeaturesEXT& value)
 {
-       s << "VkInputAttachmentAspectReference = {\n";
-       s << "\tsubpass = " << value.subpass << '\n';
-       s << "\tinputAttachmentIndex = " << value.inputAttachmentIndex << '\n';
-       s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
+       s << "VkValidationFeaturesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tenabledValidationFeatureCount = " << value.enabledValidationFeatureCount << '\n';
+       s << "\tpEnabledValidationFeatures = " << value.pEnabledValidationFeatures << '\n';
+       s << "\tdisabledValidationFeatureCount = " << value.disabledValidationFeatureCount << '\n';
+       s << "\tpDisabledValidationFeatures = " << value.pDisabledValidationFeatures << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkRenderPassInputAttachmentAspectCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateRasterizationOrderAMD& value)
 {
-       s << "VkRenderPassInputAttachmentAspectCreateInfo = {\n";
+       s << "VkPipelineRasterizationStateRasterizationOrderAMD = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\taspectReferenceCount = " << value.aspectReferenceCount << '\n';
-       s << "\tpAspectReferences = " << value.pAspectReferences << '\n';
+       s << "\trasterizationOrder = " << value.rasterizationOrder << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageViewUsageCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectNameInfoEXT& value)
 {
-       s << "VkImageViewUsageCreateInfo = {\n";
+       s << "VkDebugMarkerObjectNameInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\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 VkPipelineTessellationDomainOriginStateCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectTagInfoEXT& value)
 {
-       s << "VkPipelineTessellationDomainOriginStateCreateInfo = {\n";
+       s << "VkDebugMarkerObjectTagInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdomainOrigin = " << value.domainOrigin << '\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 VkRenderPassMultiviewCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDebugMarkerMarkerInfoEXT& value)
 {
-       s << "VkRenderPassMultiviewCreateInfo = {\n";
+       s << "VkDebugMarkerMarkerInfoEXT = {\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 << "\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 VkPhysicalDeviceMultiviewFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationImageCreateInfoNV& value)
 {
-       s << "VkPhysicalDeviceMultiviewFeatures = {\n";
+       s << "VkDedicatedAllocationImageCreateInfoNV = {\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 << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationBufferCreateInfoNV& value)
 {
-       s << "VkPhysicalDeviceMultiviewProperties = {\n";
+       s << "VkDedicatedAllocationBufferCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
-       s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
+       s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVariablePointersFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationMemoryAllocateInfoNV& value)
 {
-       s << "VkPhysicalDeviceVariablePointersFeatures = {\n";
+       s << "VkDedicatedAllocationMemoryAllocateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
-       s << "\tvariablePointers = " << value.variablePointers << '\n';
+       s << "\timage = " << value.image << '\n';
+       s << "\tbuffer = " << value.buffer << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProtectedMemoryFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatPropertiesNV& value)
 {
-       s << "VkPhysicalDeviceProtectedMemoryFeatures = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tprotectedMemory = " << value.protectedMemory << '\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 VkPhysicalDeviceProtectedMemoryProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfoNV& value)
 {
-       s << "VkPhysicalDeviceProtectedMemoryProperties = {\n";
+       s << "VkExternalMemoryImageCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
+       s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceQueueInfo2& value)
+std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfoNV& value)
 {
-       s << "VkDeviceQueueInfo2 = {\n";
+       s << "VkExportMemoryAllocateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
-       s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
-       s << "\tqueueIndex = " << value.queueIndex << '\n';
+       s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkProtectedSubmitInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoNV& value)
 {
-       s << "VkProtectedSubmitInfo = {\n";
+       s << "VkImportMemoryWin32HandleInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tprotectedSubmit = " << value.protectedSubmit << '\n';
+       s << "\thandleType = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleType) << '\n';
+       s << "\thandle = " << value.handle << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoNV& value)
 {
-       s << "VkSamplerYcbcrConversionCreateInfo = {\n";
+       s << "VkExportMemoryWin32HandleInfoNV = {\n";
        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 << "\tcomponents = " << value.components << '\n';
-       s << "\txChromaOffset = " << value.xChromaOffset << '\n';
-       s << "\tyChromaOffset = " << value.yChromaOffset << '\n';
-       s << "\tchromaFilter = " << value.chromaFilter << '\n';
-       s << "\tforceExplicitReconstruction = " << value.forceExplicitReconstruction << '\n';
+       s << "\tpAttributes = " << value.pAttributes << '\n';
+       s << "\tdwAccess = " << value.dwAccess << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoNV& value)
 {
-       s << "VkSamplerYcbcrConversionInfo = {\n";
+       s << "VkWin32KeyedMutexAcquireReleaseInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tconversion = " << value.conversion << '\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 VkBindImagePlaneMemoryInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV& value)
 {
-       s << "VkBindImagePlaneMemoryInfo = {\n";
+       s << "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tplaneAspect = " << value.planeAspect << '\n';
+       s << "\tdeviceGeneratedCommands = " << value.deviceGeneratedCommands << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImagePlaneMemoryRequirementsInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDevicePrivateDataCreateInfo& value)
 {
-       s << "VkImagePlaneMemoryRequirementsInfo = {\n";
+       s << "VkDevicePrivateDataCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tplaneAspect = " << value.planeAspect << '\n';
+       s << "\tprivateDataSlotRequestCount = " << value.privateDataSlotRequestCount << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerYcbcrConversionFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkPrivateDataSlotCreateInfo& value)
 {
-       s << "VkPhysicalDeviceSamplerYcbcrConversionFeatures = {\n";
+       s << "VkPrivateDataSlotCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
+       s << "\tflags = " << getPrivateDataSlotCreateFlagsStr(value.flags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionImageFormatProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrivateDataFeatures& value)
 {
-       s << "VkSamplerYcbcrConversionImageFormatProperties = {\n";
+       s << "VkPhysicalDevicePrivateDataFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcombinedImageSamplerDescriptorCount = " << value.combinedImageSamplerDescriptorCount << '\n';
+       s << "\tprivateData = " << value.privateData << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateEntry& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV& value)
 {
-       s << "VkDescriptorUpdateTemplateEntry = {\n";
-       s << "\tdstBinding = " << value.dstBinding << '\n';
-       s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
-       s << "\tdescriptorCount = " << value.descriptorCount << '\n';
-       s << "\tdescriptorType = " << value.descriptorType << '\n';
-       s << "\toffset = " << value.offset << '\n';
-       s << "\tstride = " << value.stride << '\n';
+       s << "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tmaxGraphicsShaderGroupCount = " << value.maxGraphicsShaderGroupCount << '\n';
+       s << "\tmaxIndirectSequenceCount = " << value.maxIndirectSequenceCount << '\n';
+       s << "\tmaxIndirectCommandsTokenCount = " << value.maxIndirectCommandsTokenCount << '\n';
+       s << "\tmaxIndirectCommandsStreamCount = " << value.maxIndirectCommandsStreamCount << '\n';
+       s << "\tmaxIndirectCommandsTokenOffset = " << value.maxIndirectCommandsTokenOffset << '\n';
+       s << "\tmaxIndirectCommandsStreamStride = " << value.maxIndirectCommandsStreamStride << '\n';
+       s << "\tminSequencesCountBufferOffsetAlignment = " << value.minSequencesCountBufferOffsetAlignment << '\n';
+       s << "\tminSequencesIndexBufferOffsetAlignment = " << value.minSequencesIndexBufferOffsetAlignment << '\n';
+       s << "\tminIndirectCommandsBufferOffsetAlignment = " << value.minIndirectCommandsBufferOffsetAlignment << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiDrawPropertiesEXT& value)
 {
-       s << "VkDescriptorUpdateTemplateCreateInfo = {\n";
+       s << "VkPhysicalDeviceMultiDrawPropertiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getDescriptorUpdateTemplateCreateFlagsStr(value.flags) << '\n';
-       s << "\tdescriptorUpdateEntryCount = " << value.descriptorUpdateEntryCount << '\n';
-       s << "\tpDescriptorUpdateEntries = " << value.pDescriptorUpdateEntries << '\n';
-       s << "\ttemplateType = " << value.templateType << '\n';
-       s << "\tdescriptorSetLayout = " << value.descriptorSetLayout << '\n';
-       s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
-       s << "\tpipelineLayout = " << value.pipelineLayout << '\n';
-       s << "\tset = " << value.set << '\n';
+       s << "\tmaxMultiDrawCount = " << value.maxMultiDrawCount << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExternalMemoryProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkGraphicsShaderGroupCreateInfoNV& value)
 {
-       s << "VkExternalMemoryProperties = {\n";
-       s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsStr(value.externalMemoryFeatures) << '\n';
-       s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
-       s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
+       s << "VkGraphicsShaderGroupCreateInfoNV = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tstageCount = " << value.stageCount << '\n';
+       s << "\tpStages = " << value.pStages << '\n';
+       s << "\tpVertexInputState = " << value.pVertexInputState << '\n';
+       s << "\tpTessellationState = " << value.pTessellationState << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalImageFormatInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineShaderGroupsCreateInfoNV& value)
 {
-       s << "VkPhysicalDeviceExternalImageFormatInfo = {\n";
+       s << "VkGraphicsPipelineShaderGroupsCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
+       s << "\tgroupCount = " << value.groupCount << '\n';
+       s << "\tpGroups = " << value.pGroups << '\n';
+       s << "\tpipelineCount = " << value.pipelineCount << '\n';
+       s << "\tpPipelines = " << value.pPipelines << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkBindShaderGroupIndirectCommandNV& value)
 {
-       s << "VkExternalImageFormatProperties = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
+       s << "VkBindShaderGroupIndirectCommandNV = {\n";
+       s << "\tgroupIndex = " << value.groupIndex << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalBufferInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkBindIndexBufferIndirectCommandNV& value)
 {
-       s << "VkPhysicalDeviceExternalBufferInfo = {\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 << "VkBindIndexBufferIndirectCommandNV = {\n";
+       s << "\tbufferAddress = " << value.bufferAddress << '\n';
+       s << "\tsize = " << value.size << '\n';
+       s << "\tindexType = " << value.indexType << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExternalBufferProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkBindVertexBufferIndirectCommandNV& value)
 {
-       s << "VkExternalBufferProperties = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
+       s << "VkBindVertexBufferIndirectCommandNV = {\n";
+       s << "\tbufferAddress = " << value.bufferAddress << '\n';
+       s << "\tsize = " << value.size << '\n';
+       s << "\tstride = " << value.stride << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIDProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkSetStateFlagsIndirectCommandNV& value)
 {
-       s << "VkPhysicalDeviceIDProperties = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdeviceUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.deviceUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.deviceUUID))) << '\n';
-       s << "\tdriverUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.driverUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.driverUUID))) << '\n';
-       s << "\tdeviceLUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.deviceLUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.deviceLUID))) << '\n';
-       s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
-       s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
+       s << "VkSetStateFlagsIndirectCommandNV = {\n";
+       s << "\tdata = " << value.data << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsStreamNV& value)
 {
-       s << "VkExternalMemoryImageCreateInfo = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
+       s << "VkIndirectCommandsStreamNV = {\n";
+       s << "\tbuffer = " << value.buffer << '\n';
+       s << "\toffset = " << value.offset << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExternalMemoryBufferCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutTokenNV& value)
 {
-       s << "VkExternalMemoryBufferCreateInfo = {\n";
+       s << "VkIndirectCommandsLayoutTokenNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
+       s << "\ttokenType = " << value.tokenType << '\n';
+       s << "\tstream = " << value.stream << '\n';
+       s << "\toffset = " << value.offset << '\n';
+       s << "\tvertexBindingUnit = " << value.vertexBindingUnit << '\n';
+       s << "\tvertexDynamicStride = " << value.vertexDynamicStride << '\n';
+       s << "\tpushconstantPipelineLayout = " << value.pushconstantPipelineLayout << '\n';
+       s << "\tpushconstantShaderStageFlags = " << getShaderStageFlagsStr(value.pushconstantShaderStageFlags) << '\n';
+       s << "\tpushconstantOffset = " << value.pushconstantOffset << '\n';
+       s << "\tpushconstantSize = " << value.pushconstantSize << '\n';
+       s << "\tindirectStateFlags = " << getIndirectStateFlagsNVStr(value.indirectStateFlags) << '\n';
+       s << "\tindexTypeCount = " << value.indexTypeCount << '\n';
+       s << "\tpIndexTypes = " << value.pIndexTypes << '\n';
+       s << "\tpIndexTypeValues = " << value.pIndexTypeValues << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutCreateInfoNV& value)
 {
-       s << "VkExportMemoryAllocateInfo = {\n";
+       s << "VkIndirectCommandsLayoutCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
+       s << "\tflags = " << getIndirectCommandsLayoutUsageFlagsNVStr(value.flags) << '\n';
+       s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
+       s << "\ttokenCount = " << value.tokenCount << '\n';
+       s << "\tpTokens = " << value.pTokens << '\n';
+       s << "\tstreamCount = " << value.streamCount << '\n';
+       s << "\tpStreamStrides = " << value.pStreamStrides << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalFenceInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsInfoNV& value)
 {
-       s << "VkPhysicalDeviceExternalFenceInfo = {\n";
+       s << "VkGeneratedCommandsInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
+       s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
+       s << "\tpipeline = " << value.pipeline << '\n';
+       s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
+       s << "\tstreamCount = " << value.streamCount << '\n';
+       s << "\tpStreams = " << value.pStreams << '\n';
+       s << "\tsequencesCount = " << value.sequencesCount << '\n';
+       s << "\tpreprocessBuffer = " << value.preprocessBuffer << '\n';
+       s << "\tpreprocessOffset = " << value.preprocessOffset << '\n';
+       s << "\tpreprocessSize = " << value.preprocessSize << '\n';
+       s << "\tsequencesCountBuffer = " << value.sequencesCountBuffer << '\n';
+       s << "\tsequencesCountOffset = " << value.sequencesCountOffset << '\n';
+       s << "\tsequencesIndexBuffer = " << value.sequencesIndexBuffer << '\n';
+       s << "\tsequencesIndexOffset = " << value.sequencesIndexOffset << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExternalFenceProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsMemoryRequirementsInfoNV& value)
 {
-       s << "VkExternalFenceProperties = {\n";
+       s << "VkGeneratedCommandsMemoryRequirementsInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\texportFromImportedHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
-       s << "\tcompatibleHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
-       s << "\texternalFenceFeatures = " << getExternalFenceFeatureFlagsStr(value.externalFenceFeatures) << '\n';
+       s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
+       s << "\tpipeline = " << value.pipeline << '\n';
+       s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
+       s << "\tmaxSequencesCount = " << value.maxSequencesCount << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExportFenceCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFeatures2& value)
 {
-       s << "VkExportFenceCreateInfo = {\n";
+       s << "VkPhysicalDeviceFeatures2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.handleTypes) << '\n';
+       s << "\tfeatures = " << value.features << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProperties2& value)
 {
-       s << "VkExportSemaphoreCreateInfo = {\n";
+       s << "VkPhysicalDeviceProperties2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.handleTypes) << '\n';
+       s << "\tproperties = " << value.properties << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalSemaphoreInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkFormatProperties2& value)
 {
-       s << "VkPhysicalDeviceExternalSemaphoreInfo = {\n";
+       s << "VkFormatProperties2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
+       s << "\tformatProperties = " << value.formatProperties << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExternalSemaphoreProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties2& value)
 {
-       s << "VkExternalSemaphoreProperties = {\n";
+       s << "VkImageFormatProperties2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\texportFromImportedHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
-       s << "\tcompatibleHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
-       s << "\texternalSemaphoreFeatures = " << getExternalSemaphoreFeatureFlagsStr(value.externalSemaphoreFeatures) << '\n';
+       s << "\timageFormatProperties = " << value.imageFormatProperties << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance3Properties& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageFormatInfo2& value)
 {
-       s << "VkPhysicalDeviceMaintenance3Properties = {\n";
+       s << "VkPhysicalDeviceImageFormatInfo2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
-       s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
+       s << "\tformat = " << value.format << '\n';
+       s << "\ttype = " << value.type << '\n';
+       s << "\ttiling = " << value.tiling << '\n';
+       s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
+       s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutSupport& value)
+std::ostream& operator<< (std::ostream& s, const VkQueueFamilyProperties2& value)
 {
-       s << "VkDescriptorSetLayoutSupport = {\n";
+       s << "VkQueueFamilyProperties2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsupported = " << value.supported << '\n';
+       s << "\tqueueFamilyProperties = " << value.queueFamilyProperties << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDrawParametersFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties2& value)
 {
-       s << "VkPhysicalDeviceShaderDrawParametersFeatures = {\n";
+       s << "VkPhysicalDeviceMemoryProperties2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
+       s << "\tmemoryProperties = " << value.memoryProperties << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Features& value)
+std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties2& value)
 {
-       s << "VkPhysicalDeviceVulkan11Features = {\n";
+       s << "VkSparseImageFormatProperties2 = {\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 << "\tmultiview = " << value.multiview << '\n';
-       s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
-       s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
-       s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
-       s << "\tvariablePointers = " << value.variablePointers << '\n';
-       s << "\tprotectedMemory = " << value.protectedMemory << '\n';
-       s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
-       s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
+       s << "\tproperties = " << value.properties << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Properties& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseImageFormatInfo2& value)
 {
-       s << "VkPhysicalDeviceVulkan11Properties = {\n";
+       s << "VkPhysicalDeviceSparseImageFormatInfo2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdeviceUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.deviceUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.deviceUUID))) << '\n';
-       s << "\tdriverUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.driverUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.driverUUID))) << '\n';
-       s << "\tdeviceLUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.deviceLUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.deviceLUID))) << '\n';
-       s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
-       s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
-       s << "\tsubgroupSize = " << value.subgroupSize << '\n';
-       s << "\tsubgroupSupportedStages = " << getShaderStageFlagsStr(value.subgroupSupportedStages) << '\n';
-       s << "\tsubgroupSupportedOperations = " << getSubgroupFeatureFlagsStr(value.subgroupSupportedOperations) << '\n';
-       s << "\tsubgroupQuadOperationsInAllStages = " << value.subgroupQuadOperationsInAllStages << '\n';
-       s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
-       s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
-       s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
-       s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
-       s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
-       s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
+       s << "\tformat = " << value.format << '\n';
+       s << "\ttype = " << value.type << '\n';
+       s << "\tsamples = " << value.samples << '\n';
+       s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
+       s << "\ttiling = " << value.tiling << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Features& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePushDescriptorPropertiesKHR& value)
 {
-       s << "VkPhysicalDeviceVulkan12Features = {\n";
+       s << "VkPhysicalDevicePushDescriptorPropertiesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsamplerMirrorClampToEdge = " << value.samplerMirrorClampToEdge << '\n';
-       s << "\tdrawIndirectCount = " << value.drawIndirectCount << '\n';
-       s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
-       s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
-       s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
-       s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
-       s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
-       s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
-       s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
-       s << "\tdescriptorIndexing = " << value.descriptorIndexing << '\n';
-       s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
-       s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
-       s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
-       s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
-       s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
-       s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
-       s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
-       s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
-       s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
-       s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
-       s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
-       s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
-       s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
-       s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
-       s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
-       s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
-       s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
-       s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
-       s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
-       s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
-       s << "\tsamplerFilterMinmax = " << value.samplerFilterMinmax << '\n';
-       s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\n';
-       s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
-       s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
-       s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
-       s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
-       s << "\thostQueryReset = " << value.hostQueryReset << '\n';
-       s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
-       s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
-       s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
-       s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
-       s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
-       s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
-       s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
-       s << "\tshaderOutputViewportIndex = " << value.shaderOutputViewportIndex << '\n';
-       s << "\tshaderOutputLayer = " << value.shaderOutputLayer << '\n';
-       s << "\tsubgroupBroadcastDynamicId = " << value.subgroupBroadcastDynamicId << '\n';
+       s << "\tmaxPushDescriptors = " << value.maxPushDescriptors << '\n';
        s << '}';
        return s;
 }
@@ -7351,4184 +7068,4026 @@ std::ostream& operator<< (std::ostream& s, const VkConformanceVersion& value)
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Properties& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDriverProperties& value)
 {
-       s << "VkPhysicalDeviceVulkan12Properties = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdriverID = " << value.driverID << '\n';
-       s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
-       s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
-       s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
-       s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
-       s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
-       s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
-       s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
-       s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
-       s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
-       s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
-       s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
-       s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
-       s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
-       s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
-       s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
-       s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
-       s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
-       s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
-       s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
-       s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
-       s << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
-       s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
-       s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
-       s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
-       s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
-       s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
-       s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
-       s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
-       s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
-       s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
-       s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
-       s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
-       s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
-       s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
-       s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
-       s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
-       s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
-       s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
-       s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
-       s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
-       s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
-       s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
-       s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
-       s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
-       s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
-       s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
-       s << "\tindependentResolve = " << value.independentResolve << '\n';
-       s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
-       s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
-       s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
-       s << "\tframebufferIntegerColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferIntegerColorSampleCounts) << '\n';
+       s << "VkPhysicalDeviceDriverProperties = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tdriverID = " << value.driverID << '\n';
+       s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
+       s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
+       s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageFormatListCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkPresentRegionsKHR& value)
 {
-       s << "VkImageFormatListCreateInfo = {\n";
+       s << "VkPresentRegionsKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
-       s << "\tpViewFormats = " << value.pViewFormats << '\n';
+       s << "\tswapchainCount = " << value.swapchainCount << '\n';
+       s << "\tpRegions = " << value.pRegions << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAttachmentDescription2& value)
+std::ostream& operator<< (std::ostream& s, const VkPresentRegionKHR& value)
 {
-       s << "VkAttachmentDescription2 = {\n";
+       s << "VkPresentRegionKHR = {\n";
+       s << "\trectangleCount = " << value.rectangleCount << '\n';
+       s << "\tpRectangles = " << value.pRectangles << '\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 VkPhysicalDeviceVariablePointersFeatures& value)
+{
+       s << "VkPhysicalDeviceVariablePointersFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getAttachmentDescriptionFlagsStr(value.flags) << '\n';
-       s << "\tformat = " << value.format << '\n';
-       s << "\tsamples = " << value.samples << '\n';
-       s << "\tloadOp = " << value.loadOp << '\n';
-       s << "\tstoreOp = " << value.storeOp << '\n';
-       s << "\tstencilLoadOp = " << value.stencilLoadOp << '\n';
-       s << "\tstencilStoreOp = " << value.stencilStoreOp << '\n';
-       s << "\tinitialLayout = " << value.initialLayout << '\n';
-       s << "\tfinalLayout = " << value.finalLayout << '\n';
+       s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
+       s << "\tvariablePointers = " << value.variablePointers << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAttachmentReference2& value)
+std::ostream& operator<< (std::ostream& s, const VkExternalMemoryProperties& value)
 {
-       s << "VkAttachmentReference2 = {\n";
+       s << "VkExternalMemoryProperties = {\n";
+       s << "\texternalMemoryFeatures = " << getExternalMemoryFeatureFlagsStr(value.externalMemoryFeatures) << '\n';
+       s << "\texportFromImportedHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
+       s << "\tcompatibleHandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalImageFormatInfo& value)
+{
+       s << "VkPhysicalDeviceExternalImageFormatInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tattachment = " << value.attachment << '\n';
-       s << "\tlayout = " << value.layout << '\n';
-       s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSubpassDescription2& value)
+std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatProperties& value)
 {
-       s << "VkSubpassDescription2 = {\n";
+       s << "VkExternalImageFormatProperties = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getSubpassDescriptionFlagsStr(value.flags) << '\n';
-       s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
-       s << "\tviewMask = " << value.viewMask << '\n';
-       s << "\tinputAttachmentCount = " << value.inputAttachmentCount << '\n';
-       s << "\tpInputAttachments = " << value.pInputAttachments << '\n';
-       s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
-       s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
-       s << "\tpResolveAttachments = " << value.pResolveAttachments << '\n';
-       s << "\tpDepthStencilAttachment = " << value.pDepthStencilAttachment << '\n';
-       s << "\tpreserveAttachmentCount = " << value.preserveAttachmentCount << '\n';
-       s << "\tpPreserveAttachments = " << value.pPreserveAttachments << '\n';
+       s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSubpassDependency2& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalBufferInfo& value)
 {
-       s << "VkSubpassDependency2 = {\n";
+       s << "VkPhysicalDeviceExternalBufferInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrcSubpass = " << value.srcSubpass << '\n';
-       s << "\tdstSubpass = " << value.dstSubpass << '\n';
-       s << "\tsrcStageMask = " << getPipelineStageFlagsStr(value.srcStageMask) << '\n';
-       s << "\tdstStageMask = " << getPipelineStageFlagsStr(value.dstStageMask) << '\n';
-       s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
-       s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
-       s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
-       s << "\tviewOffset = " << value.viewOffset << '\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 VkRenderPassCreateInfo2& value)
+std::ostream& operator<< (std::ostream& s, const VkExternalBufferProperties& value)
 {
-       s << "VkRenderPassCreateInfo2 = {\n";
+       s << "VkExternalBufferProperties = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getRenderPassCreateFlagsStr(value.flags) << '\n';
-       s << "\tattachmentCount = " << value.attachmentCount << '\n';
-       s << "\tpAttachments = " << value.pAttachments << '\n';
-       s << "\tsubpassCount = " << value.subpassCount << '\n';
-       s << "\tpSubpasses = " << value.pSubpasses << '\n';
-       s << "\tdependencyCount = " << value.dependencyCount << '\n';
-       s << "\tpDependencies = " << value.pDependencies << '\n';
-       s << "\tcorrelatedViewMaskCount = " << value.correlatedViewMaskCount << '\n';
-       s << "\tpCorrelatedViewMasks = " << value.pCorrelatedViewMasks << '\n';
+       s << "\texternalMemoryProperties = " << value.externalMemoryProperties << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSubpassBeginInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIDProperties& value)
 {
-       s << "VkSubpassBeginInfo = {\n";
+       s << "VkPhysicalDeviceIDProperties = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcontents = " << value.contents << '\n';
+       s << "\tdeviceUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.deviceUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.deviceUUID))) << '\n';
+       s << "\tdriverUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.driverUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.driverUUID))) << '\n';
+       s << "\tdeviceLUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.deviceLUID)), tcu::Format::HexIterator<uint8_t>(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 VkSubpassEndInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfo& value)
 {
-       s << "VkSubpassEndInfo = {\n";
+       s << "VkExternalMemoryImageCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
+       s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice8BitStorageFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkExternalMemoryBufferCreateInfo& value)
 {
-       s << "VkPhysicalDevice8BitStorageFeatures = {\n";
+       s << "VkExternalMemoryBufferCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
-       s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
-       s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
+       s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDriverProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfo& value)
 {
-       s << "VkPhysicalDeviceDriverProperties = {\n";
+       s << "VkExportMemoryAllocateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdriverID = " << value.driverID << '\n';
-       s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
-       s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
-       s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
+       s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsStr(value.handleTypes) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicInt64Features& value)
+std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoKHR& value)
 {
-       s << "VkPhysicalDeviceShaderAtomicInt64Features = {\n";
+       s << "VkImportMemoryWin32HandleInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
-       s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << "\thandle = " << value.handle << '\n';
+       s << "\tname = " << getWStr(value.name) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderFloat16Int8Features& value)
+std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoKHR& value)
 {
-       s << "VkPhysicalDeviceShaderFloat16Int8Features = {\n";
+       s << "VkExportMemoryWin32HandleInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
-       s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
+       s << "\tpAttributes = " << value.pAttributes << '\n';
+       s << "\tdwAccess = " << value.dwAccess << '\n';
+       s << "\tname = " << getWStr(value.name) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFloatControlsProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkImportMemoryZirconHandleInfoFUCHSIA& value)
 {
-       s << "VkPhysicalDeviceFloatControlsProperties = {\n";
+       s << "VkImportMemoryZirconHandleInfoFUCHSIA = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
-       s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
-       s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
-       s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
-       s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
-       s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
-       s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
-       s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
-       s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
-       s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
-       s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
-       s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
-       s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
-       s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
-       s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
-       s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
-       s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << "\thandle = " << value.handle << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBindingFlagsCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryZirconHandlePropertiesFUCHSIA& value)
 {
-       s << "VkDescriptorSetLayoutBindingFlagsCreateInfo = {\n";
+       s << "VkMemoryZirconHandlePropertiesFUCHSIA = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tbindingCount = " << value.bindingCount << '\n';
-       s << "\tpBindingFlags = " << value.pBindingFlags << '\n';
+       s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryGetZirconHandleInfoFUCHSIA& value)
 {
-       s << "VkPhysicalDeviceDescriptorIndexingFeatures = {\n";
+       s << "VkMemoryGetZirconHandleInfoFUCHSIA = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
-       s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
-       s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
-       s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
-       s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
-       s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
-       s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
-       s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
-       s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
-       s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
-       s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
-       s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
-       s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
-       s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
-       s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
-       s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
-       s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
-       s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
-       s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
-       s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
+       s << "\tmemory = " << value.memory << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryWin32HandlePropertiesKHR& value)
 {
-       s << "VkPhysicalDeviceDescriptorIndexingProperties = {\n";
+       s << "VkMemoryWin32HandlePropertiesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
-       s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
-       s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
-       s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
-       s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
-       s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
-       s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
-       s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
-       s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
-       s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
-       s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
-       s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
-       s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
-       s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
-       s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
-       s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
-       s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
-       s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
-       s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
-       s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
-       s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
-       s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
-       s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
+       s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountAllocateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryGetWin32HandleInfoKHR& value)
 {
-       s << "VkDescriptorSetVariableDescriptorCountAllocateInfo = {\n";
+       s << "VkMemoryGetWin32HandleInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
-       s << "\tpDescriptorCounts = " << value.pDescriptorCounts << '\n';
+       s << "\tmemory = " << value.memory << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountLayoutSupport& value)
+std::ostream& operator<< (std::ostream& s, const VkImportMemoryFdInfoKHR& value)
 {
-       s << "VkDescriptorSetVariableDescriptorCountLayoutSupport = {\n";
+       s << "VkImportMemoryFdInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxVariableDescriptorCount = " << value.maxVariableDescriptorCount << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << "\tfd = " << value.fd << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSubpassDescriptionDepthStencilResolve& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryFdPropertiesKHR& value)
 {
-       s << "VkSubpassDescriptionDepthStencilResolve = {\n";
+       s << "VkMemoryFdPropertiesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdepthResolveMode = " << value.depthResolveMode << '\n';
-       s << "\tstencilResolveMode = " << value.stencilResolveMode << '\n';
-       s << "\tpDepthStencilResolveAttachment = " << value.pDepthStencilResolveAttachment << '\n';
+       s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthStencilResolveProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryGetFdInfoKHR& value)
 {
-       s << "VkPhysicalDeviceDepthStencilResolveProperties = {\n";
+       s << "VkMemoryGetFdInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
-       s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
-       s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
-       s << "\tindependentResolve = " << value.independentResolve << '\n';
+       s << "\tmemory = " << value.memory << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceScalarBlockLayoutFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoKHR& value)
 {
-       s << "VkPhysicalDeviceScalarBlockLayoutFeatures = {\n";
+       s << "VkWin32KeyedMutexAcquireReleaseInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\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 VkImageStencilUsageCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalSemaphoreInfo& value)
 {
-       s << "VkImageStencilUsageCreateInfo = {\n";
+       s << "VkPhysicalDeviceExternalSemaphoreInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tstencilUsage = " << getImageUsageFlagsStr(value.stencilUsage) << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSamplerReductionModeCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkExternalSemaphoreProperties& value)
 {
-       s << "VkSamplerReductionModeCreateInfo = {\n";
+       s << "VkExternalSemaphoreProperties = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\treductionMode = " << value.reductionMode << '\n';
+       s << "\texportFromImportedHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
+       s << "\tcompatibleHandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
+       s << "\texternalSemaphoreFeatures = " << getExternalSemaphoreFeatureFlagsStr(value.externalSemaphoreFeatures) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerFilterMinmaxProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreCreateInfo& value)
 {
-       s << "VkPhysicalDeviceSamplerFilterMinmaxProperties = {\n";
+       s << "VkExportSemaphoreCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
-       s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
+       s << "\thandleTypes = " << getExternalSemaphoreHandleTypeFlagsStr(value.handleTypes) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkanMemoryModelFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreWin32HandleInfoKHR& value)
 {
-       s << "VkPhysicalDeviceVulkanMemoryModelFeatures = {\n";
+       s << "VkImportSemaphoreWin32HandleInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
-       s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
-       s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
+       s << "\tsemaphore = " << value.semaphore << '\n';
+       s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << "\thandle = " << value.handle << '\n';
+       s << "\tname = " << getWStr(value.name) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImagelessFramebufferFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreWin32HandleInfoKHR& value)
 {
-       s << "VkPhysicalDeviceImagelessFramebufferFeatures = {\n";
+       s << "VkExportSemaphoreWin32HandleInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
+       s << "\tpAttributes = " << value.pAttributes << '\n';
+       s << "\tdwAccess = " << value.dwAccess << '\n';
+       s << "\tname = " << getWStr(value.name) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkFramebufferAttachmentImageInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkD3D12FenceSubmitInfoKHR& value)
 {
-       s << "VkFramebufferAttachmentImageInfo = {\n";
+       s << "VkD3D12FenceSubmitInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
-       s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
-       s << "\twidth = " << value.width << '\n';
-       s << "\theight = " << value.height << '\n';
-       s << "\tlayerCount = " << value.layerCount << '\n';
-       s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
-       s << "\tpViewFormats = " << value.pViewFormats << '\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 VkFramebufferAttachmentsCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetWin32HandleInfoKHR& value)
 {
-       s << "VkFramebufferAttachmentsCreateInfo = {\n";
+       s << "VkSemaphoreGetWin32HandleInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tattachmentImageInfoCount = " << value.attachmentImageInfoCount << '\n';
-       s << "\tpAttachmentImageInfos = " << value.pAttachmentImageInfos << '\n';
+       s << "\tsemaphore = " << value.semaphore << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkRenderPassAttachmentBeginInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreFdInfoKHR& value)
 {
-       s << "VkRenderPassAttachmentBeginInfo = {\n";
+       s << "VkImportSemaphoreFdInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tattachmentCount = " << value.attachmentCount << '\n';
-       s << "\tpAttachments = " << value.pAttachments << '\n';
+       s << "\tsemaphore = " << value.semaphore << '\n';
+       s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << "\tfd = " << value.fd << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceUniformBufferStandardLayoutFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetFdInfoKHR& value)
 {
-       s << "VkPhysicalDeviceUniformBufferStandardLayoutFeatures = {\n";
+       s << "VkSemaphoreGetFdInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
+       s << "\tsemaphore = " << value.semaphore << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreZirconHandleInfoFUCHSIA& value)
 {
-       s << "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures = {\n";
+       s << "VkImportSemaphoreZirconHandleInfoFUCHSIA = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
+       s << "\tsemaphore = " << value.semaphore << '\n';
+       s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << "\tzirconHandle = " << value.zirconHandle << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetZirconHandleInfoFUCHSIA& value)
 {
-       s << "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures = {\n";
+       s << "VkSemaphoreGetZirconHandleInfoFUCHSIA = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
+       s << "\tsemaphore = " << value.semaphore << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAttachmentReferenceStencilLayout& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalFenceInfo& value)
 {
-       s << "VkAttachmentReferenceStencilLayout = {\n";
+       s << "VkPhysicalDeviceExternalFenceInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tstencilLayout = " << value.stencilLayout << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAttachmentDescriptionStencilLayout& value)
+std::ostream& operator<< (std::ostream& s, const VkExternalFenceProperties& value)
 {
-       s << "VkAttachmentDescriptionStencilLayout = {\n";
+       s << "VkExternalFenceProperties = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tstencilInitialLayout = " << value.stencilInitialLayout << '\n';
-       s << "\tstencilFinalLayout = " << value.stencilFinalLayout << '\n';
+       s << "\texportFromImportedHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.exportFromImportedHandleTypes) << '\n';
+       s << "\tcompatibleHandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.compatibleHandleTypes) << '\n';
+       s << "\texternalFenceFeatures = " << getExternalFenceFeatureFlagsStr(value.externalFenceFeatures) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceHostQueryResetFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkExportFenceCreateInfo& value)
 {
-       s << "VkPhysicalDeviceHostQueryResetFeatures = {\n";
+       s << "VkExportFenceCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thostQueryReset = " << value.hostQueryReset << '\n';
+       s << "\thandleTypes = " << getExternalFenceHandleTypeFlagsStr(value.handleTypes) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkImportFenceWin32HandleInfoKHR& value)
 {
-       s << "VkPhysicalDeviceTimelineSemaphoreFeatures = {\n";
+       s << "VkImportFenceWin32HandleInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
+       s << "\tfence = " << value.fence << '\n';
+       s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << "\thandle = " << value.handle << '\n';
+       s << "\tname = " << getWStr(value.name) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkExportFenceWin32HandleInfoKHR& value)
 {
-       s << "VkPhysicalDeviceTimelineSemaphoreProperties = {\n";
+       s << "VkExportFenceWin32HandleInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
+       s << "\tpAttributes = " << value.pAttributes << '\n';
+       s << "\tdwAccess = " << value.dwAccess << '\n';
+       s << "\tname = " << getWStr(value.name) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSemaphoreTypeCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkFenceGetWin32HandleInfoKHR& value)
 {
-       s << "VkSemaphoreTypeCreateInfo = {\n";
+       s << "VkFenceGetWin32HandleInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsemaphoreType = " << value.semaphoreType << '\n';
-       s << "\tinitialValue = " << value.initialValue << '\n';
+       s << "\tfence = " << value.fence << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkTimelineSemaphoreSubmitInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkImportFenceFdInfoKHR& value)
 {
-       s << "VkTimelineSemaphoreSubmitInfo = {\n";
+       s << "VkImportFenceFdInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\twaitSemaphoreValueCount = " << value.waitSemaphoreValueCount << '\n';
-       s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
-       s << "\tsignalSemaphoreValueCount = " << value.signalSemaphoreValueCount << '\n';
-       s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
+       s << "\tfence = " << value.fence << '\n';
+       s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << "\tfd = " << value.fd << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSemaphoreWaitInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkFenceGetFdInfoKHR& value)
 {
-       s << "VkSemaphoreWaitInfo = {\n";
+       s << "VkFenceGetFdInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getSemaphoreWaitFlagsStr(value.flags) << '\n';
-       s << "\tsemaphoreCount = " << value.semaphoreCount << '\n';
-       s << "\tpSemaphores = " << value.pSemaphores << '\n';
-       s << "\tpValues = " << value.pValues << '\n';
+       s << "\tfence = " << value.fence << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSemaphoreSignalInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewFeatures& value)
 {
-       s << "VkSemaphoreSignalInfo = {\n";
+       s << "VkPhysicalDeviceMultiviewFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsemaphore = " << value.semaphore << '\n';
-       s << "\tvalue = " << value.value << '\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 VkPhysicalDeviceBufferDeviceAddressFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewProperties& value)
 {
-       s << "VkPhysicalDeviceBufferDeviceAddressFeatures = {\n";
+       s << "VkPhysicalDeviceMultiviewProperties = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
-       s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
-       s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
+       s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
+       s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkRenderPassMultiviewCreateInfo& value)
 {
-       s << "VkBufferDeviceAddressInfo = {\n";
+       s << "VkRenderPassMultiviewCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tbuffer = " << value.buffer << '\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 VkBufferOpaqueCaptureAddressCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2EXT& value)
 {
-       s << "VkBufferOpaqueCaptureAddressCreateInfo = {\n";
+       s << "VkSurfaceCapabilities2EXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\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 VkMemoryOpaqueCaptureAddressAllocateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayPowerInfoEXT& value)
 {
-       s << "VkMemoryOpaqueCaptureAddressAllocateInfo = {\n";
+       s << "VkDisplayPowerInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\n';
+       s << "\tpowerState = " << value.powerState << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOpaqueCaptureAddressInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceEventInfoEXT& value)
 {
-       s << "VkDeviceMemoryOpaqueCaptureAddressInfo = {\n";
+       s << "VkDeviceEventInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemory = " << value.memory << '\n';
+       s << "\tdeviceEvent = " << value.deviceEvent << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan13Features& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayEventInfoEXT& value)
 {
-       s << "VkPhysicalDeviceVulkan13Features = {\n";
+       s << "VkDisplayEventInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\trobustImageAccess = " << value.robustImageAccess << '\n';
-       s << "\tinlineUniformBlock = " << value.inlineUniformBlock << '\n';
-       s << "\tdescriptorBindingInlineUniformBlockUpdateAfterBind = " << value.descriptorBindingInlineUniformBlockUpdateAfterBind << '\n';
-       s << "\tpipelineCreationCacheControl = " << value.pipelineCreationCacheControl << '\n';
-       s << "\tprivateData = " << value.privateData << '\n';
-       s << "\tshaderDemoteToHelperInvocation = " << value.shaderDemoteToHelperInvocation << '\n';
-       s << "\tshaderTerminateInvocation = " << value.shaderTerminateInvocation << '\n';
-       s << "\tsubgroupSizeControl = " << value.subgroupSizeControl << '\n';
-       s << "\tcomputeFullSubgroups = " << value.computeFullSubgroups << '\n';
-       s << "\tsynchronization2 = " << value.synchronization2 << '\n';
-       s << "\ttextureCompressionASTC_HDR = " << value.textureCompressionASTC_HDR << '\n';
-       s << "\tshaderZeroInitializeWorkgroupMemory = " << value.shaderZeroInitializeWorkgroupMemory << '\n';
-       s << "\tdynamicRendering = " << value.dynamicRendering << '\n';
-       s << "\tshaderIntegerDotProduct = " << value.shaderIntegerDotProduct << '\n';
-       s << "\tmaintenance4 = " << value.maintenance4 << '\n';
+       s << "\tdisplayEvent = " << value.displayEvent << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan13Properties& value)
+std::ostream& operator<< (std::ostream& s, const VkSwapchainCounterCreateInfoEXT& value)
 {
-       s << "VkPhysicalDeviceVulkan13Properties = {\n";
+       s << "VkSwapchainCounterCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tminSubgroupSize = " << value.minSubgroupSize << '\n';
-       s << "\tmaxSubgroupSize = " << value.maxSubgroupSize << '\n';
-       s << "\tmaxComputeWorkgroupSubgroups = " << value.maxComputeWorkgroupSubgroups << '\n';
-       s << "\trequiredSubgroupSizeStages = " << getShaderStageFlagsStr(value.requiredSubgroupSizeStages) << '\n';
-       s << "\tmaxInlineUniformBlockSize = " << value.maxInlineUniformBlockSize << '\n';
-       s << "\tmaxPerStageDescriptorInlineUniformBlocks = " << value.maxPerStageDescriptorInlineUniformBlocks << '\n';
-       s << "\tmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = " << value.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks << '\n';
-       s << "\tmaxDescriptorSetInlineUniformBlocks = " << value.maxDescriptorSetInlineUniformBlocks << '\n';
-       s << "\tmaxDescriptorSetUpdateAfterBindInlineUniformBlocks = " << value.maxDescriptorSetUpdateAfterBindInlineUniformBlocks << '\n';
-       s << "\tmaxInlineUniformTotalSize = " << value.maxInlineUniformTotalSize << '\n';
-       s << "\tintegerDotProduct8BitUnsignedAccelerated = " << value.integerDotProduct8BitUnsignedAccelerated << '\n';
-       s << "\tintegerDotProduct8BitSignedAccelerated = " << value.integerDotProduct8BitSignedAccelerated << '\n';
-       s << "\tintegerDotProduct8BitMixedSignednessAccelerated = " << value.integerDotProduct8BitMixedSignednessAccelerated << '\n';
-       s << "\tintegerDotProduct4x8BitPackedUnsignedAccelerated = " << value.integerDotProduct4x8BitPackedUnsignedAccelerated << '\n';
-       s << "\tintegerDotProduct4x8BitPackedSignedAccelerated = " << value.integerDotProduct4x8BitPackedSignedAccelerated << '\n';
-       s << "\tintegerDotProduct4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProduct4x8BitPackedMixedSignednessAccelerated << '\n';
-       s << "\tintegerDotProduct16BitUnsignedAccelerated = " << value.integerDotProduct16BitUnsignedAccelerated << '\n';
-       s << "\tintegerDotProduct16BitSignedAccelerated = " << value.integerDotProduct16BitSignedAccelerated << '\n';
-       s << "\tintegerDotProduct16BitMixedSignednessAccelerated = " << value.integerDotProduct16BitMixedSignednessAccelerated << '\n';
-       s << "\tintegerDotProduct32BitUnsignedAccelerated = " << value.integerDotProduct32BitUnsignedAccelerated << '\n';
-       s << "\tintegerDotProduct32BitSignedAccelerated = " << value.integerDotProduct32BitSignedAccelerated << '\n';
-       s << "\tintegerDotProduct32BitMixedSignednessAccelerated = " << value.integerDotProduct32BitMixedSignednessAccelerated << '\n';
-       s << "\tintegerDotProduct64BitUnsignedAccelerated = " << value.integerDotProduct64BitUnsignedAccelerated << '\n';
-       s << "\tintegerDotProduct64BitSignedAccelerated = " << value.integerDotProduct64BitSignedAccelerated << '\n';
-       s << "\tintegerDotProduct64BitMixedSignednessAccelerated = " << value.integerDotProduct64BitMixedSignednessAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating8BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitSignedAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating16BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitSignedAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating32BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitSignedAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating64BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitSignedAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated << '\n';
-       s << "\tstorageTexelBufferOffsetAlignmentBytes = " << value.storageTexelBufferOffsetAlignmentBytes << '\n';
-       s << "\tstorageTexelBufferOffsetSingleTexelAlignment = " << value.storageTexelBufferOffsetSingleTexelAlignment << '\n';
-       s << "\tuniformTexelBufferOffsetAlignmentBytes = " << value.uniformTexelBufferOffsetAlignmentBytes << '\n';
-       s << "\tuniformTexelBufferOffsetSingleTexelAlignment = " << value.uniformTexelBufferOffsetSingleTexelAlignment << '\n';
-       s << "\tmaxBufferSize = " << value.maxBufferSize << '\n';
+       s << "\tsurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.surfaceCounters) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineCreationFeedback& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGroupProperties& value)
 {
-       s << "VkPipelineCreationFeedback = {\n";
-       s << "\tflags = " << getPipelineCreationFeedbackFlagsStr(value.flags) << '\n';
-       s << "\tduration = " << value.duration << '\n';
+       s << "VkPhysicalDeviceGroupProperties = {\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 VkPipelineCreationFeedbackCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateFlagsInfo& value)
 {
-       s << "VkPipelineCreationFeedbackCreateInfo = {\n";
+       s << "VkMemoryAllocateFlagsInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpPipelineCreationFeedback = " << value.pPipelineCreationFeedback << '\n';
-       s << "\tpipelineStageCreationFeedbackCount = " << value.pipelineStageCreationFeedbackCount << '\n';
-       s << "\tpPipelineStageCreationFeedbacks = " << value.pPipelineStageCreationFeedbacks << '\n';
+       s << "\tflags = " << getMemoryAllocateFlagsStr(value.flags) << '\n';
+       s << "\tdeviceMask = " << value.deviceMask << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderTerminateInvocationFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryInfo& value)
 {
-       s << "VkPhysicalDeviceShaderTerminateInvocationFeatures = {\n";
+       s << "VkBindBufferMemoryInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderTerminateInvocation = " << value.shaderTerminateInvocation << '\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 VkPhysicalDeviceToolProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkBindBufferMemoryDeviceGroupInfo& value)
 {
-       s << "VkPhysicalDeviceToolProperties = {\n";
+       s << "VkBindBufferMemoryDeviceGroupInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
-       s << "\tversion = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.version)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.version))) << '\n';
-       s << "\tpurposes = " << getToolPurposeFlagsStr(value.purposes) << '\n';
-       s << "\tdescription = " << (const char*)value.description << '\n';
-       s << "\tlayer = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.layer)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.layer))) << '\n';
+       s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
+       s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryInfo& value)
 {
-       s << "VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures = {\n";
+       s << "VkBindImageMemoryInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderDemoteToHelperInvocation = " << value.shaderDemoteToHelperInvocation << '\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 VkPhysicalDevicePrivateDataFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkBindImageMemoryDeviceGroupInfo& value)
 {
-       s << "VkPhysicalDevicePrivateDataFeatures = {\n";
+       s << "VkBindImageMemoryDeviceGroupInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tprivateData = " << value.privateData << '\n';
+       s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
+       s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
+       s << "\tsplitInstanceBindRegionCount = " << value.splitInstanceBindRegionCount << '\n';
+       s << "\tpSplitInstanceBindRegions = " << value.pSplitInstanceBindRegions << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDevicePrivateDataCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceGroupRenderPassBeginInfo& value)
 {
-       s << "VkDevicePrivateDataCreateInfo = {\n";
+       s << "VkDeviceGroupRenderPassBeginInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tprivateDataSlotRequestCount = " << value.privateDataSlotRequestCount << '\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 VkPrivateDataSlotCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceGroupCommandBufferBeginInfo& value)
 {
-       s << "VkPrivateDataSlotCreateInfo = {\n";
+       s << "VkDeviceGroupCommandBufferBeginInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getPrivateDataSlotCreateFlagsStr(value.flags) << '\n';
+       s << "\tdeviceMask = " << value.deviceMask << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineCreationCacheControlFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSubmitInfo& value)
 {
-       s << "VkPhysicalDevicePipelineCreationCacheControlFeatures = {\n";
+       s << "VkDeviceGroupSubmitInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpipelineCreationCacheControl = " << value.pipelineCreationCacheControl << '\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 VkMemoryBarrier2& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceGroupBindSparseInfo& value)
 {
-       s << "VkMemoryBarrier2 = {\n";
+       s << "VkDeviceGroupBindSparseInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrcStageMask = " << value.srcStageMask << '\n';
-       s << "\tsrcAccessMask = " << value.srcAccessMask << '\n';
-       s << "\tdstStageMask = " << value.dstStageMask << '\n';
-       s << "\tdstAccessMask = " << value.dstAccessMask << '\n';
+       s << "\tresourceDeviceIndex = " << value.resourceDeviceIndex << '\n';
+       s << "\tmemoryDeviceIndex = " << value.memoryDeviceIndex << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier2& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentCapabilitiesKHR& value)
 {
-       s << "VkBufferMemoryBarrier2 = {\n";
+       s << "VkDeviceGroupPresentCapabilitiesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrcStageMask = " << value.srcStageMask << '\n';
-       s << "\tsrcAccessMask = " << value.srcAccessMask << '\n';
-       s << "\tdstStageMask = " << value.dstStageMask << '\n';
-       s << "\tdstAccessMask = " << value.dstAccessMask << '\n';
-       s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
-       s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
-       s << "\tbuffer = " << value.buffer << '\n';
-       s << "\toffset = " << value.offset << '\n';
-       s << "\tsize = " << value.size << '\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 VkImageMemoryBarrier2& value)
+std::ostream& operator<< (std::ostream& s, const VkImageSwapchainCreateInfoKHR& value)
 {
-       s << "VkImageMemoryBarrier2 = {\n";
+       s << "VkImageSwapchainCreateInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrcStageMask = " << value.srcStageMask << '\n';
-       s << "\tsrcAccessMask = " << value.srcAccessMask << '\n';
-       s << "\tdstStageMask = " << value.dstStageMask << '\n';
-       s << "\tdstAccessMask = " << value.dstAccessMask << '\n';
-       s << "\toldLayout = " << value.oldLayout << '\n';
-       s << "\tnewLayout = " << value.newLayout << '\n';
-       s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
-       s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
-       s << "\timage = " << value.image << '\n';
-       s << "\tsubresourceRange = " << value.subresourceRange << '\n';
+       s << "\tswapchain = " << value.swapchain << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDependencyInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkBindImageMemorySwapchainInfoKHR& value)
 {
-       s << "VkDependencyInfo = {\n";
+       s << "VkBindImageMemorySwapchainInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
-       s << "\tmemoryBarrierCount = " << value.memoryBarrierCount << '\n';
-       s << "\tpMemoryBarriers = " << value.pMemoryBarriers << '\n';
-       s << "\tbufferMemoryBarrierCount = " << value.bufferMemoryBarrierCount << '\n';
-       s << "\tpBufferMemoryBarriers = " << value.pBufferMemoryBarriers << '\n';
-       s << "\timageMemoryBarrierCount = " << value.imageMemoryBarrierCount << '\n';
-       s << "\tpImageMemoryBarriers = " << value.pImageMemoryBarriers << '\n';
+       s << "\tswapchain = " << value.swapchain << '\n';
+       s << "\timageIndex = " << value.imageIndex << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSemaphoreSubmitInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkAcquireNextImageInfoKHR& value)
 {
-       s << "VkSemaphoreSubmitInfo = {\n";
+       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 << "\tvalue = " << value.value << '\n';
-       s << "\tstageMask = " << value.stageMask << '\n';
-       s << "\tdeviceIndex = " << value.deviceIndex << '\n';
+       s << "\tfence = " << value.fence << '\n';
+       s << "\tdeviceMask = " << value.deviceMask << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCommandBufferSubmitInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentInfoKHR& value)
 {
-       s << "VkCommandBufferSubmitInfo = {\n";
+       s << "VkDeviceGroupPresentInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcommandBuffer = " << value.commandBuffer << '\n';
-       s << "\tdeviceMask = " << value.deviceMask << '\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 VkSubmitInfo2& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceGroupDeviceCreateInfo& value)
 {
-       s << "VkSubmitInfo2 = {\n";
+       s << "VkDeviceGroupDeviceCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getSubmitFlagsStr(value.flags) << '\n';
-       s << "\twaitSemaphoreInfoCount = " << value.waitSemaphoreInfoCount << '\n';
-       s << "\tpWaitSemaphoreInfos = " << value.pWaitSemaphoreInfos << '\n';
-       s << "\tcommandBufferInfoCount = " << value.commandBufferInfoCount << '\n';
-       s << "\tpCommandBufferInfos = " << value.pCommandBufferInfos << '\n';
-       s << "\tsignalSemaphoreInfoCount = " << value.signalSemaphoreInfoCount << '\n';
-       s << "\tpSignalSemaphoreInfos = " << value.pSignalSemaphoreInfos << '\n';
+       s << "\tphysicalDeviceCount = " << value.physicalDeviceCount << '\n';
+       s << "\tpPhysicalDevices = " << value.pPhysicalDevices << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSynchronization2Features& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSwapchainCreateInfoKHR& value)
 {
-       s << "VkPhysicalDeviceSynchronization2Features = {\n";
+       s << "VkDeviceGroupSwapchainCreateInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsynchronization2 = " << value.synchronization2 << '\n';
+       s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateEntry& value)
 {
-       s << "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderZeroInitializeWorkgroupMemory = " << value.shaderZeroInitializeWorkgroupMemory << '\n';
+       s << "VkDescriptorUpdateTemplateEntry = {\n";
+       s << "\tdstBinding = " << value.dstBinding << '\n';
+       s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
+       s << "\tdescriptorCount = " << value.descriptorCount << '\n';
+       s << "\tdescriptorType = " << value.descriptorType << '\n';
+       s << "\toffset = " << value.offset << '\n';
+       s << "\tstride = " << value.stride << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageRobustnessFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkDescriptorUpdateTemplateCreateInfo& value)
 {
-       s << "VkPhysicalDeviceImageRobustnessFeatures = {\n";
+       s << "VkDescriptorUpdateTemplateCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\trobustImageAccess = " << value.robustImageAccess << '\n';
+       s << "\tflags = " << getDescriptorUpdateTemplateCreateFlagsStr(value.flags) << '\n';
+       s << "\tdescriptorUpdateEntryCount = " << value.descriptorUpdateEntryCount << '\n';
+       s << "\tpDescriptorUpdateEntries = " << value.pDescriptorUpdateEntries << '\n';
+       s << "\ttemplateType = " << value.templateType << '\n';
+       s << "\tdescriptorSetLayout = " << value.descriptorSetLayout << '\n';
+       s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
+       s << "\tpipelineLayout = " << value.pipelineLayout << '\n';
+       s << "\tset = " << value.set << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBufferCopy2& value)
+std::ostream& operator<< (std::ostream& s, const VkXYColorEXT& value)
 {
-       s << "VkBufferCopy2 = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrcOffset = " << value.srcOffset << '\n';
-       s << "\tdstOffset = " << value.dstOffset << '\n';
-       s << "\tsize = " << value.size << '\n';
+       s << "VkXYColorEXT = {\n";
+       s << "\tx = " << value.x << '\n';
+       s << "\ty = " << value.y << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCopyBufferInfo2& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentIdFeaturesKHR& value)
 {
-       s << "VkCopyBufferInfo2 = {\n";
+       s << "VkPhysicalDevicePresentIdFeaturesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrcBuffer = " << value.srcBuffer << '\n';
-       s << "\tdstBuffer = " << value.dstBuffer << '\n';
-       s << "\tregionCount = " << value.regionCount << '\n';
-       s << "\tpRegions = " << value.pRegions << '\n';
+       s << "\tpresentId = " << value.presentId << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageCopy2& value)
+std::ostream& operator<< (std::ostream& s, const VkPresentIdKHR& value)
 {
-       s << "VkImageCopy2 = {\n";
+       s << "VkPresentIdKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrcSubresource = " << value.srcSubresource << '\n';
-       s << "\tsrcOffset = " << value.srcOffset << '\n';
-       s << "\tdstSubresource = " << value.dstSubresource << '\n';
-       s << "\tdstOffset = " << value.dstOffset << '\n';
-       s << "\textent = " << value.extent << '\n';
+       s << "\tswapchainCount = " << value.swapchainCount << '\n';
+       s << "\tpPresentIds = " << value.pPresentIds << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCopyImageInfo2& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentWaitFeaturesKHR& value)
 {
-       s << "VkCopyImageInfo2 = {\n";
+       s << "VkPhysicalDevicePresentWaitFeaturesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrcImage = " << value.srcImage << '\n';
-       s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
-       s << "\tdstImage = " << value.dstImage << '\n';
-       s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
-       s << "\tregionCount = " << value.regionCount << '\n';
-       s << "\tpRegions = " << value.pRegions << '\n';
+       s << "\tpresentWait = " << value.presentWait << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy2& value)
+std::ostream& operator<< (std::ostream& s, const VkHdrMetadataEXT& value)
 {
-       s << "VkBufferImageCopy2 = {\n";
+       s << "VkHdrMetadataEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tbufferOffset = " << value.bufferOffset << '\n';
-       s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
-       s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
-       s << "\timageSubresource = " << value.imageSubresource << '\n';
-       s << "\timageOffset = " << value.imageOffset << '\n';
-       s << "\timageExtent = " << value.imageExtent << '\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 VkCopyBufferToImageInfo2& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayNativeHdrSurfaceCapabilitiesAMD& value)
 {
-       s << "VkCopyBufferToImageInfo2 = {\n";
+       s << "VkDisplayNativeHdrSurfaceCapabilitiesAMD = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrcBuffer = " << value.srcBuffer << '\n';
-       s << "\tdstImage = " << value.dstImage << '\n';
-       s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
-       s << "\tregionCount = " << value.regionCount << '\n';
-       s << "\tpRegions = " << value.pRegions << '\n';
+       s << "\tlocalDimmingSupport = " << value.localDimmingSupport << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCopyImageToBufferInfo2& value)
+std::ostream& operator<< (std::ostream& s, const VkSwapchainDisplayNativeHdrCreateInfoAMD& value)
 {
-       s << "VkCopyImageToBufferInfo2 = {\n";
+       s << "VkSwapchainDisplayNativeHdrCreateInfoAMD = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrcImage = " << value.srcImage << '\n';
-       s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
-       s << "\tdstBuffer = " << value.dstBuffer << '\n';
-       s << "\tregionCount = " << value.regionCount << '\n';
-       s << "\tpRegions = " << value.pRegions << '\n';
+       s << "\tlocalDimmingEnable = " << value.localDimmingEnable << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageBlit2& value)
+std::ostream& operator<< (std::ostream& s, const VkRefreshCycleDurationGOOGLE& value)
 {
-       s << "VkImageBlit2 = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrcSubresource = " << value.srcSubresource << '\n';
-       s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
-       s << "\tdstSubresource = " << value.dstSubresource << '\n';
-       s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
+       s << "VkRefreshCycleDurationGOOGLE = {\n";
+       s << "\trefreshDuration = " << value.refreshDuration << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBlitImageInfo2& value)
+std::ostream& operator<< (std::ostream& s, const VkPastPresentationTimingGOOGLE& value)
 {
-       s << "VkBlitImageInfo2 = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrcImage = " << value.srcImage << '\n';
-       s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
-       s << "\tdstImage = " << value.dstImage << '\n';
-       s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
-       s << "\tregionCount = " << value.regionCount << '\n';
-       s << "\tpRegions = " << value.pRegions << '\n';
-       s << "\tfilter = " << value.filter << '\n';
+       s << "VkPastPresentationTimingGOOGLE = {\n";
+       s << "\tpresentID = " << value.presentID << '\n';
+       s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
+       s << "\tactualPresentTime = " << value.actualPresentTime << '\n';
+       s << "\tearliestPresentTime = " << value.earliestPresentTime << '\n';
+       s << "\tpresentMargin = " << value.presentMargin << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageResolve2& value)
+std::ostream& operator<< (std::ostream& s, const VkPresentTimesInfoGOOGLE& value)
 {
-       s << "VkImageResolve2 = {\n";
+       s << "VkPresentTimesInfoGOOGLE = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrcSubresource = " << value.srcSubresource << '\n';
-       s << "\tsrcOffset = " << value.srcOffset << '\n';
-       s << "\tdstSubresource = " << value.dstSubresource << '\n';
-       s << "\tdstOffset = " << value.dstOffset << '\n';
-       s << "\textent = " << value.extent << '\n';
+       s << "\tswapchainCount = " << value.swapchainCount << '\n';
+       s << "\tpTimes = " << value.pTimes << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkResolveImageInfo2& value)
+std::ostream& operator<< (std::ostream& s, const VkPresentTimeGOOGLE& value)
 {
-       s << "VkResolveImageInfo2 = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrcImage = " << value.srcImage << '\n';
-       s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
-       s << "\tdstImage = " << value.dstImage << '\n';
-       s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
-       s << "\tregionCount = " << value.regionCount << '\n';
-       s << "\tpRegions = " << value.pRegions << '\n';
+       s << "VkPresentTimeGOOGLE = {\n";
+       s << "\tpresentID = " << value.presentID << '\n';
+       s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkIOSSurfaceCreateInfoMVK& value)
 {
-       s << "VkPhysicalDeviceSubgroupSizeControlFeatures = {\n";
+       s << "VkIOSSurfaceCreateInfoMVK = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsubgroupSizeControl = " << value.subgroupSizeControl << '\n';
-       s << "\tcomputeFullSubgroups = " << value.computeFullSubgroups << '\n';
+       s << "\tflags = " << getIOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
+       s << "\tpView = " << value.pView << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkMacOSSurfaceCreateInfoMVK& value)
 {
-       s << "VkPhysicalDeviceSubgroupSizeControlProperties = {\n";
+       s << "VkMacOSSurfaceCreateInfoMVK = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tminSubgroupSize = " << value.minSubgroupSize << '\n';
-       s << "\tmaxSubgroupSize = " << value.maxSubgroupSize << '\n';
-       s << "\tmaxComputeWorkgroupSubgroups = " << value.maxComputeWorkgroupSubgroups << '\n';
-       s << "\trequiredSubgroupSizeStages = " << getShaderStageFlagsStr(value.requiredSubgroupSizeStages) << '\n';
+       s << "\tflags = " << getMacOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
+       s << "\tpView = " << value.pView << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkMetalSurfaceCreateInfoEXT& value)
 {
-       s << "VkPipelineShaderStageRequiredSubgroupSizeCreateInfo = {\n";
+       s << "VkMetalSurfaceCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\trequiredSubgroupSize = " << value.requiredSubgroupSize << '\n';
+       s << "\tflags = " << getMetalSurfaceCreateFlagsEXTStr(value.flags) << '\n';
+       s << "\tpLayer = " << value.pLayer << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkViewportWScalingNV& value)
 {
-       s << "VkPhysicalDeviceInlineUniformBlockFeatures = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tinlineUniformBlock = " << value.inlineUniformBlock << '\n';
-       s << "\tdescriptorBindingInlineUniformBlockUpdateAfterBind = " << value.descriptorBindingInlineUniformBlockUpdateAfterBind << '\n';
+       s << "VkViewportWScalingNV = {\n";
+       s << "\txcoeff = " << value.xcoeff << '\n';
+       s << "\tycoeff = " << value.ycoeff << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineViewportWScalingStateCreateInfoNV& value)
 {
-       s << "VkPhysicalDeviceInlineUniformBlockProperties = {\n";
+       s << "VkPipelineViewportWScalingStateCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxInlineUniformBlockSize = " << value.maxInlineUniformBlockSize << '\n';
-       s << "\tmaxPerStageDescriptorInlineUniformBlocks = " << value.maxPerStageDescriptorInlineUniformBlocks << '\n';
-       s << "\tmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = " << value.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks << '\n';
-       s << "\tmaxDescriptorSetInlineUniformBlocks = " << value.maxDescriptorSetInlineUniformBlocks << '\n';
-       s << "\tmaxDescriptorSetUpdateAfterBindInlineUniformBlocks = " << value.maxDescriptorSetUpdateAfterBindInlineUniformBlocks << '\n';
+       s << "\tviewportWScalingEnable = " << value.viewportWScalingEnable << '\n';
+       s << "\tviewportCount = " << value.viewportCount << '\n';
+       s << "\tpViewportWScalings = " << value.pViewportWScalings << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetInlineUniformBlock& value)
+std::ostream& operator<< (std::ostream& s, const VkViewportSwizzleNV& value)
 {
-       s << "VkWriteDescriptorSetInlineUniformBlock = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdataSize = " << value.dataSize << '\n';
-       s << "\tpData = " << value.pData << '\n';
+       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 VkDescriptorPoolInlineUniformBlockCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineViewportSwizzleStateCreateInfoNV& value)
 {
-       s << "VkDescriptorPoolInlineUniformBlockCreateInfo = {\n";
+       s << "VkPipelineViewportSwizzleStateCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxInlineUniformBlockBindings = " << value.maxInlineUniformBlockBindings << '\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 VkPhysicalDeviceTextureCompressionASTCHDRFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiscardRectanglePropertiesEXT& value)
 {
-       s << "VkPhysicalDeviceTextureCompressionASTCHDRFeatures = {\n";
+       s << "VkPhysicalDeviceDiscardRectanglePropertiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttextureCompressionASTC_HDR = " << value.textureCompressionASTC_HDR << '\n';
+       s << "\tmaxDiscardRectangles = " << value.maxDiscardRectangles << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkRenderingAttachmentInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineDiscardRectangleStateCreateInfoEXT& value)
 {
-       s << "VkRenderingAttachmentInfo = {\n";
+       s << "VkPipelineDiscardRectangleStateCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\timageView = " << value.imageView << '\n';
-       s << "\timageLayout = " << value.imageLayout << '\n';
-       s << "\tresolveMode = " << value.resolveMode << '\n';
-       s << "\tresolveImageView = " << value.resolveImageView << '\n';
-       s << "\tresolveImageLayout = " << value.resolveImageLayout << '\n';
-       s << "\tloadOp = " << value.loadOp << '\n';
-       s << "\tstoreOp = " << value.storeOp << '\n';
-       s << "\tclearValue = " << value.clearValue << '\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 VkRenderingInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& value)
 {
-       s << "VkRenderingInfo = {\n";
+       s << "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getRenderingFlagsStr(value.flags) << '\n';
-       s << "\trenderArea = " << value.renderArea << '\n';
-       s << "\tlayerCount = " << value.layerCount << '\n';
-       s << "\tviewMask = " << value.viewMask << '\n';
-       s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
-       s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
-       s << "\tpDepthAttachment = " << value.pDepthAttachment << '\n';
-       s << "\tpStencilAttachment = " << value.pStencilAttachment << '\n';
+       s << "\tperViewPositionAllComponents = " << value.perViewPositionAllComponents << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineRenderingCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkInputAttachmentAspectReference& value)
 {
-       s << "VkPipelineRenderingCreateInfo = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tviewMask = " << value.viewMask << '\n';
-       s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
-       s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
-       s << "\tdepthAttachmentFormat = " << value.depthAttachmentFormat << '\n';
-       s << "\tstencilAttachmentFormat = " << value.stencilAttachmentFormat << '\n';
+       s << "VkInputAttachmentAspectReference = {\n";
+       s << "\tsubpass = " << value.subpass << '\n';
+       s << "\tinputAttachmentIndex = " << value.inputAttachmentIndex << '\n';
+       s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDynamicRenderingFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkRenderPassInputAttachmentAspectCreateInfo& value)
 {
-       s << "VkPhysicalDeviceDynamicRenderingFeatures = {\n";
+       s << "VkRenderPassInputAttachmentAspectCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdynamicRendering = " << value.dynamicRendering << '\n';
+       s << "\taspectReferenceCount = " << value.aspectReferenceCount << '\n';
+       s << "\tpAspectReferences = " << value.pAspectReferences << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderingInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSurfaceInfo2KHR& value)
 {
-       s << "VkCommandBufferInheritanceRenderingInfo = {\n";
+       s << "VkPhysicalDeviceSurfaceInfo2KHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getRenderingFlagsStr(value.flags) << '\n';
-       s << "\tviewMask = " << value.viewMask << '\n';
-       s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
-       s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
-       s << "\tdepthAttachmentFormat = " << value.depthAttachmentFormat << '\n';
-       s << "\tstencilAttachmentFormat = " << value.stencilAttachmentFormat << '\n';
-       s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
+       s << "\tsurface = " << value.surface << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductFeatures& value)
+std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2KHR& value)
 {
-       s << "VkPhysicalDeviceShaderIntegerDotProductFeatures = {\n";
+       s << "VkSurfaceCapabilities2KHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderIntegerDotProduct = " << value.shaderIntegerDotProduct << '\n';
+       s << "\tsurfaceCapabilities = " << value.surfaceCapabilities << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkSurfaceFormat2KHR& value)
 {
-       s << "VkPhysicalDeviceShaderIntegerDotProductProperties = {\n";
+       s << "VkSurfaceFormat2KHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tintegerDotProduct8BitUnsignedAccelerated = " << value.integerDotProduct8BitUnsignedAccelerated << '\n';
-       s << "\tintegerDotProduct8BitSignedAccelerated = " << value.integerDotProduct8BitSignedAccelerated << '\n';
-       s << "\tintegerDotProduct8BitMixedSignednessAccelerated = " << value.integerDotProduct8BitMixedSignednessAccelerated << '\n';
-       s << "\tintegerDotProduct4x8BitPackedUnsignedAccelerated = " << value.integerDotProduct4x8BitPackedUnsignedAccelerated << '\n';
-       s << "\tintegerDotProduct4x8BitPackedSignedAccelerated = " << value.integerDotProduct4x8BitPackedSignedAccelerated << '\n';
-       s << "\tintegerDotProduct4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProduct4x8BitPackedMixedSignednessAccelerated << '\n';
-       s << "\tintegerDotProduct16BitUnsignedAccelerated = " << value.integerDotProduct16BitUnsignedAccelerated << '\n';
-       s << "\tintegerDotProduct16BitSignedAccelerated = " << value.integerDotProduct16BitSignedAccelerated << '\n';
-       s << "\tintegerDotProduct16BitMixedSignednessAccelerated = " << value.integerDotProduct16BitMixedSignednessAccelerated << '\n';
-       s << "\tintegerDotProduct32BitUnsignedAccelerated = " << value.integerDotProduct32BitUnsignedAccelerated << '\n';
-       s << "\tintegerDotProduct32BitSignedAccelerated = " << value.integerDotProduct32BitSignedAccelerated << '\n';
-       s << "\tintegerDotProduct32BitMixedSignednessAccelerated = " << value.integerDotProduct32BitMixedSignednessAccelerated << '\n';
-       s << "\tintegerDotProduct64BitUnsignedAccelerated = " << value.integerDotProduct64BitUnsignedAccelerated << '\n';
-       s << "\tintegerDotProduct64BitSignedAccelerated = " << value.integerDotProduct64BitSignedAccelerated << '\n';
-       s << "\tintegerDotProduct64BitMixedSignednessAccelerated = " << value.integerDotProduct64BitMixedSignednessAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating8BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitSignedAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating16BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitSignedAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating32BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitSignedAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating64BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitSignedAccelerated << '\n';
-       s << "\tintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated << '\n';
+       s << "\tsurfaceFormat = " << value.surfaceFormat << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentProperties& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayProperties2KHR& value)
 {
-       s << "VkPhysicalDeviceTexelBufferAlignmentProperties = {\n";
+       s << "VkDisplayProperties2KHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tstorageTexelBufferOffsetAlignmentBytes = " << value.storageTexelBufferOffsetAlignmentBytes << '\n';
-       s << "\tstorageTexelBufferOffsetSingleTexelAlignment = " << value.storageTexelBufferOffsetSingleTexelAlignment << '\n';
-       s << "\tuniformTexelBufferOffsetAlignmentBytes = " << value.uniformTexelBufferOffsetAlignmentBytes << '\n';
-       s << "\tuniformTexelBufferOffsetSingleTexelAlignment = " << value.uniformTexelBufferOffsetSingleTexelAlignment << '\n';
+       s << "\tdisplayProperties = " << value.displayProperties << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkFormatProperties3& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneProperties2KHR& value)
 {
-       s << "VkFormatProperties3 = {\n";
+       s << "VkDisplayPlaneProperties2KHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tlinearTilingFeatures = " << value.linearTilingFeatures << '\n';
-       s << "\toptimalTilingFeatures = " << value.optimalTilingFeatures << '\n';
-       s << "\tbufferFeatures = " << value.bufferFeatures << '\n';
+       s << "\tdisplayPlaneProperties = " << value.displayPlaneProperties << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance4Features& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayModeProperties2KHR& value)
 {
-       s << "VkPhysicalDeviceMaintenance4Features = {\n";
+       s << "VkDisplayModeProperties2KHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaintenance4 = " << value.maintenance4 << '\n';
+       s << "\tdisplayModeProperties = " << value.displayModeProperties << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance4Properties& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneInfo2KHR& value)
 {
-       s << "VkPhysicalDeviceMaintenance4Properties = {\n";
+       s << "VkDisplayPlaneInfo2KHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxBufferSize = " << value.maxBufferSize << '\n';
+       s << "\tmode = " << value.mode << '\n';
+       s << "\tplaneIndex = " << value.planeIndex << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceBufferMemoryRequirements& value)
+std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilities2KHR& value)
 {
-       s << "VkDeviceBufferMemoryRequirements = {\n";
+       s << "VkDisplayPlaneCapabilities2KHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpCreateInfo = " << value.pCreateInfo << '\n';
+       s << "\tcapabilities = " << value.capabilities << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceImageMemoryRequirements& value)
+std::ostream& operator<< (std::ostream& s, const VkSharedPresentSurfaceCapabilitiesKHR& value)
 {
-       s << "VkDeviceImageMemoryRequirements = {\n";
+       s << "VkSharedPresentSurfaceCapabilitiesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpCreateInfo = " << value.pCreateInfo << '\n';
-       s << "\tplaneAspect = " << value.planeAspect << '\n';
+       s << "\tsharedPresentSupportedUsageFlags = " << getImageUsageFlagsStr(value.sharedPresentSupportedUsageFlags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice16BitStorageFeatures& value)
 {
-       s << "VkSurfaceCapabilitiesKHR = {\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 << "VkPhysicalDevice16BitStorageFeatures = {\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 VkSurfaceFormatKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupProperties& value)
 {
-       s << "VkSurfaceFormatKHR = {\n";
-       s << "\tformat = " << value.format << '\n';
-       s << "\tcolorSpace = " << value.colorSpace << '\n';
+       s << "VkPhysicalDeviceSubgroupProperties = {\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 << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSwapchainCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures& value)
 {
-       s << "VkSwapchainCreateInfoKHR = {\n";
+       s << "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getSwapchainCreateFlagsKHRStr(value.flags) << '\n';
-       s << "\tsurface = " << value.surface << '\n';
-       s << "\tminImageCount = " << value.minImageCount << '\n';
-       s << "\timageFormat = " << value.imageFormat << '\n';
-       s << "\timageColorSpace = " << value.imageColorSpace << '\n';
-       s << "\timageExtent = " << value.imageExtent << '\n';
-       s << "\timageArrayLayers = " << value.imageArrayLayers << '\n';
-       s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
-       s << "\timageSharingMode = " << value.imageSharingMode << '\n';
-       s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
-       s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
-       s << "\tpreTransform = " << value.preTransform << '\n';
-       s << "\tcompositeAlpha = " << value.compositeAlpha << '\n';
-       s << "\tpresentMode = " << value.presentMode << '\n';
-       s << "\tclipped = " << value.clipped << '\n';
-       s << "\toldSwapchain = " << value.oldSwapchain << '\n';
+       s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPresentInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkBufferMemoryRequirementsInfo2& value)
 {
-       s << "VkPresentInfoKHR = {\n";
+       s << "VkBufferMemoryRequirementsInfo2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\twaitSemaphoreCount = " << value.waitSemaphoreCount << '\n';
-       s << "\tpWaitSemaphores = " << value.pWaitSemaphores << '\n';
-       s << "\tswapchainCount = " << value.swapchainCount << '\n';
-       s << "\tpSwapchains = " << value.pSwapchains << '\n';
-       s << "\tpImageIndices = " << value.pImageIndices << '\n';
-       s << "\tpResults = " << value.pResults << '\n';
+       s << "\tbuffer = " << value.buffer << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageSwapchainCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceBufferMemoryRequirements& value)
 {
-       s << "VkImageSwapchainCreateInfoKHR = {\n";
+       s << "VkDeviceBufferMemoryRequirements = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tswapchain = " << value.swapchain << '\n';
+       s << "\tpCreateInfo = " << value.pCreateInfo << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBindImageMemorySwapchainInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkImageMemoryRequirementsInfo2& value)
 {
-       s << "VkBindImageMemorySwapchainInfoKHR = {\n";
+       s << "VkImageMemoryRequirementsInfo2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tswapchain = " << value.swapchain << '\n';
-       s << "\timageIndex = " << value.imageIndex << '\n';
+       s << "\timage = " << value.image << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAcquireNextImageInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkImageSparseMemoryRequirementsInfo2& value)
 {
-       s << "VkAcquireNextImageInfoKHR = {\n";
+       s << "VkImageSparseMemoryRequirementsInfo2 = {\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 << "\timage = " << value.image << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentCapabilitiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceImageMemoryRequirements& value)
 {
-       s << "VkDeviceGroupPresentCapabilitiesKHR = {\n";
+       s << "VkDeviceImageMemoryRequirements = {\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 << "\tpCreateInfo = " << value.pCreateInfo << '\n';
+       s << "\tplaneAspect = " << value.planeAspect << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceGroupPresentInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements2& value)
 {
-       s << "VkDeviceGroupPresentInfoKHR = {\n";
+       s << "VkMemoryRequirements2 = {\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 << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceGroupSwapchainCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements2& value)
 {
-       s << "VkDeviceGroupSwapchainCreateInfoKHR = {\n";
+       s << "VkSparseImageMemoryRequirements2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmodes = " << getDeviceGroupPresentModeFlagsKHRStr(value.modes) << '\n';
+       s << "\tmemoryRequirements = " << value.memoryRequirements << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDisplayModeParametersKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePointClippingProperties& value)
 {
-       s << "VkDisplayModeParametersKHR = {\n";
-       s << "\tvisibleRegion = " << value.visibleRegion << '\n';
-       s << "\trefreshRate = " << value.refreshRate << '\n';
+       s << "VkPhysicalDevicePointClippingProperties = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDisplayModeCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedRequirements& value)
 {
-       s << "VkDisplayModeCreateInfoKHR = {\n";
+       s << "VkMemoryDedicatedRequirements = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getDisplayModeCreateFlagsKHRStr(value.flags) << '\n';
-       s << "\tparameters = " << value.parameters << '\n';
+       s << "\tprefersDedicatedAllocation = " << value.prefersDedicatedAllocation << '\n';
+       s << "\trequiresDedicatedAllocation = " << value.requiresDedicatedAllocation << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDisplayModePropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryDedicatedAllocateInfo& value)
 {
-       s << "VkDisplayModePropertiesKHR = {\n";
-       s << "\tdisplayMode = " << value.displayMode << '\n';
-       s << "\tparameters = " << value.parameters << '\n';
+       s << "VkMemoryDedicatedAllocateInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\timage = " << value.image << '\n';
+       s << "\tbuffer = " << value.buffer << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilitiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkImageViewUsageCreateInfo& value)
 {
-       s << "VkDisplayPlaneCapabilitiesKHR = {\n";
-       s << "\tsupportedAlpha = " << getDisplayPlaneAlphaFlagsKHRStr(value.supportedAlpha) << '\n';
-       s << "\tminSrcPosition = " << value.minSrcPosition << '\n';
-       s << "\tmaxSrcPosition = " << value.maxSrcPosition << '\n';
-       s << "\tminSrcExtent = " << value.minSrcExtent << '\n';
-       s << "\tmaxSrcExtent = " << value.maxSrcExtent << '\n';
-       s << "\tminDstPosition = " << value.minDstPosition << '\n';
-       s << "\tmaxDstPosition = " << value.maxDstPosition << '\n';
-       s << "\tminDstExtent = " << value.minDstExtent << '\n';
-       s << "\tmaxDstExtent = " << value.maxDstExtent << '\n';
+       s << "VkImageViewUsageCreateInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDisplayPlanePropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineTessellationDomainOriginStateCreateInfo& value)
 {
-       s << "VkDisplayPlanePropertiesKHR = {\n";
-       s << "\tcurrentDisplay = " << value.currentDisplay << '\n';
-       s << "\tcurrentStackIndex = " << value.currentStackIndex << '\n';
+       s << "VkPipelineTessellationDomainOriginStateCreateInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tdomainOrigin = " << value.domainOrigin << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDisplayPropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionInfo& value)
 {
-       s << "VkDisplayPropertiesKHR = {\n";
-       s << "\tdisplay = " << value.display << '\n';
-       s << "\tdisplayName = " << getCharPtrStr(value.displayName) << '\n';
-       s << "\tphysicalDimensions = " << value.physicalDimensions << '\n';
-       s << "\tphysicalResolution = " << value.physicalResolution << '\n';
-       s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
-       s << "\tplaneReorderPossible = " << value.planeReorderPossible << '\n';
-       s << "\tpersistentContent = " << value.persistentContent << '\n';
+       s << "VkSamplerYcbcrConversionInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tconversion = " << value.conversion << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDisplaySurfaceCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionCreateInfo& value)
 {
-       s << "VkDisplaySurfaceCreateInfoKHR = {\n";
+       s << "VkSamplerYcbcrConversionCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getDisplaySurfaceCreateFlagsKHRStr(value.flags) << '\n';
-       s << "\tdisplayMode = " << value.displayMode << '\n';
-       s << "\tplaneIndex = " << value.planeIndex << '\n';
-       s << "\tplaneStackIndex = " << value.planeStackIndex << '\n';
-       s << "\ttransform = " << value.transform << '\n';
-       s << "\tglobalAlpha = " << value.globalAlpha << '\n';
-       s << "\talphaMode = " << value.alphaMode << '\n';
-       s << "\timageExtent = " << value.imageExtent << '\n';
+       s << "\tformat = " << value.format << '\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';
+       s << "\tchromaFilter = " << value.chromaFilter << '\n';
+       s << "\tforceExplicitReconstruction = " << value.forceExplicitReconstruction << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDisplayPresentInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkBindImagePlaneMemoryInfo& value)
 {
-       s << "VkDisplayPresentInfoKHR = {\n";
+       s << "VkBindImagePlaneMemoryInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrcRect = " << value.srcRect << '\n';
-       s << "\tdstRect = " << value.dstRect << '\n';
-       s << "\tpersistent = " << value.persistent << '\n';
+       s << "\tplaneAspect = " << value.planeAspect << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkRenderingFragmentShadingRateAttachmentInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkImagePlaneMemoryRequirementsInfo& value)
 {
-       s << "VkRenderingFragmentShadingRateAttachmentInfoKHR = {\n";
+       s << "VkImagePlaneMemoryRequirementsInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\timageView = " << value.imageView << '\n';
-       s << "\timageLayout = " << value.imageLayout << '\n';
-       s << "\tshadingRateAttachmentTexelSize = " << value.shadingRateAttachmentTexelSize << '\n';
+       s << "\tplaneAspect = " << value.planeAspect << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkRenderingFragmentDensityMapAttachmentInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerYcbcrConversionFeatures& value)
 {
-       s << "VkRenderingFragmentDensityMapAttachmentInfoEXT = {\n";
+       s << "VkPhysicalDeviceSamplerYcbcrConversionFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\timageView = " << value.imageView << '\n';
-       s << "\timageLayout = " << value.imageLayout << '\n';
+       s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleCountInfoAMD& value)
+std::ostream& operator<< (std::ostream& s, const VkSamplerYcbcrConversionImageFormatProperties& value)
 {
-       s << "VkAttachmentSampleCountInfoAMD = {\n";
+       s << "VkSamplerYcbcrConversionImageFormatProperties = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
-       s << "\tpColorAttachmentSamples = " << value.pColorAttachmentSamples << '\n';
-       s << "\tdepthStencilAttachmentSamples = " << value.depthStencilAttachmentSamples << '\n';
+       s << "\tcombinedImageSamplerDescriptorCount = " << value.combinedImageSamplerDescriptorCount << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMultiviewPerViewAttributesInfoNVX& value)
+std::ostream& operator<< (std::ostream& s, const VkTextureLODGatherFormatPropertiesAMD& value)
 {
-       s << "VkMultiviewPerViewAttributesInfoNVX = {\n";
+       s << "VkTextureLODGatherFormatPropertiesAMD = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tperViewAttributes = " << value.perViewAttributes << '\n';
-       s << "\tperViewAttributesPositionXOnly = " << value.perViewAttributesPositionXOnly << '\n';
+       s << "\tsupportsTextureGatherLODBiasAMD = " << value.supportsTextureGatherLODBiasAMD << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportMemoryFdInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkConditionalRenderingBeginInfoEXT& value)
 {
-       s << "VkImportMemoryFdInfoKHR = {\n";
+       s << "VkConditionalRenderingBeginInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
-       s << "\tfd = " << value.fd << '\n';
+       s << "\tbuffer = " << value.buffer << '\n';
+       s << "\toffset = " << value.offset << '\n';
+       s << "\tflags = " << getConditionalRenderingFlagsEXTStr(value.flags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryFdPropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkProtectedSubmitInfo& value)
 {
-       s << "VkMemoryFdPropertiesKHR = {\n";
+       s << "VkProtectedSubmitInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
+       s << "\tprotectedSubmit = " << value.protectedSubmit << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryGetFdInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProtectedMemoryFeatures& value)
 {
-       s << "VkMemoryGetFdInfoKHR = {\n";
+       s << "VkPhysicalDeviceProtectedMemoryFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemory = " << value.memory << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
+       s << "\tprotectedMemory = " << value.protectedMemory << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreFdInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProtectedMemoryProperties& value)
 {
-       s << "VkImportSemaphoreFdInfoKHR = {\n";
+       s << "VkPhysicalDeviceProtectedMemoryProperties = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsemaphore = " << value.semaphore << '\n';
-       s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
-       s << "\tfd = " << value.fd << '\n';
+       s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetFdInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceQueueInfo2& value)
 {
-       s << "VkSemaphoreGetFdInfoKHR = {\n";
+       s << "VkDeviceQueueInfo2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsemaphore = " << value.semaphore << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
+       s << "\tflags = " << getDeviceQueueCreateFlagsStr(value.flags) << '\n';
+       s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
+       s << "\tqueueIndex = " << value.queueIndex << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePushDescriptorPropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageToColorStateCreateInfoNV& value)
 {
-       s << "VkPhysicalDevicePushDescriptorPropertiesKHR = {\n";
+       s << "VkPipelineCoverageToColorStateCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxPushDescriptors = " << value.maxPushDescriptors << '\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 VkRectLayerKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSamplerFilterMinmaxProperties& value)
 {
-       s << "VkRectLayerKHR = {\n";
-       s << "\toffset = " << value.offset << '\n';
-       s << "\textent = " << value.extent << '\n';
-       s << "\tlayer = " << value.layer << '\n';
+       s << "VkPhysicalDeviceSamplerFilterMinmaxProperties = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
+       s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPresentRegionKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkSampleLocationEXT& value)
 {
-       s << "VkPresentRegionKHR = {\n";
-       s << "\trectangleCount = " << value.rectangleCount << '\n';
-       s << "\tpRectangles = " << value.pRectangles << '\n';
+       s << "VkSampleLocationEXT = {\n";
+       s << "\tx = " << value.x << '\n';
+       s << "\ty = " << value.y << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPresentRegionsKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkSampleLocationsInfoEXT& value)
 {
-       s << "VkPresentRegionsKHR = {\n";
+       s << "VkSampleLocationsInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tswapchainCount = " << value.swapchainCount << '\n';
-       s << "\tpRegions = " << value.pRegions << '\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 VkSharedPresentSurfaceCapabilitiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleLocationsEXT& value)
 {
-       s << "VkSharedPresentSurfaceCapabilitiesKHR = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsharedPresentSupportedUsageFlags = " << getImageUsageFlagsStr(value.sharedPresentSupportedUsageFlags) << '\n';
+       s << "VkAttachmentSampleLocationsEXT = {\n";
+       s << "\tattachmentIndex = " << value.attachmentIndex << '\n';
+       s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportFenceFdInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkSubpassSampleLocationsEXT& value)
 {
-       s << "VkImportFenceFdInfoKHR = {\n";
+       s << "VkSubpassSampleLocationsEXT = {\n";
+       s << "\tsubpassIndex = " << value.subpassIndex << '\n';
+       s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkRenderPassSampleLocationsBeginInfoEXT& value)
+{
+       s << "VkRenderPassSampleLocationsBeginInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfence = " << value.fence << '\n';
-       s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
-       s << "\tfd = " << value.fd << '\n';
+       s << "\tattachmentInitialSampleLocationsCount = " << value.attachmentInitialSampleLocationsCount << '\n';
+       s << "\tpAttachmentInitialSampleLocations = " << value.pAttachmentInitialSampleLocations << '\n';
+       s << "\tpostSubpassSampleLocationsCount = " << value.postSubpassSampleLocationsCount << '\n';
+       s << "\tpPostSubpassSampleLocations = " << value.pPostSubpassSampleLocations << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkFenceGetFdInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineSampleLocationsStateCreateInfoEXT& value)
 {
-       s << "VkFenceGetFdInfoKHR = {\n";
+       s << "VkPipelineSampleLocationsStateCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfence = " << value.fence << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
+       s << "\tsampleLocationsEnable = " << value.sampleLocationsEnable << '\n';
+       s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceQueryFeaturesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSampleLocationsPropertiesEXT& value)
 {
-       s << "VkPhysicalDevicePerformanceQueryFeaturesKHR = {\n";
+       s << "VkPhysicalDeviceSampleLocationsPropertiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tperformanceCounterQueryPools = " << value.performanceCounterQueryPools << '\n';
-       s << "\tperformanceCounterMultipleQueryPools = " << value.performanceCounterMultipleQueryPools << '\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 VkPhysicalDevicePerformanceQueryPropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkMultisamplePropertiesEXT& value)
 {
-       s << "VkPhysicalDevicePerformanceQueryPropertiesKHR = {\n";
+       s << "VkMultisamplePropertiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tallowCommandBufferQueryCopies = " << value.allowCommandBufferQueryCopies << '\n';
+       s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkSamplerReductionModeCreateInfo& value)
 {
-       s << "VkPerformanceCounterKHR = {\n";
+       s << "VkSamplerReductionModeCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tunit = " << value.unit << '\n';
-       s << "\tscope = " << value.scope << '\n';
-       s << "\tstorage = " << value.storage << '\n';
-       s << "\tuuid = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.uuid)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.uuid))) << '\n';
+       s << "\treductionMode = " << value.reductionMode << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterDescriptionKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT& value)
 {
-       s << "VkPerformanceCounterDescriptionKHR = {\n";
+       s << "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getPerformanceCounterDescriptionFlagsKHRStr(value.flags) << '\n';
-       s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
-       s << "\tcategory = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.category)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.category))) << '\n';
-       s << "\tdescription = " << (const char*)value.description << '\n';
+       s << "\tadvancedBlendCoherentOperations = " << value.advancedBlendCoherentOperations << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiDrawFeaturesEXT& value)
 {
-       s << "VkQueryPoolPerformanceCreateInfoKHR = {\n";
+       s << "VkPhysicalDeviceMultiDrawFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
-       s << "\tcounterIndexCount = " << value.counterIndexCount << '\n';
-       s << "\tpCounterIndices = " << value.pCounterIndices << '\n';
+       s << "\tmultiDraw = " << value.multiDraw << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterResultKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT& value)
 {
-       s << "VkPerformanceCounterResultKHR = {\n";
-       s << "\tint32 = " << value.int32 << '\n';
-       s << "\tint64 = " << value.int64 << '\n';
-       s << "\tuint32 = " << value.uint32 << '\n';
-       s << "\tuint64 = " << value.uint64 << '\n';
-       s << "\tfloat32 = " << value.float32 << '\n';
-       s << "\tfloat64 = " << value.float64 << '\n';
+       s << "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\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 VkAcquireProfilingLockInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAdvancedStateCreateInfoEXT& value)
 {
-       s << "VkAcquireProfilingLockInfoKHR = {\n";
+       s << "VkPipelineColorBlendAdvancedStateCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getAcquireProfilingLockFlagsKHRStr(value.flags) << '\n';
-       s << "\ttimeout = " << value.timeout << '\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 VkPerformanceQuerySubmitInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockFeatures& value)
 {
-       s << "VkPerformanceQuerySubmitInfoKHR = {\n";
+       s << "VkPhysicalDeviceInlineUniformBlockFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcounterPassIndex = " << value.counterPassIndex << '\n';
+       s << "\tinlineUniformBlock = " << value.inlineUniformBlock << '\n';
+       s << "\tdescriptorBindingInlineUniformBlockUpdateAfterBind = " << value.descriptorBindingInlineUniformBlockUpdateAfterBind << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSurfaceInfo2KHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockProperties& value)
 {
-       s << "VkPhysicalDeviceSurfaceInfo2KHR = {\n";
+       s << "VkPhysicalDeviceInlineUniformBlockProperties = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsurface = " << value.surface << '\n';
+       s << "\tmaxInlineUniformBlockSize = " << value.maxInlineUniformBlockSize << '\n';
+       s << "\tmaxPerStageDescriptorInlineUniformBlocks = " << value.maxPerStageDescriptorInlineUniformBlocks << '\n';
+       s << "\tmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = " << value.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks << '\n';
+       s << "\tmaxDescriptorSetInlineUniformBlocks = " << value.maxDescriptorSetInlineUniformBlocks << '\n';
+       s << "\tmaxDescriptorSetUpdateAfterBindInlineUniformBlocks = " << value.maxDescriptorSetUpdateAfterBindInlineUniformBlocks << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2KHR& value)
+std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetInlineUniformBlock& value)
 {
-       s << "VkSurfaceCapabilities2KHR = {\n";
+       s << "VkWriteDescriptorSetInlineUniformBlock = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsurfaceCapabilities = " << value.surfaceCapabilities << '\n';
+       s << "\tdataSize = " << value.dataSize << '\n';
+       s << "\tpData = " << value.pData << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSurfaceFormat2KHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDescriptorPoolInlineUniformBlockCreateInfo& value)
 {
-       s << "VkSurfaceFormat2KHR = {\n";
+       s << "VkDescriptorPoolInlineUniformBlockCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsurfaceFormat = " << value.surfaceFormat << '\n';
+       s << "\tmaxInlineUniformBlockBindings = " << value.maxInlineUniformBlockBindings << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDisplayProperties2KHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageModulationStateCreateInfoNV& value)
 {
-       s << "VkDisplayProperties2KHR = {\n";
+       s << "VkPipelineCoverageModulationStateCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdisplayProperties = " << value.displayProperties << '\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;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneProperties2KHR& value)
+std::ostream& operator<< (std::ostream& s, const VkImageFormatListCreateInfo& value)
 {
-       s << "VkDisplayPlaneProperties2KHR = {\n";
+       s << "VkImageFormatListCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdisplayPlaneProperties = " << value.displayPlaneProperties << '\n';
+       s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
+       s << "\tpViewFormats = " << value.pViewFormats << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDisplayModeProperties2KHR& value)
+std::ostream& operator<< (std::ostream& s, const VkValidationCacheCreateInfoEXT& value)
 {
-       s << "VkDisplayModeProperties2KHR = {\n";
+       s << "VkValidationCacheCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdisplayModeProperties = " << value.displayModeProperties << '\n';
+       s << "\tflags = " << getValidationCacheCreateFlagsEXTStr(value.flags) << '\n';
+       s << "\tinitialDataSize = " << value.initialDataSize << '\n';
+       s << "\tpInitialData = " << value.pInitialData << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneInfo2KHR& value)
+std::ostream& operator<< (std::ostream& s, const VkShaderModuleValidationCacheCreateInfoEXT& value)
 {
-       s << "VkDisplayPlaneInfo2KHR = {\n";
+       s << "VkShaderModuleValidationCacheCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmode = " << value.mode << '\n';
-       s << "\tplaneIndex = " << value.planeIndex << '\n';
+       s << "\tvalidationCache = " << value.validationCache << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilities2KHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance3Properties& value)
 {
-       s << "VkDisplayPlaneCapabilities2KHR = {\n";
+       s << "VkPhysicalDeviceMaintenance3Properties = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcapabilities = " << value.capabilities << '\n';
+       s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
+       s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderClockFeaturesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance4Features& value)
 {
-       s << "VkPhysicalDeviceShaderClockFeaturesKHR = {\n";
+       s << "VkPhysicalDeviceMaintenance4Features = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderSubgroupClock = " << value.shaderSubgroupClock << '\n';
-       s << "\tshaderDeviceClock = " << value.shaderDeviceClock << '\n';
+       s << "\tmaintenance4 = " << value.maintenance4 << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceQueueGlobalPriorityCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMaintenance4Properties& value)
 {
-       s << "VkDeviceQueueGlobalPriorityCreateInfoKHR = {\n";
+       s << "VkPhysicalDeviceMaintenance4Properties = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tglobalPriority = " << value.globalPriority << '\n';
+       s << "\tmaxBufferSize = " << value.maxBufferSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutSupport& value)
 {
-       s << "VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR = {\n";
+       s << "VkDescriptorSetLayoutSupport = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tglobalPriorityQuery = " << value.globalPriorityQuery << '\n';
+       s << "\tsupported = " << value.supported << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkQueueFamilyGlobalPriorityPropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDrawParametersFeatures& value)
 {
-       s << "VkQueueFamilyGlobalPriorityPropertiesKHR = {\n";
+       s << "VkPhysicalDeviceShaderDrawParametersFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpriorityCount = " << value.priorityCount << '\n';
-       s << "\tpriorities = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.priorities), DE_ARRAY_END(value.priorities)) << '\n';
+       s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkFragmentShadingRateAttachmentInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderFloat16Int8Features& value)
 {
-       s << "VkFragmentShadingRateAttachmentInfoKHR = {\n";
+       s << "VkPhysicalDeviceShaderFloat16Int8Features = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpFragmentShadingRateAttachment = " << value.pFragmentShadingRateAttachment << '\n';
-       s << "\tshadingRateAttachmentTexelSize = " << value.shadingRateAttachmentTexelSize << '\n';
+       s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
+       s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateStateCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFloatControlsProperties& value)
 {
-       s << "VkPipelineFragmentShadingRateStateCreateInfoKHR = {\n";
+       s << "VkPhysicalDeviceFloatControlsProperties = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfragmentSize = " << value.fragmentSize << '\n';
-       s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
+       s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
+       s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
+       s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
+       s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
+       s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
+       s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
+       s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
+       s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
+       s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
+       s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
+       s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
+       s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
+       s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
+       s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
+       s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
+       s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
+       s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateFeaturesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceHostQueryResetFeatures& value)
 {
-       s << "VkPhysicalDeviceFragmentShadingRateFeaturesKHR = {\n";
+       s << "VkPhysicalDeviceHostQueryResetFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpipelineFragmentShadingRate = " << value.pipelineFragmentShadingRate << '\n';
-       s << "\tprimitiveFragmentShadingRate = " << value.primitiveFragmentShadingRate << '\n';
-       s << "\tattachmentFragmentShadingRate = " << value.attachmentFragmentShadingRate << '\n';
+       s << "\thostQueryReset = " << value.hostQueryReset << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRatePropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkShaderResourceUsageAMD& value)
 {
-       s << "VkPhysicalDeviceFragmentShadingRatePropertiesKHR = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tminFragmentShadingRateAttachmentTexelSize = " << value.minFragmentShadingRateAttachmentTexelSize << '\n';
-       s << "\tmaxFragmentShadingRateAttachmentTexelSize = " << value.maxFragmentShadingRateAttachmentTexelSize << '\n';
-       s << "\tmaxFragmentShadingRateAttachmentTexelSizeAspectRatio = " << value.maxFragmentShadingRateAttachmentTexelSizeAspectRatio << '\n';
-       s << "\tprimitiveFragmentShadingRateWithMultipleViewports = " << value.primitiveFragmentShadingRateWithMultipleViewports << '\n';
-       s << "\tlayeredShadingRateAttachments = " << value.layeredShadingRateAttachments << '\n';
-       s << "\tfragmentShadingRateNonTrivialCombinerOps = " << value.fragmentShadingRateNonTrivialCombinerOps << '\n';
-       s << "\tmaxFragmentSize = " << value.maxFragmentSize << '\n';
-       s << "\tmaxFragmentSizeAspectRatio = " << value.maxFragmentSizeAspectRatio << '\n';
-       s << "\tmaxFragmentShadingRateCoverageSamples = " << value.maxFragmentShadingRateCoverageSamples << '\n';
-       s << "\tmaxFragmentShadingRateRasterizationSamples = " << value.maxFragmentShadingRateRasterizationSamples << '\n';
-       s << "\tfragmentShadingRateWithShaderDepthStencilWrites = " << value.fragmentShadingRateWithShaderDepthStencilWrites << '\n';
-       s << "\tfragmentShadingRateWithSampleMask = " << value.fragmentShadingRateWithSampleMask << '\n';
-       s << "\tfragmentShadingRateWithShaderSampleMask = " << value.fragmentShadingRateWithShaderSampleMask << '\n';
-       s << "\tfragmentShadingRateWithConservativeRasterization = " << value.fragmentShadingRateWithConservativeRasterization << '\n';
-       s << "\tfragmentShadingRateWithFragmentShaderInterlock = " << value.fragmentShadingRateWithFragmentShaderInterlock << '\n';
-       s << "\tfragmentShadingRateWithCustomSampleLocations = " << value.fragmentShadingRateWithCustomSampleLocations << '\n';
-       s << "\tfragmentShadingRateStrictMultiplyCombiner = " << value.fragmentShadingRateStrictMultiplyCombiner << '\n';
+       s << "VkShaderResourceUsageAMD = {\n";
+       s << "\tnumUsedVgprs = " << value.numUsedVgprs << '\n';
+       s << "\tnumUsedSgprs = " << value.numUsedSgprs << '\n';
+       s << "\tldsSizePerLocalWorkGroup = " << value.ldsSizePerLocalWorkGroup << '\n';
+       s << "\tldsUsageSizeInBytes = " << value.ldsUsageSizeInBytes << '\n';
+       s << "\tscratchMemUsageInBytes = " << value.scratchMemUsageInBytes << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkShaderStatisticsInfoAMD& value)
 {
-       s << "VkPhysicalDeviceFragmentShadingRateKHR = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
-       s << "\tfragmentSize = " << value.fragmentSize << '\n';
+       s << "VkShaderStatisticsInfoAMD = {\n";
+       s << "\tshaderStageMask = " << getShaderStageFlagsStr(value.shaderStageMask) << '\n';
+       s << "\tresourceUsage = " << value.resourceUsage << '\n';
+       s << "\tnumPhysicalVgprs = " << value.numPhysicalVgprs << '\n';
+       s << "\tnumPhysicalSgprs = " << value.numPhysicalSgprs << '\n';
+       s << "\tnumAvailableVgprs = " << value.numAvailableVgprs << '\n';
+       s << "\tnumAvailableSgprs = " << value.numAvailableSgprs << '\n';
+       s << "\tcomputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.computeWorkGroupSize), DE_ARRAY_END(value.computeWorkGroupSize)) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSurfaceProtectedCapabilitiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceQueueGlobalPriorityCreateInfoKHR& value)
 {
-       s << "VkSurfaceProtectedCapabilitiesKHR = {\n";
+       s << "VkDeviceQueueGlobalPriorityCreateInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsupportsProtected = " << value.supportsProtected << '\n';
+       s << "\tglobalPriority = " << value.globalPriority << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentWaitFeaturesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR& value)
 {
-       s << "VkPhysicalDevicePresentWaitFeaturesKHR = {\n";
+       s << "VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpresentWait = " << value.presentWait << '\n';
+       s << "\tglobalPriorityQuery = " << value.globalPriorityQuery << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkQueueFamilyGlobalPriorityPropertiesKHR& value)
 {
-       s << "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR = {\n";
+       s << "VkQueueFamilyGlobalPriorityPropertiesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpipelineExecutableInfo = " << value.pipelineExecutableInfo << '\n';
+       s << "\tpriorityCount = " << value.priorityCount << '\n';
+       s << "\tpriorities = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.priorities), DE_ARRAY_END(value.priorities)) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectNameInfoEXT& value)
 {
-       s << "VkPipelineInfoKHR = {\n";
+       s << "VkDebugUtilsObjectNameInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpipeline = " << value.pipeline << '\n';
+       s << "\tobjectType = " << value.objectType << '\n';
+       s << "\tobjectHandle = " << value.objectHandle << '\n';
+       s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineExecutablePropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectTagInfoEXT& value)
 {
-       s << "VkPipelineExecutablePropertiesKHR = {\n";
+       s << "VkDebugUtilsObjectTagInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tstages = " << getShaderStageFlagsStr(value.stages) << '\n';
-       s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
-       s << "\tdescription = " << (const char*)value.description << '\n';
-       s << "\tsubgroupSize = " << value.subgroupSize << '\n';
+       s << "\tobjectType = " << value.objectType << '\n';
+       s << "\tobjectHandle = " << value.objectHandle << '\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 VkPipelineExecutableInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDebugUtilsLabelEXT& value)
 {
-       s << "VkPipelineExecutableInfoKHR = {\n";
+       s << "VkDebugUtilsLabelEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpipeline = " << value.pipeline << '\n';
-       s << "\texecutableIndex = " << value.executableIndex << '\n';
+       s << "\tpLabelName = " << getCharPtrStr(value.pLabelName) << '\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 VkPipelineExecutableStatisticValueKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCreateInfoEXT& value)
 {
-       s << "VkPipelineExecutableStatisticValueKHR = {\n";
-       s << "\tb32 = " << value.b32 << '\n';
-       s << "\ti64 = " << value.i64 << '\n';
-       s << "\tu64 = " << value.u64 << '\n';
-       s << "\tf64 = " << value.f64 << '\n';
+       s << "VkDebugUtilsMessengerCreateInfoEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tflags = " << getDebugUtilsMessengerCreateFlagsEXTStr(value.flags) << '\n';
+       s << "\tmessageSeverity = " << getDebugUtilsMessageSeverityFlagsEXTStr(value.messageSeverity) << '\n';
+       s << "\tmessageType = " << getDebugUtilsMessageTypeFlagsEXTStr(value.messageType) << '\n';
+       s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
+       s << "\tpUserData = " << value.pUserData << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCallbackDataEXT& value)
 {
-       s << "VkPipelineExecutableStatisticKHR = {\n";
+       s << "VkDebugUtilsMessengerCallbackDataEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
-       s << "\tdescription = " << (const char*)value.description << '\n';
-       s << "\tformat = " << value.format << '\n';
-       s << "\tvalue = " << value.value << '\n';
+       s << "\tflags = " << getDebugUtilsMessengerCallbackDataFlagsEXTStr(value.flags) << '\n';
+       s << "\tpMessageIdName = " << getCharPtrStr(value.pMessageIdName) << '\n';
+       s << "\tmessageIdNumber = " << value.messageIdNumber << '\n';
+       s << "\tpMessage = " << getCharPtrStr(value.pMessage) << '\n';
+       s << "\tqueueLabelCount = " << value.queueLabelCount << '\n';
+       s << "\tpQueueLabels = " << value.pQueueLabels << '\n';
+       s << "\tcmdBufLabelCount = " << value.cmdBufLabelCount << '\n';
+       s << "\tpCmdBufLabels = " << value.pCmdBufLabels << '\n';
+       s << "\tobjectCount = " << value.objectCount << '\n';
+       s << "\tpObjects = " << value.pObjects << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInternalRepresentationKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT& value)
 {
-       s << "VkPipelineExecutableInternalRepresentationKHR = {\n";
+       s << "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
-       s << "\tdescription = " << (const char*)value.description << '\n';
-       s << "\tisText = " << value.isText << '\n';
-       s << "\tdataSize = " << value.dataSize << '\n';
-       s << "\tpData = " << value.pData << '\n';
+       s << "\tdeviceMemoryReport = " << value.deviceMemoryReport << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineLibraryCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceDeviceMemoryReportCreateInfoEXT& value)
 {
-       s << "VkPipelineLibraryCreateInfoKHR = {\n";
+       s << "VkDeviceDeviceMemoryReportCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tlibraryCount = " << value.libraryCount << '\n';
-       s << "\tpLibraries = " << value.pLibraries << '\n';
+       s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
+       s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
+       s << "\tpUserData = " << value.pUserData << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPresentIdKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryReportCallbackDataEXT& value)
 {
-       s << "VkPresentIdKHR = {\n";
+       s << "VkDeviceMemoryReportCallbackDataEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tswapchainCount = " << value.swapchainCount << '\n';
-       s << "\tpPresentIds = " << value.pPresentIds << '\n';
+       s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
+       s << "\ttype = " << value.type << '\n';
+       s << "\tmemoryObjectId = " << value.memoryObjectId << '\n';
+       s << "\tsize = " << value.size << '\n';
+       s << "\tobjectType = " << value.objectType << '\n';
+       s << "\tobjectHandle = " << value.objectHandle << '\n';
+       s << "\theapIndex = " << value.heapIndex << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePresentIdFeaturesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkImportMemoryHostPointerInfoEXT& value)
 {
-       s << "VkPhysicalDevicePresentIdFeaturesKHR = {\n";
+       s << "VkImportMemoryHostPointerInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpresentId = " << value.presentId << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
+       s << "\tpHostPointer = " << value.pHostPointer << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointProperties2NV& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryHostPointerPropertiesEXT& value)
 {
-       s << "VkQueueFamilyCheckpointProperties2NV = {\n";
+       s << "VkMemoryHostPointerPropertiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcheckpointExecutionStageMask = " << value.checkpointExecutionStageMask << '\n';
+       s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCheckpointData2NV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryHostPropertiesEXT& value)
 {
-       s << "VkCheckpointData2NV = {\n";
+       s << "VkPhysicalDeviceExternalMemoryHostPropertiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tstage = " << value.stage << '\n';
-       s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
+       s << "\tminImportedHostPointerAlignment = " << value.minImportedHostPointerAlignment << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConservativeRasterizationPropertiesEXT& value)
 {
-       s << "VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR = {\n";
+       s << "VkPhysicalDeviceConservativeRasterizationPropertiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfragmentShaderBarycentric = " << value.fragmentShaderBarycentric << '\n';
+       s << "\tprimitiveOverestimationSize = " << value.primitiveOverestimationSize << '\n';
+       s << "\tmaxExtraPrimitiveOverestimationSize = " << value.maxExtraPrimitiveOverestimationSize << '\n';
+       s << "\textraPrimitiveOverestimationSizeGranularity = " << value.extraPrimitiveOverestimationSizeGranularity << '\n';
+       s << "\tprimitiveUnderestimation = " << value.primitiveUnderestimation << '\n';
+       s << "\tconservativePointAndLineRasterization = " << value.conservativePointAndLineRasterization << '\n';
+       s << "\tdegenerateTrianglesRasterized = " << value.degenerateTrianglesRasterized << '\n';
+       s << "\tdegenerateLinesRasterized = " << value.degenerateLinesRasterized << '\n';
+       s << "\tfullyCoveredFragmentShaderInputVariable = " << value.fullyCoveredFragmentShaderInputVariable << '\n';
+       s << "\tconservativeRasterizationPostDepthCoverage = " << value.conservativeRasterizationPostDepthCoverage << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkCalibratedTimestampInfoEXT& value)
 {
-       s << "VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR = {\n";
+       s << "VkCalibratedTimestampInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttriStripVertexOrderIndependentOfProvokingVertex = " << value.triStripVertexOrderIndependentOfProvokingVertex << '\n';
+       s << "\ttimeDomain = " << value.timeDomain << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCorePropertiesAMD& value)
 {
-       s << "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = {\n";
+       s << "VkPhysicalDeviceShaderCorePropertiesAMD = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderSubgroupUniformControlFlow = " << value.shaderSubgroupUniformControlFlow << '\n';
+       s << "\tshaderEngineCount = " << value.shaderEngineCount << '\n';
+       s << "\tshaderArraysPerEngineCount = " << value.shaderArraysPerEngineCount << '\n';
+       s << "\tcomputeUnitsPerShaderArray = " << value.computeUnitsPerShaderArray << '\n';
+       s << "\tsimdPerComputeUnit = " << value.simdPerComputeUnit << '\n';
+       s << "\twavefrontsPerSimd = " << value.wavefrontsPerSimd << '\n';
+       s << "\twavefrontSize = " << value.wavefrontSize << '\n';
+       s << "\tsgprsPerSimd = " << value.sgprsPerSimd << '\n';
+       s << "\tminSgprAllocation = " << value.minSgprAllocation << '\n';
+       s << "\tmaxSgprAllocation = " << value.maxSgprAllocation << '\n';
+       s << "\tsgprAllocationGranularity = " << value.sgprAllocationGranularity << '\n';
+       s << "\tvgprsPerSimd = " << value.vgprsPerSimd << '\n';
+       s << "\tminVgprAllocation = " << value.minVgprAllocation << '\n';
+       s << "\tmaxVgprAllocation = " << value.maxVgprAllocation << '\n';
+       s << "\tvgprAllocationGranularity = " << value.vgprAllocationGranularity << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCoreProperties2AMD& value)
 {
-       s << "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = {\n";
+       s << "VkPhysicalDeviceShaderCoreProperties2AMD = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tworkgroupMemoryExplicitLayout = " << value.workgroupMemoryExplicitLayout << '\n';
-       s << "\tworkgroupMemoryExplicitLayoutScalarBlockLayout = " << value.workgroupMemoryExplicitLayoutScalarBlockLayout << '\n';
-       s << "\tworkgroupMemoryExplicitLayout8BitAccess = " << value.workgroupMemoryExplicitLayout8BitAccess << '\n';
-       s << "\tworkgroupMemoryExplicitLayout16BitAccess = " << value.workgroupMemoryExplicitLayout16BitAccess << '\n';
+       s << "\tshaderCoreFeatures = " << getShaderCorePropertiesFlagsAMDStr(value.shaderCoreFeatures) << '\n';
+       s << "\tactiveComputeUnitCount = " << value.activeComputeUnitCount << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationConservativeStateCreateInfoEXT& value)
 {
-       s << "VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR = {\n";
+       s << "VkPipelineRasterizationConservativeStateCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\trayTracingMaintenance1 = " << value.rayTracingMaintenance1 << '\n';
-       s << "\trayTracingPipelineTraceRaysIndirect2 = " << value.rayTracingPipelineTraceRaysIndirect2 << '\n';
+       s << "\tflags = " << getPipelineRasterizationConservativeStateCreateFlagsEXTStr(value.flags) << '\n';
+       s << "\tconservativeRasterizationMode = " << value.conservativeRasterizationMode << '\n';
+       s << "\textraPrimitiveOverestimationSize = " << value.extraPrimitiveOverestimationSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkTraceRaysIndirectCommand2KHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingFeatures& value)
 {
-       s << "VkTraceRaysIndirectCommand2KHR = {\n";
-       s << "\traygenShaderRecordAddress = " << value.raygenShaderRecordAddress << '\n';
-       s << "\traygenShaderRecordSize = " << value.raygenShaderRecordSize << '\n';
-       s << "\tmissShaderBindingTableAddress = " << value.missShaderBindingTableAddress << '\n';
-       s << "\tmissShaderBindingTableSize = " << value.missShaderBindingTableSize << '\n';
-       s << "\tmissShaderBindingTableStride = " << value.missShaderBindingTableStride << '\n';
-       s << "\thitShaderBindingTableAddress = " << value.hitShaderBindingTableAddress << '\n';
-       s << "\thitShaderBindingTableSize = " << value.hitShaderBindingTableSize << '\n';
-       s << "\thitShaderBindingTableStride = " << value.hitShaderBindingTableStride << '\n';
-       s << "\tcallableShaderBindingTableAddress = " << value.callableShaderBindingTableAddress << '\n';
-       s << "\tcallableShaderBindingTableSize = " << value.callableShaderBindingTableSize << '\n';
-       s << "\tcallableShaderBindingTableStride = " << value.callableShaderBindingTableStride << '\n';
-       s << "\twidth = " << value.width << '\n';
-       s << "\theight = " << value.height << '\n';
-       s << "\tdepth = " << value.depth << '\n';
+       s << "VkPhysicalDeviceDescriptorIndexingFeatures = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
+       s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
+       s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
+       s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
+       s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
+       s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
+       s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
+       s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
+       s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
+       s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
+       s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
+       s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
+       s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
+       s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
+       s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
+       s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
+       s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
+       s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
+       s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
+       s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDebugReportCallbackCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorIndexingProperties& value)
 {
-       s << "VkDebugReportCallbackCreateInfoEXT = {\n";
+       s << "VkPhysicalDeviceDescriptorIndexingProperties = {\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 << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
+       s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
+       s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
+       s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
+       s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
+       s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
+       s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
+       s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
+       s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
+       s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
+       s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
+       s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
+       s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
+       s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
+       s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
+       s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
+       s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
+       s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
+       s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
+       s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
+       s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
+       s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
+       s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateRasterizationOrderAMD& value)
+std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBindingFlagsCreateInfo& value)
 {
-       s << "VkPipelineRasterizationStateRasterizationOrderAMD = {\n";
+       s << "VkDescriptorSetLayoutBindingFlagsCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\trasterizationOrder = " << value.rasterizationOrder << '\n';
+       s << "\tbindingCount = " << value.bindingCount << '\n';
+       s << "\tpBindingFlags = " << getDescriptorBindingFlagsStr(*value.pBindingFlags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectNameInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountAllocateInfo& value)
 {
-       s << "VkDebugMarkerObjectNameInfoEXT = {\n";
+       s << "VkDescriptorSetVariableDescriptorCountAllocateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tobjectType = " << value.objectType << '\n';
-       s << "\tobject = " << value.object << '\n';
-       s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
+       s << "\tdescriptorSetCount = " << value.descriptorSetCount << '\n';
+       s << "\tpDescriptorCounts = " << value.pDescriptorCounts << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDebugMarkerObjectTagInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkDescriptorSetVariableDescriptorCountLayoutSupport& value)
 {
-       s << "VkDebugMarkerObjectTagInfoEXT = {\n";
+       s << "VkDescriptorSetVariableDescriptorCountLayoutSupport = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\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 << "\tmaxVariableDescriptorCount = " << value.maxVariableDescriptorCount << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDebugMarkerMarkerInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkAttachmentDescription2& value)
 {
-       s << "VkDebugMarkerMarkerInfoEXT = {\n";
+       s << "VkAttachmentDescription2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpMarkerName = " << getCharPtrStr(value.pMarkerName) << '\n';
-       s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
+       s << "\tflags = " << getAttachmentDescriptionFlagsStr(value.flags) << '\n';
+       s << "\tformat = " << value.format << '\n';
+       s << "\tsamples = " << value.samples << '\n';
+       s << "\tloadOp = " << value.loadOp << '\n';
+       s << "\tstoreOp = " << value.storeOp << '\n';
+       s << "\tstencilLoadOp = " << value.stencilLoadOp << '\n';
+       s << "\tstencilStoreOp = " << value.stencilStoreOp << '\n';
+       s << "\tinitialLayout = " << value.initialLayout << '\n';
+       s << "\tfinalLayout = " << value.finalLayout << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationImageCreateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkAttachmentReference2& value)
 {
-       s << "VkDedicatedAllocationImageCreateInfoNV = {\n";
+       s << "VkAttachmentReference2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
+       s << "\tattachment = " << value.attachment << '\n';
+       s << "\tlayout = " << value.layout << '\n';
+       s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationBufferCreateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkSubpassDescription2& value)
 {
-       s << "VkDedicatedAllocationBufferCreateInfoNV = {\n";
+       s << "VkSubpassDescription2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdedicatedAllocation = " << value.dedicatedAllocation << '\n';
+       s << "\tflags = " << getSubpassDescriptionFlagsStr(value.flags) << '\n';
+       s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
+       s << "\tviewMask = " << value.viewMask << '\n';
+       s << "\tinputAttachmentCount = " << value.inputAttachmentCount << '\n';
+       s << "\tpInputAttachments = " << value.pInputAttachments << '\n';
+       s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
+       s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
+       s << "\tpResolveAttachments = " << value.pResolveAttachments << '\n';
+       s << "\tpDepthStencilAttachment = " << value.pDepthStencilAttachment << '\n';
+       s << "\tpreserveAttachmentCount = " << value.preserveAttachmentCount << '\n';
+       s << "\tpPreserveAttachments = " << value.pPreserveAttachments << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDedicatedAllocationMemoryAllocateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkSubpassDependency2& value)
 {
-       s << "VkDedicatedAllocationMemoryAllocateInfoNV = {\n";
+       s << "VkSubpassDependency2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\timage = " << value.image << '\n';
-       s << "\tbuffer = " << value.buffer << '\n';
+       s << "\tsrcSubpass = " << value.srcSubpass << '\n';
+       s << "\tdstSubpass = " << value.dstSubpass << '\n';
+       s << "\tsrcStageMask = " << getPipelineStageFlagsStr(value.srcStageMask) << '\n';
+       s << "\tdstStageMask = " << getPipelineStageFlagsStr(value.dstStageMask) << '\n';
+       s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
+       s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
+       s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
+       s << "\tviewOffset = " << value.viewOffset << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkRenderPassCreateInfo2& value)
 {
-       s << "VkPhysicalDeviceTransformFeedbackFeaturesEXT = {\n";
+       s << "VkRenderPassCreateInfo2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttransformFeedback = " << value.transformFeedback << '\n';
-       s << "\tgeometryStreams = " << value.geometryStreams << '\n';
+       s << "\tflags = " << getRenderPassCreateFlagsStr(value.flags) << '\n';
+       s << "\tattachmentCount = " << value.attachmentCount << '\n';
+       s << "\tpAttachments = " << value.pAttachments << '\n';
+       s << "\tsubpassCount = " << value.subpassCount << '\n';
+       s << "\tpSubpasses = " << value.pSubpasses << '\n';
+       s << "\tdependencyCount = " << value.dependencyCount << '\n';
+       s << "\tpDependencies = " << value.pDependencies << '\n';
+       s << "\tcorrelatedViewMaskCount = " << value.correlatedViewMaskCount << '\n';
+       s << "\tpCorrelatedViewMasks = " << value.pCorrelatedViewMasks << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackPropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkSubpassBeginInfo& value)
 {
-       s << "VkPhysicalDeviceTransformFeedbackPropertiesEXT = {\n";
+       s << "VkSubpassBeginInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxTransformFeedbackStreams = " << value.maxTransformFeedbackStreams << '\n';
-       s << "\tmaxTransformFeedbackBuffers = " << value.maxTransformFeedbackBuffers << '\n';
-       s << "\tmaxTransformFeedbackBufferSize = " << value.maxTransformFeedbackBufferSize << '\n';
-       s << "\tmaxTransformFeedbackStreamDataSize = " << value.maxTransformFeedbackStreamDataSize << '\n';
-       s << "\tmaxTransformFeedbackBufferDataSize = " << value.maxTransformFeedbackBufferDataSize << '\n';
-       s << "\tmaxTransformFeedbackBufferDataStride = " << value.maxTransformFeedbackBufferDataStride << '\n';
-       s << "\ttransformFeedbackQueries = " << value.transformFeedbackQueries << '\n';
-       s << "\ttransformFeedbackStreamsLinesTriangles = " << value.transformFeedbackStreamsLinesTriangles << '\n';
-       s << "\ttransformFeedbackRasterizationStreamSelect = " << value.transformFeedbackRasterizationStreamSelect << '\n';
-       s << "\ttransformFeedbackDraw = " << value.transformFeedbackDraw << '\n';
+       s << "\tcontents = " << value.contents << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateStreamCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkSubpassEndInfo& value)
 {
-       s << "VkPipelineRasterizationStateStreamCreateInfoEXT = {\n";
+       s << "VkSubpassEndInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getPipelineRasterizationStateStreamCreateFlagsEXTStr(value.flags) << '\n';
-       s << "\trasterizationStream = " << value.rasterizationStream << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCuModuleCreateInfoNVX& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreFeatures& value)
 {
-       s << "VkCuModuleCreateInfoNVX = {\n";
+       s << "VkPhysicalDeviceTimelineSemaphoreFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdataSize = " << value.dataSize << '\n';
-       s << "\tpData = " << value.pData << '\n';
+       s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCuFunctionCreateInfoNVX& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTimelineSemaphoreProperties& value)
 {
-       s << "VkCuFunctionCreateInfoNVX = {\n";
+       s << "VkPhysicalDeviceTimelineSemaphoreProperties = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmodule = " << value.module << '\n';
-       s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
+       s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCuLaunchInfoNVX& value)
+std::ostream& operator<< (std::ostream& s, const VkSemaphoreTypeCreateInfo& value)
 {
-       s << "VkCuLaunchInfoNVX = {\n";
+       s << "VkSemaphoreTypeCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfunction = " << value.function << '\n';
-       s << "\tgridDimX = " << value.gridDimX << '\n';
-       s << "\tgridDimY = " << value.gridDimY << '\n';
-       s << "\tgridDimZ = " << value.gridDimZ << '\n';
-       s << "\tblockDimX = " << value.blockDimX << '\n';
-       s << "\tblockDimY = " << value.blockDimY << '\n';
-       s << "\tblockDimZ = " << value.blockDimZ << '\n';
-       s << "\tsharedMemBytes = " << value.sharedMemBytes << '\n';
-       s << "\tparamCount = " << value.paramCount << '\n';
-       s << "\tpParams = " << value.pParams << '\n';
-       s << "\textraCount = " << value.extraCount << '\n';
-       s << "\tpExtras = " << value.pExtras << '\n';
+       s << "\tsemaphoreType = " << value.semaphoreType << '\n';
+       s << "\tinitialValue = " << value.initialValue << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageViewHandleInfoNVX& value)
+std::ostream& operator<< (std::ostream& s, const VkTimelineSemaphoreSubmitInfo& value)
 {
-       s << "VkImageViewHandleInfoNVX = {\n";
+       s << "VkTimelineSemaphoreSubmitInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\timageView = " << value.imageView << '\n';
-       s << "\tdescriptorType = " << value.descriptorType << '\n';
-       s << "\tsampler = " << value.sampler << '\n';
+       s << "\twaitSemaphoreValueCount = " << value.waitSemaphoreValueCount << '\n';
+       s << "\tpWaitSemaphoreValues = " << value.pWaitSemaphoreValues << '\n';
+       s << "\tsignalSemaphoreValueCount = " << value.signalSemaphoreValueCount << '\n';
+       s << "\tpSignalSemaphoreValues = " << value.pSignalSemaphoreValues << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageViewAddressPropertiesNVX& value)
+std::ostream& operator<< (std::ostream& s, const VkSemaphoreWaitInfo& value)
 {
-       s << "VkImageViewAddressPropertiesNVX = {\n";
+       s << "VkSemaphoreWaitInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdeviceAddress = " << value.deviceAddress << '\n';
-       s << "\tsize = " << value.size << '\n';
+       s << "\tflags = " << getSemaphoreWaitFlagsStr(value.flags) << '\n';
+       s << "\tsemaphoreCount = " << value.semaphoreCount << '\n';
+       s << "\tpSemaphores = " << value.pSemaphores << '\n';
+       s << "\tpValues = " << value.pValues << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkTextureLODGatherFormatPropertiesAMD& value)
+std::ostream& operator<< (std::ostream& s, const VkSemaphoreSignalInfo& value)
 {
-       s << "VkTextureLODGatherFormatPropertiesAMD = {\n";
+       s << "VkSemaphoreSignalInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsupportsTextureGatherLODBiasAMD = " << value.supportsTextureGatherLODBiasAMD << '\n';
+       s << "\tsemaphore = " << value.semaphore << '\n';
+       s << "\tvalue = " << value.value << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkShaderResourceUsageAMD& value)
+std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDivisorDescriptionEXT& value)
 {
-       s << "VkShaderResourceUsageAMD = {\n";
-       s << "\tnumUsedVgprs = " << value.numUsedVgprs << '\n';
-       s << "\tnumUsedSgprs = " << value.numUsedSgprs << '\n';
-       s << "\tldsSizePerLocalWorkGroup = " << value.ldsSizePerLocalWorkGroup << '\n';
-       s << "\tldsUsageSizeInBytes = " << value.ldsUsageSizeInBytes << '\n';
-       s << "\tscratchMemUsageInBytes = " << value.scratchMemUsageInBytes << '\n';
+       s << "VkVertexInputBindingDivisorDescriptionEXT = {\n";
+       s << "\tbinding = " << value.binding << '\n';
+       s << "\tdivisor = " << value.divisor << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkShaderStatisticsInfoAMD& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineVertexInputDivisorStateCreateInfoEXT& value)
 {
-       s << "VkShaderStatisticsInfoAMD = {\n";
-       s << "\tshaderStageMask = " << getShaderStageFlagsStr(value.shaderStageMask) << '\n';
-       s << "\tresourceUsage = " << value.resourceUsage << '\n';
-       s << "\tnumPhysicalVgprs = " << value.numPhysicalVgprs << '\n';
-       s << "\tnumPhysicalSgprs = " << value.numPhysicalSgprs << '\n';
-       s << "\tnumAvailableVgprs = " << value.numAvailableVgprs << '\n';
-       s << "\tnumAvailableSgprs = " << value.numAvailableSgprs << '\n';
-       s << "\tcomputeWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.computeWorkGroupSize), DE_ARRAY_END(value.computeWorkGroupSize)) << '\n';
+       s << "VkPipelineVertexInputDivisorStateCreateInfoEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tvertexBindingDivisorCount = " << value.vertexBindingDivisorCount << '\n';
+       s << "\tpVertexBindingDivisors = " << value.pVertexBindingDivisors << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCornerSampledImageFeaturesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT& value)
 {
-       s << "VkPhysicalDeviceCornerSampledImageFeaturesNV = {\n";
+       s << "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcornerSampledImage = " << value.cornerSampledImage << '\n';
+       s << "\tmaxVertexAttribDivisor = " << value.maxVertexAttribDivisor << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExternalImageFormatPropertiesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePCIBusInfoPropertiesEXT& value)
 {
-       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 << "VkPhysicalDevicePCIBusInfoPropertiesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tpciDomain = " << value.pciDomain << '\n';
+       s << "\tpciBus = " << value.pciBus << '\n';
+       s << "\tpciDevice = " << value.pciDevice << '\n';
+       s << "\tpciFunction = " << value.pciFunction << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExternalMemoryImageCreateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkImportAndroidHardwareBufferInfoANDROID& value)
 {
-       s << "VkExternalMemoryImageCreateInfoNV = {\n";
+       s << "VkImportAndroidHardwareBufferInfoANDROID = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
+       s << "\tbuffer = " << value.buffer << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExportMemoryAllocateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferUsageANDROID& value)
 {
-       s << "VkExportMemoryAllocateInfoNV = {\n";
+       s << "VkAndroidHardwareBufferUsageANDROID = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleTypes = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleTypes) << '\n';
+       s << "\tandroidHardwareBufferUsage = " << value.androidHardwareBufferUsage << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkValidationFlagsEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferPropertiesANDROID& value)
 {
-       s << "VkValidationFlagsEXT = {\n";
+       s << "VkAndroidHardwareBufferPropertiesANDROID = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdisabledValidationCheckCount = " << value.disabledValidationCheckCount << '\n';
-       s << "\tpDisabledValidationChecks = " << value.pDisabledValidationChecks << '\n';
+       s << "\tallocationSize = " << value.allocationSize << '\n';
+       s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageViewASTCDecodeModeEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryGetAndroidHardwareBufferInfoANDROID& value)
 {
-       s << "VkImageViewASTCDecodeModeEXT = {\n";
+       s << "VkMemoryGetAndroidHardwareBufferInfoANDROID = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdecodeMode = " << value.decodeMode << '\n';
+       s << "\tmemory = " << value.memory << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceASTCDecodeFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatPropertiesANDROID& value)
 {
-       s << "VkPhysicalDeviceASTCDecodeFeaturesEXT = {\n";
+       s << "VkAndroidHardwareBufferFormatPropertiesANDROID = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdecodeModeSharedExponent = " << value.decodeModeSharedExponent << '\n';
+       s << "\tformat = " << value.format << '\n';
+       s << "\texternalFormat = " << value.externalFormat << '\n';
+       s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
+       s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
+       s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
+       s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
+       s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
+       s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineRobustnessFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceConditionalRenderingInfoEXT& value)
 {
-       s << "VkPhysicalDevicePipelineRobustnessFeaturesEXT = {\n";
+       s << "VkCommandBufferInheritanceConditionalRenderingInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpipelineRobustness = " << value.pipelineRobustness << '\n';
+       s << "\tconditionalRenderingEnable = " << value.conditionalRenderingEnable << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineRobustnessPropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkExternalFormatANDROID& value)
 {
-       s << "VkPhysicalDevicePipelineRobustnessPropertiesEXT = {\n";
+       s << "VkExternalFormatANDROID = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdefaultRobustnessStorageBuffers = " << value.defaultRobustnessStorageBuffers << '\n';
-       s << "\tdefaultRobustnessUniformBuffers = " << value.defaultRobustnessUniformBuffers << '\n';
-       s << "\tdefaultRobustnessVertexInputs = " << value.defaultRobustnessVertexInputs << '\n';
-       s << "\tdefaultRobustnessImages = " << value.defaultRobustnessImages << '\n';
+       s << "\texternalFormat = " << value.externalFormat << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineRobustnessCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice8BitStorageFeatures& value)
 {
-       s << "VkPipelineRobustnessCreateInfoEXT = {\n";
+       s << "VkPhysicalDevice8BitStorageFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tstorageBuffers = " << value.storageBuffers << '\n';
-       s << "\tuniformBuffers = " << value.uniformBuffers << '\n';
-       s << "\tvertexInputs = " << value.vertexInputs << '\n';
-       s << "\timages = " << value.images << '\n';
+       s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
+       s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
+       s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkConditionalRenderingBeginInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConditionalRenderingFeaturesEXT& value)
 {
-       s << "VkConditionalRenderingBeginInfoEXT = {\n";
+       s << "VkPhysicalDeviceConditionalRenderingFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tbuffer = " << value.buffer << '\n';
-       s << "\toffset = " << value.offset << '\n';
-       s << "\tflags = " << getConditionalRenderingFlagsEXTStr(value.flags) << '\n';
+       s << "\tconditionalRendering = " << value.conditionalRendering << '\n';
+       s << "\tinheritedConditionalRendering = " << value.inheritedConditionalRendering << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConditionalRenderingFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkanMemoryModelFeatures& value)
 {
-       s << "VkPhysicalDeviceConditionalRenderingFeaturesEXT = {\n";
+       s << "VkPhysicalDeviceVulkanMemoryModelFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tconditionalRendering = " << value.conditionalRendering << '\n';
-       s << "\tinheritedConditionalRendering = " << value.inheritedConditionalRendering << '\n';
+       s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
+       s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
+       s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceConditionalRenderingInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicInt64Features& value)
 {
-       s << "VkCommandBufferInheritanceConditionalRenderingInfoEXT = {\n";
+       s << "VkPhysicalDeviceShaderAtomicInt64Features = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tconditionalRenderingEnable = " << value.conditionalRenderingEnable << '\n';
+       s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
+       s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkViewportWScalingNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT& value)
 {
-       s << "VkViewportWScalingNV = {\n";
-       s << "\txcoeff = " << value.xcoeff << '\n';
-       s << "\tycoeff = " << value.ycoeff << '\n';
+       s << "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tshaderBufferFloat32Atomics = " << value.shaderBufferFloat32Atomics << '\n';
+       s << "\tshaderBufferFloat32AtomicAdd = " << value.shaderBufferFloat32AtomicAdd << '\n';
+       s << "\tshaderBufferFloat64Atomics = " << value.shaderBufferFloat64Atomics << '\n';
+       s << "\tshaderBufferFloat64AtomicAdd = " << value.shaderBufferFloat64AtomicAdd << '\n';
+       s << "\tshaderSharedFloat32Atomics = " << value.shaderSharedFloat32Atomics << '\n';
+       s << "\tshaderSharedFloat32AtomicAdd = " << value.shaderSharedFloat32AtomicAdd << '\n';
+       s << "\tshaderSharedFloat64Atomics = " << value.shaderSharedFloat64Atomics << '\n';
+       s << "\tshaderSharedFloat64AtomicAdd = " << value.shaderSharedFloat64AtomicAdd << '\n';
+       s << "\tshaderImageFloat32Atomics = " << value.shaderImageFloat32Atomics << '\n';
+       s << "\tshaderImageFloat32AtomicAdd = " << value.shaderImageFloat32AtomicAdd << '\n';
+       s << "\tsparseImageFloat32Atomics = " << value.sparseImageFloat32Atomics << '\n';
+       s << "\tsparseImageFloat32AtomicAdd = " << value.sparseImageFloat32AtomicAdd << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineViewportWScalingStateCreateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT& value)
 {
-       s << "VkPipelineViewportWScalingStateCreateInfoNV = {\n";
+       s << "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tviewportWScalingEnable = " << value.viewportWScalingEnable << '\n';
-       s << "\tviewportCount = " << value.viewportCount << '\n';
-       s << "\tpViewportWScalings = " << value.pViewportWScalings << '\n';
+       s << "\tshaderBufferFloat16Atomics = " << value.shaderBufferFloat16Atomics << '\n';
+       s << "\tshaderBufferFloat16AtomicAdd = " << value.shaderBufferFloat16AtomicAdd << '\n';
+       s << "\tshaderBufferFloat16AtomicMinMax = " << value.shaderBufferFloat16AtomicMinMax << '\n';
+       s << "\tshaderBufferFloat32AtomicMinMax = " << value.shaderBufferFloat32AtomicMinMax << '\n';
+       s << "\tshaderBufferFloat64AtomicMinMax = " << value.shaderBufferFloat64AtomicMinMax << '\n';
+       s << "\tshaderSharedFloat16Atomics = " << value.shaderSharedFloat16Atomics << '\n';
+       s << "\tshaderSharedFloat16AtomicAdd = " << value.shaderSharedFloat16AtomicAdd << '\n';
+       s << "\tshaderSharedFloat16AtomicMinMax = " << value.shaderSharedFloat16AtomicMinMax << '\n';
+       s << "\tshaderSharedFloat32AtomicMinMax = " << value.shaderSharedFloat32AtomicMinMax << '\n';
+       s << "\tshaderSharedFloat64AtomicMinMax = " << value.shaderSharedFloat64AtomicMinMax << '\n';
+       s << "\tshaderImageFloat32AtomicMinMax = " << value.shaderImageFloat32AtomicMinMax << '\n';
+       s << "\tsparseImageFloat32AtomicMinMax = " << value.sparseImageFloat32AtomicMinMax << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilities2EXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& value)
 {
-       s << "VkSurfaceCapabilities2EXT = {\n";
+       s << "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\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 << "\tvertexAttributeInstanceRateDivisor = " << value.vertexAttributeInstanceRateDivisor << '\n';
+       s << "\tvertexAttributeInstanceRateZeroDivisor = " << value.vertexAttributeInstanceRateZeroDivisor << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDisplayPowerInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointPropertiesNV& value)
 {
-       s << "VkDisplayPowerInfoEXT = {\n";
+       s << "VkQueueFamilyCheckpointPropertiesNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpowerState = " << value.powerState << '\n';
+       s << "\tcheckpointExecutionStageMask = " << getPipelineStageFlagsStr(value.checkpointExecutionStageMask) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceEventInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkCheckpointDataNV& value)
 {
-       s << "VkDeviceEventInfoEXT = {\n";
+       s << "VkCheckpointDataNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdeviceEvent = " << value.deviceEvent << '\n';
+       s << "\tstage = " << value.stage << '\n';
+       s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDisplayEventInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthStencilResolveProperties& value)
 {
-       s << "VkDisplayEventInfoEXT = {\n";
+       s << "VkPhysicalDeviceDepthStencilResolveProperties = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdisplayEvent = " << value.displayEvent << '\n';
+       s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
+       s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
+       s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
+       s << "\tindependentResolve = " << value.independentResolve << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSwapchainCounterCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkSubpassDescriptionDepthStencilResolve& value)
 {
-       s << "VkSwapchainCounterCreateInfoEXT = {\n";
+       s << "VkSubpassDescriptionDepthStencilResolve = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsurfaceCounters = " << getSurfaceCounterFlagsEXTStr(value.surfaceCounters) << '\n';
+       s << "\tdepthResolveMode = " << value.depthResolveMode << '\n';
+       s << "\tstencilResolveMode = " << value.stencilResolveMode << '\n';
+       s << "\tpDepthStencilResolveAttachment = " << value.pDepthStencilResolveAttachment << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkRefreshCycleDurationGOOGLE& value)
+std::ostream& operator<< (std::ostream& s, const VkImageViewASTCDecodeModeEXT& value)
 {
-       s << "VkRefreshCycleDurationGOOGLE = {\n";
-       s << "\trefreshDuration = " << value.refreshDuration << '\n';
+       s << "VkImageViewASTCDecodeModeEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tdecodeMode = " << value.decodeMode << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPastPresentationTimingGOOGLE& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceASTCDecodeFeaturesEXT& value)
 {
-       s << "VkPastPresentationTimingGOOGLE = {\n";
-       s << "\tpresentID = " << value.presentID << '\n';
-       s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
-       s << "\tactualPresentTime = " << value.actualPresentTime << '\n';
-       s << "\tearliestPresentTime = " << value.earliestPresentTime << '\n';
-       s << "\tpresentMargin = " << value.presentMargin << '\n';
+       s << "VkPhysicalDeviceASTCDecodeFeaturesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tdecodeModeSharedExponent = " << value.decodeModeSharedExponent << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPresentTimeGOOGLE& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackFeaturesEXT& value)
 {
-       s << "VkPresentTimeGOOGLE = {\n";
-       s << "\tpresentID = " << value.presentID << '\n';
-       s << "\tdesiredPresentTime = " << value.desiredPresentTime << '\n';
+       s << "VkPhysicalDeviceTransformFeedbackFeaturesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\ttransformFeedback = " << value.transformFeedback << '\n';
+       s << "\tgeometryStreams = " << value.geometryStreams << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPresentTimesInfoGOOGLE& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTransformFeedbackPropertiesEXT& value)
 {
-       s << "VkPresentTimesInfoGOOGLE = {\n";
+       s << "VkPhysicalDeviceTransformFeedbackPropertiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tswapchainCount = " << value.swapchainCount << '\n';
-       s << "\tpTimes = " << value.pTimes << '\n';
+       s << "\tmaxTransformFeedbackStreams = " << value.maxTransformFeedbackStreams << '\n';
+       s << "\tmaxTransformFeedbackBuffers = " << value.maxTransformFeedbackBuffers << '\n';
+       s << "\tmaxTransformFeedbackBufferSize = " << value.maxTransformFeedbackBufferSize << '\n';
+       s << "\tmaxTransformFeedbackStreamDataSize = " << value.maxTransformFeedbackStreamDataSize << '\n';
+       s << "\tmaxTransformFeedbackBufferDataSize = " << value.maxTransformFeedbackBufferDataSize << '\n';
+       s << "\tmaxTransformFeedbackBufferDataStride = " << value.maxTransformFeedbackBufferDataStride << '\n';
+       s << "\ttransformFeedbackQueries = " << value.transformFeedbackQueries << '\n';
+       s << "\ttransformFeedbackStreamsLinesTriangles = " << value.transformFeedbackStreamsLinesTriangles << '\n';
+       s << "\ttransformFeedbackRasterizationStreamSelect = " << value.transformFeedbackRasterizationStreamSelect << '\n';
+       s << "\ttransformFeedbackDraw = " << value.transformFeedbackDraw << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationStateStreamCreateInfoEXT& value)
 {
-       s << "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = {\n";
+       s << "VkPipelineRasterizationStateStreamCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tperViewPositionAllComponents = " << value.perViewPositionAllComponents << '\n';
+       s << "\tflags = " << getPipelineRasterizationStateStreamCreateFlagsEXTStr(value.flags) << '\n';
+       s << "\trasterizationStream = " << value.rasterizationStream << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkViewportSwizzleNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV& 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 << "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\trepresentativeFragmentTest = " << value.representativeFragmentTest << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineViewportSwizzleStateCreateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineRepresentativeFragmentTestStateCreateInfoNV& value)
 {
-       s << "VkPipelineViewportSwizzleStateCreateInfoNV = {\n";
+       s << "VkPipelineRepresentativeFragmentTestStateCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getPipelineViewportSwizzleStateCreateFlagsNVStr(value.flags) << '\n';
-       s << "\tviewportCount = " << value.viewportCount << '\n';
-       s << "\tpViewportSwizzles = " << value.pViewportSwizzles << '\n';
+       s << "\trepresentativeFragmentTestEnable = " << value.representativeFragmentTestEnable << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiscardRectanglePropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExclusiveScissorFeaturesNV& value)
 {
-       s << "VkPhysicalDeviceDiscardRectanglePropertiesEXT = {\n";
+       s << "VkPhysicalDeviceExclusiveScissorFeaturesNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxDiscardRectangles = " << value.maxDiscardRectangles << '\n';
+       s << "\texclusiveScissor = " << value.exclusiveScissor << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineDiscardRectangleStateCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineViewportExclusiveScissorStateCreateInfoNV& value)
 {
-       s << "VkPipelineDiscardRectangleStateCreateInfoEXT = {\n";
+       s << "VkPipelineViewportExclusiveScissorStateCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getPipelineDiscardRectangleStateCreateFlagsEXTStr(value.flags) << '\n';
-       s << "\tdiscardRectangleMode = " << value.discardRectangleMode << '\n';
-       s << "\tdiscardRectangleCount = " << value.discardRectangleCount << '\n';
-       s << "\tpDiscardRectangles = " << value.pDiscardRectangles << '\n';
+       s << "\texclusiveScissorCount = " << value.exclusiveScissorCount << '\n';
+       s << "\tpExclusiveScissors = " << value.pExclusiveScissors << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceConservativeRasterizationPropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCornerSampledImageFeaturesNV& value)
 {
-       s << "VkPhysicalDeviceConservativeRasterizationPropertiesEXT = {\n";
+       s << "VkPhysicalDeviceCornerSampledImageFeaturesNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tprimitiveOverestimationSize = " << value.primitiveOverestimationSize << '\n';
-       s << "\tmaxExtraPrimitiveOverestimationSize = " << value.maxExtraPrimitiveOverestimationSize << '\n';
-       s << "\textraPrimitiveOverestimationSizeGranularity = " << value.extraPrimitiveOverestimationSizeGranularity << '\n';
-       s << "\tprimitiveUnderestimation = " << value.primitiveUnderestimation << '\n';
-       s << "\tconservativePointAndLineRasterization = " << value.conservativePointAndLineRasterization << '\n';
-       s << "\tdegenerateTrianglesRasterized = " << value.degenerateTrianglesRasterized << '\n';
-       s << "\tdegenerateLinesRasterized = " << value.degenerateLinesRasterized << '\n';
-       s << "\tfullyCoveredFragmentShaderInputVariable = " << value.fullyCoveredFragmentShaderInputVariable << '\n';
-       s << "\tconservativeRasterizationPostDepthCoverage = " << value.conservativeRasterizationPostDepthCoverage << '\n';
+       s << "\tcornerSampledImage = " << value.cornerSampledImage << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationConservativeStateCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV& value)
 {
-       s << "VkPipelineRasterizationConservativeStateCreateInfoEXT = {\n";
+       s << "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getPipelineRasterizationConservativeStateCreateFlagsEXTStr(value.flags) << '\n';
-       s << "\tconservativeRasterizationMode = " << value.conservativeRasterizationMode << '\n';
-       s << "\textraPrimitiveOverestimationSize = " << value.extraPrimitiveOverestimationSize << '\n';
+       s << "\tcomputeDerivativeGroupQuads = " << value.computeDerivativeGroupQuads << '\n';
+       s << "\tcomputeDerivativeGroupLinear = " << value.computeDerivativeGroupLinear << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClipEnableFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageFootprintFeaturesNV& value)
 {
-       s << "VkPhysicalDeviceDepthClipEnableFeaturesEXT = {\n";
+       s << "VkPhysicalDeviceShaderImageFootprintFeaturesNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
+       s << "\timageFootprint = " << value.imageFootprint << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationDepthClipStateCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& value)
 {
-       s << "VkPipelineRasterizationDepthClipStateCreateInfoEXT = {\n";
+       s << "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getPipelineRasterizationDepthClipStateCreateFlagsEXTStr(value.flags) << '\n';
-       s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
+       s << "\tdedicatedAllocationImageAliasing = " << value.dedicatedAllocationImageAliasing << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkXYColorEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkShadingRatePaletteNV& value)
 {
-       s << "VkXYColorEXT = {\n";
-       s << "\tx = " << value.x << '\n';
-       s << "\ty = " << value.y << '\n';
+       s << "VkShadingRatePaletteNV = {\n";
+       s << "\tshadingRatePaletteEntryCount = " << value.shadingRatePaletteEntryCount << '\n';
+       s << "\tpShadingRatePaletteEntries = " << value.pShadingRatePaletteEntries << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkHdrMetadataEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineViewportShadingRateImageStateCreateInfoNV& value)
 {
-       s << "VkHdrMetadataEXT = {\n";
+       s << "VkPipelineViewportShadingRateImageStateCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\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 << "\tshadingRateImageEnable = " << value.shadingRateImageEnable << '\n';
+       s << "\tviewportCount = " << value.viewportCount << '\n';
+       s << "\tpShadingRatePalettes = " << value.pShadingRatePalettes << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDebugUtilsLabelEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImageFeaturesNV& value)
 {
-       s << "VkDebugUtilsLabelEXT = {\n";
+       s << "VkPhysicalDeviceShadingRateImageFeaturesNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpLabelName = " << getCharPtrStr(value.pLabelName) << '\n';
-       s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
+       s << "\tshadingRateImage = " << value.shadingRateImage << '\n';
+       s << "\tshadingRateCoarseSampleOrder = " << value.shadingRateCoarseSampleOrder << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectNameInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImagePropertiesNV& value)
 {
-       s << "VkDebugUtilsObjectNameInfoEXT = {\n";
+       s << "VkPhysicalDeviceShadingRateImagePropertiesNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tobjectType = " << value.objectType << '\n';
-       s << "\tobjectHandle = " << value.objectHandle << '\n';
-       s << "\tpObjectName = " << getCharPtrStr(value.pObjectName) << '\n';
+       s << "\tshadingRateTexelSize = " << value.shadingRateTexelSize << '\n';
+       s << "\tshadingRatePaletteSize = " << value.shadingRatePaletteSize << '\n';
+       s << "\tshadingRateMaxCoarseSamples = " << value.shadingRateMaxCoarseSamples << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCallbackDataEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI& value)
 {
-       s << "VkDebugUtilsMessengerCallbackDataEXT = {\n";
+       s << "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getDebugUtilsMessengerCallbackDataFlagsEXTStr(value.flags) << '\n';
-       s << "\tpMessageIdName = " << getCharPtrStr(value.pMessageIdName) << '\n';
-       s << "\tmessageIdNumber = " << value.messageIdNumber << '\n';
-       s << "\tpMessage = " << getCharPtrStr(value.pMessage) << '\n';
-       s << "\tqueueLabelCount = " << value.queueLabelCount << '\n';
-       s << "\tpQueueLabels = " << value.pQueueLabels << '\n';
-       s << "\tcmdBufLabelCount = " << value.cmdBufLabelCount << '\n';
-       s << "\tpCmdBufLabels = " << value.pCmdBufLabels << '\n';
-       s << "\tobjectCount = " << value.objectCount << '\n';
-       s << "\tpObjects = " << value.pObjects << '\n';
+       s << "\tinvocationMask = " << value.invocationMask << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkCoarseSampleLocationNV& value)
+{
+       s << "VkCoarseSampleLocationNV = {\n";
+       s << "\tpixelX = " << value.pixelX << '\n';
+       s << "\tpixelY = " << value.pixelY << '\n';
+       s << "\tsample = " << value.sample << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkCoarseSampleOrderCustomNV& value)
 {
-       s << "VkDebugUtilsMessengerCreateInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getDebugUtilsMessengerCreateFlagsEXTStr(value.flags) << '\n';
-       s << "\tmessageSeverity = " << getDebugUtilsMessageSeverityFlagsEXTStr(value.messageSeverity) << '\n';
-       s << "\tmessageType = " << getDebugUtilsMessageTypeFlagsEXTStr(value.messageType) << '\n';
-       s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
-       s << "\tpUserData = " << value.pUserData << '\n';
+       s << "VkCoarseSampleOrderCustomNV = {\n";
+       s << "\tshadingRate = " << value.shadingRate << '\n';
+       s << "\tsampleCount = " << value.sampleCount << '\n';
+       s << "\tsampleLocationCount = " << value.sampleLocationCount << '\n';
+       s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectTagInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV& value)
 {
-       s << "VkDebugUtilsObjectTagInfoEXT = {\n";
+       s << "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tobjectType = " << value.objectType << '\n';
-       s << "\tobjectHandle = " << value.objectHandle << '\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 VkSampleLocationEXT& value)
-{
-       s << "VkSampleLocationEXT = {\n";
-       s << "\tx = " << value.x << '\n';
-       s << "\ty = " << value.y << '\n';
+       s << "\tsampleOrderType = " << value.sampleOrderType << '\n';
+       s << "\tcustomSampleOrderCount = " << value.customSampleOrderCount << '\n';
+       s << "\tpCustomSampleOrders = " << value.pCustomSampleOrders << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSampleLocationsInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderFeaturesNV& value)
 {
-       s << "VkSampleLocationsInfoEXT = {\n";
+       s << "VkPhysicalDeviceMeshShaderFeaturesNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsampleLocationsPerPixel = " << value.sampleLocationsPerPixel << '\n';
-       s << "\tsampleLocationGridSize = " << value.sampleLocationGridSize << '\n';
-       s << "\tsampleLocationsCount = " << value.sampleLocationsCount << '\n';
-       s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
+       s << "\ttaskShader = " << value.taskShader << '\n';
+       s << "\tmeshShader = " << value.meshShader << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleLocationsEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderPropertiesNV& value)
 {
-       s << "VkAttachmentSampleLocationsEXT = {\n";
-       s << "\tattachmentIndex = " << value.attachmentIndex << '\n';
-       s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
+       s << "VkPhysicalDeviceMeshShaderPropertiesNV = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tmaxDrawMeshTasksCount = " << value.maxDrawMeshTasksCount << '\n';
+       s << "\tmaxTaskWorkGroupInvocations = " << value.maxTaskWorkGroupInvocations << '\n';
+       s << "\tmaxTaskWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxTaskWorkGroupSize), DE_ARRAY_END(value.maxTaskWorkGroupSize)) << '\n';
+       s << "\tmaxTaskTotalMemorySize = " << value.maxTaskTotalMemorySize << '\n';
+       s << "\tmaxTaskOutputCount = " << value.maxTaskOutputCount << '\n';
+       s << "\tmaxMeshWorkGroupInvocations = " << value.maxMeshWorkGroupInvocations << '\n';
+       s << "\tmaxMeshWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxMeshWorkGroupSize), DE_ARRAY_END(value.maxMeshWorkGroupSize)) << '\n';
+       s << "\tmaxMeshTotalMemorySize = " << value.maxMeshTotalMemorySize << '\n';
+       s << "\tmaxMeshOutputVertices = " << value.maxMeshOutputVertices << '\n';
+       s << "\tmaxMeshOutputPrimitives = " << value.maxMeshOutputPrimitives << '\n';
+       s << "\tmaxMeshMultiviewViewCount = " << value.maxMeshMultiviewViewCount << '\n';
+       s << "\tmeshOutputPerVertexGranularity = " << value.meshOutputPerVertexGranularity << '\n';
+       s << "\tmeshOutputPerPrimitiveGranularity = " << value.meshOutputPerPrimitiveGranularity << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSubpassSampleLocationsEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkDrawMeshTasksIndirectCommandNV& value)
 {
-       s << "VkSubpassSampleLocationsEXT = {\n";
-       s << "\tsubpassIndex = " << value.subpassIndex << '\n';
-       s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
+       s << "VkDrawMeshTasksIndirectCommandNV = {\n";
+       s << "\ttaskCount = " << value.taskCount << '\n';
+       s << "\tfirstTask = " << value.firstTask << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkRenderPassSampleLocationsBeginInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoNV& value)
 {
-       s << "VkRenderPassSampleLocationsBeginInfoEXT = {\n";
+       s << "VkRayTracingShaderGroupCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tattachmentInitialSampleLocationsCount = " << value.attachmentInitialSampleLocationsCount << '\n';
-       s << "\tpAttachmentInitialSampleLocations = " << value.pAttachmentInitialSampleLocations << '\n';
-       s << "\tpostSubpassSampleLocationsCount = " << value.postSubpassSampleLocationsCount << '\n';
-       s << "\tpPostSubpassSampleLocations = " << value.pPostSubpassSampleLocations << '\n';
+       s << "\ttype = " << value.type << '\n';
+       s << "\tgeneralShader = " << value.generalShader << '\n';
+       s << "\tclosestHitShader = " << value.closestHitShader << '\n';
+       s << "\tanyHitShader = " << value.anyHitShader << '\n';
+       s << "\tintersectionShader = " << value.intersectionShader << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineSampleLocationsStateCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoKHR& value)
 {
-       s << "VkPipelineSampleLocationsStateCreateInfoEXT = {\n";
+       s << "VkRayTracingShaderGroupCreateInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsampleLocationsEnable = " << value.sampleLocationsEnable << '\n';
-       s << "\tsampleLocationsInfo = " << value.sampleLocationsInfo << '\n';
+       s << "\ttype = " << value.type << '\n';
+       s << "\tgeneralShader = " << value.generalShader << '\n';
+       s << "\tclosestHitShader = " << value.closestHitShader << '\n';
+       s << "\tanyHitShader = " << value.anyHitShader << '\n';
+       s << "\tintersectionShader = " << value.intersectionShader << '\n';
+       s << "\tpShaderGroupCaptureReplayHandle = " << value.pShaderGroupCaptureReplayHandle << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSampleLocationsPropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoNV& value)
 {
-       s << "VkPhysicalDeviceSampleLocationsPropertiesEXT = {\n";
+       s << "VkRayTracingPipelineCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\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 << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
+       s << "\tstageCount = " << value.stageCount << '\n';
+       s << "\tpStages = " << value.pStages << '\n';
+       s << "\tgroupCount = " << value.groupCount << '\n';
+       s << "\tpGroups = " << value.pGroups << '\n';
+       s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
+       s << "\tlayout = " << value.layout << '\n';
+       s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
+       s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMultisamplePropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoKHR& value)
 {
-       s << "VkMultisamplePropertiesEXT = {\n";
+       s << "VkRayTracingPipelineCreateInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxSampleLocationGridSize = " << value.maxSampleLocationGridSize << '\n';
+       s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
+       s << "\tstageCount = " << value.stageCount << '\n';
+       s << "\tpStages = " << value.pStages << '\n';
+       s << "\tgroupCount = " << value.groupCount << '\n';
+       s << "\tpGroups = " << value.pGroups << '\n';
+       s << "\tmaxPipelineRayRecursionDepth = " << value.maxPipelineRayRecursionDepth << '\n';
+       s << "\tpLibraryInfo = " << value.pLibraryInfo << '\n';
+       s << "\tpLibraryInterface = " << value.pLibraryInterface << '\n';
+       s << "\tpDynamicState = " << value.pDynamicState << '\n';
+       s << "\tlayout = " << value.layout << '\n';
+       s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
+       s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkGeometryTrianglesNV& value)
 {
-       s << "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT = {\n";
+       s << "VkGeometryTrianglesNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tadvancedBlendCoherentOperations = " << value.advancedBlendCoherentOperations << '\n';
+       s << "\tvertexData = " << value.vertexData << '\n';
+       s << "\tvertexOffset = " << value.vertexOffset << '\n';
+       s << "\tvertexCount = " << value.vertexCount << '\n';
+       s << "\tvertexStride = " << value.vertexStride << '\n';
+       s << "\tvertexFormat = " << value.vertexFormat << '\n';
+       s << "\tindexData = " << value.indexData << '\n';
+       s << "\tindexOffset = " << value.indexOffset << '\n';
+       s << "\tindexCount = " << value.indexCount << '\n';
+       s << "\tindexType = " << value.indexType << '\n';
+       s << "\ttransformData = " << value.transformData << '\n';
+       s << "\ttransformOffset = " << value.transformOffset << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkGeometryAABBNV& value)
 {
-       s << "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT = {\n";
+       s << "VkGeometryAABBNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\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 << "\taabbData = " << value.aabbData << '\n';
+       s << "\tnumAABBs = " << value.numAABBs << '\n';
+       s << "\tstride = " << value.stride << '\n';
+       s << "\toffset = " << value.offset << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineColorBlendAdvancedStateCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkGeometryDataNV& value)
 {
-       s << "VkPipelineColorBlendAdvancedStateCreateInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrcPremultiplied = " << value.srcPremultiplied << '\n';
-       s << "\tdstPremultiplied = " << value.dstPremultiplied << '\n';
-       s << "\tblendOverlap = " << value.blendOverlap << '\n';
+       s << "VkGeometryDataNV = {\n";
+       s << "\ttriangles = " << value.triangles << '\n';
+       s << "\taabbs = " << value.aabbs << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageToColorStateCreateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkGeometryNV& value)
 {
-       s << "VkPipelineCoverageToColorStateCreateInfoNV = {\n";
+       s << "VkGeometryNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getPipelineCoverageToColorStateCreateFlagsNVStr(value.flags) << '\n';
-       s << "\tcoverageToColorEnable = " << value.coverageToColorEnable << '\n';
-       s << "\tcoverageToColorLocation = " << value.coverageToColorLocation << '\n';
+       s << "\tgeometryType = " << value.geometryType << '\n';
+       s << "\tgeometry = " << value.geometry << '\n';
+       s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageModulationStateCreateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInfoNV& value)
 {
-       s << "VkPipelineCoverageModulationStateCreateInfoNV = {\n";
+       s << "VkAccelerationStructureInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\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 << "\ttype = " << value.type << '\n';
+       s << "\tflags = " << value.flags << '\n';
+       s << "\tinstanceCount = " << value.instanceCount << '\n';
+       s << "\tgeometryCount = " << value.geometryCount << '\n';
+       s << "\tpGeometries = " << value.pGeometries << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoNV& value)
 {
-       s << "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV = {\n";
+       s << "VkAccelerationStructureCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderSMCount = " << value.shaderSMCount << '\n';
-       s << "\tshaderWarpsPerSM = " << value.shaderWarpsPerSM << '\n';
+       s << "\tcompactedSize = " << value.compactedSize << '\n';
+       s << "\tinfo = " << value.info << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkBindAccelerationStructureMemoryInfoNV& value)
 {
-       s << "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV = {\n";
+       s << "VkBindAccelerationStructureMemoryInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderSMBuiltins = " << value.shaderSMBuiltins << '\n';
+       s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
+       s << "\tmemory = " << value.memory << '\n';
+       s << "\tmemoryOffset = " << value.memoryOffset << '\n';
+       s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
+       s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureKHR& value)
 {
-       s << "VkDrmFormatModifierPropertiesEXT = {\n";
-       s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
-       s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
-       s << "\tdrmFormatModifierTilingFeatures = " << getFormatFeatureFlagsStr(value.drmFormatModifierTilingFeatures) << '\n';
+       s << "VkWriteDescriptorSetAccelerationStructureKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
+       s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesListEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureNV& value)
 {
-       s << "VkDrmFormatModifierPropertiesListEXT = {\n";
+       s << "VkWriteDescriptorSetAccelerationStructureNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
-       s << "\tpDrmFormatModifierProperties = " << value.pDrmFormatModifierProperties << '\n';
+       s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
+       s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageDrmFormatModifierInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMemoryRequirementsInfoNV& value)
 {
-       s << "VkPhysicalDeviceImageDrmFormatModifierInfoEXT = {\n";
+       s << "VkAccelerationStructureMemoryRequirementsInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
-       s << "\tsharingMode = " << value.sharingMode << '\n';
-       s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
-       s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
+       s << "\ttype = " << value.type << '\n';
+       s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierListCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructureFeaturesKHR& value)
 {
-       s << "VkImageDrmFormatModifierListCreateInfoEXT = {\n";
+       s << "VkPhysicalDeviceAccelerationStructureFeaturesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
-       s << "\tpDrmFormatModifiers = " << value.pDrmFormatModifiers << '\n';
+       s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
+       s << "\taccelerationStructureCaptureReplay = " << value.accelerationStructureCaptureReplay << '\n';
+       s << "\taccelerationStructureIndirectBuild = " << value.accelerationStructureIndirectBuild << '\n';
+       s << "\taccelerationStructureHostCommands = " << value.accelerationStructureHostCommands << '\n';
+       s << "\tdescriptorBindingAccelerationStructureUpdateAfterBind = " << value.descriptorBindingAccelerationStructureUpdateAfterBind << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierExplicitCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelineFeaturesKHR& value)
 {
-       s << "VkImageDrmFormatModifierExplicitCreateInfoEXT = {\n";
+       s << "VkPhysicalDeviceRayTracingPipelineFeaturesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
-       s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
-       s << "\tpPlaneLayouts = " << value.pPlaneLayouts << '\n';
+       s << "\trayTracingPipeline = " << value.rayTracingPipeline << '\n';
+       s << "\trayTracingPipelineShaderGroupHandleCaptureReplay = " << value.rayTracingPipelineShaderGroupHandleCaptureReplay << '\n';
+       s << "\trayTracingPipelineShaderGroupHandleCaptureReplayMixed = " << value.rayTracingPipelineShaderGroupHandleCaptureReplayMixed << '\n';
+       s << "\trayTracingPipelineTraceRaysIndirect = " << value.rayTracingPipelineTraceRaysIndirect << '\n';
+       s << "\trayTraversalPrimitiveCulling = " << value.rayTraversalPrimitiveCulling << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierPropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayQueryFeaturesKHR& value)
 {
-       s << "VkImageDrmFormatModifierPropertiesEXT = {\n";
+       s << "VkPhysicalDeviceRayQueryFeaturesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
+       s << "\trayQuery = " << value.rayQuery << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierProperties2EXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructurePropertiesKHR& value)
 {
-       s << "VkDrmFormatModifierProperties2EXT = {\n";
-       s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
-       s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
-       s << "\tdrmFormatModifierTilingFeatures = " << value.drmFormatModifierTilingFeatures << '\n';
+       s << "VkPhysicalDeviceAccelerationStructurePropertiesKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
+       s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
+       s << "\tmaxPrimitiveCount = " << value.maxPrimitiveCount << '\n';
+       s << "\tmaxPerStageDescriptorAccelerationStructures = " << value.maxPerStageDescriptorAccelerationStructures << '\n';
+       s << "\tmaxPerStageDescriptorUpdateAfterBindAccelerationStructures = " << value.maxPerStageDescriptorUpdateAfterBindAccelerationStructures << '\n';
+       s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
+       s << "\tmaxDescriptorSetUpdateAfterBindAccelerationStructures = " << value.maxDescriptorSetUpdateAfterBindAccelerationStructures << '\n';
+       s << "\tminAccelerationStructureScratchOffsetAlignment = " << value.minAccelerationStructureScratchOffsetAlignment << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesList2EXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelinePropertiesKHR& value)
 {
-       s << "VkDrmFormatModifierPropertiesList2EXT = {\n";
+       s << "VkPhysicalDeviceRayTracingPipelinePropertiesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
-       s << "\tpDrmFormatModifierProperties = " << value.pDrmFormatModifierProperties << '\n';
+       s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
+       s << "\tmaxRayRecursionDepth = " << value.maxRayRecursionDepth << '\n';
+       s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
+       s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
+       s << "\tshaderGroupHandleCaptureReplaySize = " << value.shaderGroupHandleCaptureReplaySize << '\n';
+       s << "\tmaxRayDispatchInvocationCount = " << value.maxRayDispatchInvocationCount << '\n';
+       s << "\tshaderGroupHandleAlignment = " << value.shaderGroupHandleAlignment << '\n';
+       s << "\tmaxRayHitAttributeSize = " << value.maxRayHitAttributeSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkValidationCacheCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPropertiesNV& value)
 {
-       s << "VkValidationCacheCreateInfoEXT = {\n";
+       s << "VkPhysicalDeviceRayTracingPropertiesNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getValidationCacheCreateFlagsEXTStr(value.flags) << '\n';
-       s << "\tinitialDataSize = " << value.initialDataSize << '\n';
-       s << "\tpInitialData = " << value.pInitialData << '\n';
+       s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
+       s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
+       s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
+       s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
+       s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
+       s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
+       s << "\tmaxTriangleCount = " << value.maxTriangleCount << '\n';
+       s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkShaderModuleValidationCacheCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkStridedDeviceAddressRegionKHR& value)
 {
-       s << "VkShaderModuleValidationCacheCreateInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tvalidationCache = " << value.validationCache << '\n';
+       s << "VkStridedDeviceAddressRegionKHR = {\n";
+       s << "\tdeviceAddress = " << value.deviceAddress << '\n';
+       s << "\tstride = " << value.stride << '\n';
+       s << "\tsize = " << value.size << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkShadingRatePaletteNV& value)
+std::ostream& operator<< (std::ostream& s, const VkTraceRaysIndirectCommandKHR& value)
 {
-       s << "VkShadingRatePaletteNV = {\n";
-       s << "\tshadingRatePaletteEntryCount = " << value.shadingRatePaletteEntryCount << '\n';
-       s << "\tpShadingRatePaletteEntries = " << value.pShadingRatePaletteEntries << '\n';
+       s << "VkTraceRaysIndirectCommandKHR = {\n";
+       s << "\twidth = " << value.width << '\n';
+       s << "\theight = " << value.height << '\n';
+       s << "\tdepth = " << value.depth << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineViewportShadingRateImageStateCreateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkTraceRaysIndirectCommand2KHR& value)
 {
-       s << "VkPipelineViewportShadingRateImageStateCreateInfoNV = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshadingRateImageEnable = " << value.shadingRateImageEnable << '\n';
-       s << "\tviewportCount = " << value.viewportCount << '\n';
-       s << "\tpShadingRatePalettes = " << value.pShadingRatePalettes << '\n';
+       s << "VkTraceRaysIndirectCommand2KHR = {\n";
+       s << "\traygenShaderRecordAddress = " << value.raygenShaderRecordAddress << '\n';
+       s << "\traygenShaderRecordSize = " << value.raygenShaderRecordSize << '\n';
+       s << "\tmissShaderBindingTableAddress = " << value.missShaderBindingTableAddress << '\n';
+       s << "\tmissShaderBindingTableSize = " << value.missShaderBindingTableSize << '\n';
+       s << "\tmissShaderBindingTableStride = " << value.missShaderBindingTableStride << '\n';
+       s << "\thitShaderBindingTableAddress = " << value.hitShaderBindingTableAddress << '\n';
+       s << "\thitShaderBindingTableSize = " << value.hitShaderBindingTableSize << '\n';
+       s << "\thitShaderBindingTableStride = " << value.hitShaderBindingTableStride << '\n';
+       s << "\tcallableShaderBindingTableAddress = " << value.callableShaderBindingTableAddress << '\n';
+       s << "\tcallableShaderBindingTableSize = " << value.callableShaderBindingTableSize << '\n';
+       s << "\tcallableShaderBindingTableStride = " << value.callableShaderBindingTableStride << '\n';
+       s << "\twidth = " << value.width << '\n';
+       s << "\theight = " << value.height << '\n';
+       s << "\tdepth = " << value.depth << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImageFeaturesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR& value)
 {
-       s << "VkPhysicalDeviceShadingRateImageFeaturesNV = {\n";
+       s << "VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshadingRateImage = " << value.shadingRateImage << '\n';
-       s << "\tshadingRateCoarseSampleOrder = " << value.shadingRateCoarseSampleOrder << '\n';
+       s << "\trayTracingMaintenance1 = " << value.rayTracingMaintenance1 << '\n';
+       s << "\trayTracingPipelineTraceRaysIndirect2 = " << value.rayTracingPipelineTraceRaysIndirect2 << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShadingRateImagePropertiesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesListEXT& value)
 {
-       s << "VkPhysicalDeviceShadingRateImagePropertiesNV = {\n";
+       s << "VkDrmFormatModifierPropertiesListEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshadingRateTexelSize = " << value.shadingRateTexelSize << '\n';
-       s << "\tshadingRatePaletteSize = " << value.shadingRatePaletteSize << '\n';
-       s << "\tshadingRateMaxCoarseSamples = " << value.shadingRateMaxCoarseSamples << '\n';
+       s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
+       s << "\tpDrmFormatModifierProperties = " << value.pDrmFormatModifierProperties << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCoarseSampleLocationNV& value)
+std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesEXT& value)
 {
-       s << "VkCoarseSampleLocationNV = {\n";
-       s << "\tpixelX = " << value.pixelX << '\n';
-       s << "\tpixelY = " << value.pixelY << '\n';
-       s << "\tsample = " << value.sample << '\n';
+       s << "VkDrmFormatModifierPropertiesEXT = {\n";
+       s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
+       s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
+       s << "\tdrmFormatModifierTilingFeatures = " << getFormatFeatureFlagsStr(value.drmFormatModifierTilingFeatures) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCoarseSampleOrderCustomNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageDrmFormatModifierInfoEXT& value)
 {
-       s << "VkCoarseSampleOrderCustomNV = {\n";
-       s << "\tshadingRate = " << value.shadingRate << '\n';
-       s << "\tsampleCount = " << value.sampleCount << '\n';
-       s << "\tsampleLocationCount = " << value.sampleLocationCount << '\n';
-       s << "\tpSampleLocations = " << value.pSampleLocations << '\n';
+       s << "VkPhysicalDeviceImageDrmFormatModifierInfoEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
+       s << "\tsharingMode = " << value.sharingMode << '\n';
+       s << "\tqueueFamilyIndexCount = " << value.queueFamilyIndexCount << '\n';
+       s << "\tpQueueFamilyIndices = " << value.pQueueFamilyIndices << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierListCreateInfoEXT& value)
 {
-       s << "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV = {\n";
+       s << "VkImageDrmFormatModifierListCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsampleOrderType = " << value.sampleOrderType << '\n';
-       s << "\tcustomSampleOrderCount = " << value.customSampleOrderCount << '\n';
-       s << "\tpCustomSampleOrders = " << value.pCustomSampleOrders << '\n';
+       s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
+       s << "\tpDrmFormatModifiers = " << value.pDrmFormatModifiers << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierExplicitCreateInfoEXT& value)
 {
-       s << "VkRayTracingShaderGroupCreateInfoNV = {\n";
+       s << "VkImageDrmFormatModifierExplicitCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttype = " << value.type << '\n';
-       s << "\tgeneralShader = " << value.generalShader << '\n';
-       s << "\tclosestHitShader = " << value.closestHitShader << '\n';
-       s << "\tanyHitShader = " << value.anyHitShader << '\n';
-       s << "\tintersectionShader = " << value.intersectionShader << '\n';
+       s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
+       s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
+       s << "\tpPlaneLayouts = " << value.pPlaneLayouts << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkImageDrmFormatModifierPropertiesEXT& value)
 {
-       s << "VkRayTracingPipelineCreateInfoNV = {\n";
+       s << "VkImageDrmFormatModifierPropertiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
-       s << "\tstageCount = " << value.stageCount << '\n';
-       s << "\tpStages = " << value.pStages << '\n';
-       s << "\tgroupCount = " << value.groupCount << '\n';
-       s << "\tpGroups = " << value.pGroups << '\n';
-       s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
-       s << "\tlayout = " << value.layout << '\n';
-       s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
-       s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
+       s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkGeometryTrianglesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkImageStencilUsageCreateInfo& value)
 {
-       s << "VkGeometryTrianglesNV = {\n";
+       s << "VkImageStencilUsageCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tvertexData = " << value.vertexData << '\n';
-       s << "\tvertexOffset = " << value.vertexOffset << '\n';
-       s << "\tvertexCount = " << value.vertexCount << '\n';
-       s << "\tvertexStride = " << value.vertexStride << '\n';
-       s << "\tvertexFormat = " << value.vertexFormat << '\n';
-       s << "\tindexData = " << value.indexData << '\n';
-       s << "\tindexOffset = " << value.indexOffset << '\n';
-       s << "\tindexCount = " << value.indexCount << '\n';
-       s << "\tindexType = " << value.indexType << '\n';
-       s << "\ttransformData = " << value.transformData << '\n';
-       s << "\ttransformOffset = " << value.transformOffset << '\n';
+       s << "\tstencilUsage = " << getImageUsageFlagsStr(value.stencilUsage) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkGeometryAABBNV& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOverallocationCreateInfoAMD& value)
 {
-       s << "VkGeometryAABBNV = {\n";
+       s << "VkDeviceMemoryOverallocationCreateInfoAMD = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\taabbData = " << value.aabbData << '\n';
-       s << "\tnumAABBs = " << value.numAABBs << '\n';
-       s << "\tstride = " << value.stride << '\n';
-       s << "\toffset = " << value.offset << '\n';
+       s << "\toverallocationBehavior = " << value.overallocationBehavior << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkGeometryDataNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapFeaturesEXT& value)
 {
-       s << "VkGeometryDataNV = {\n";
-       s << "\ttriangles = " << value.triangles << '\n';
-       s << "\taabbs = " << value.aabbs << '\n';
+       s << "VkPhysicalDeviceFragmentDensityMapFeaturesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tfragmentDensityMap = " << value.fragmentDensityMap << '\n';
+       s << "\tfragmentDensityMapDynamic = " << value.fragmentDensityMapDynamic << '\n';
+       s << "\tfragmentDensityMapNonSubsampledImages = " << value.fragmentDensityMapNonSubsampledImages << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkGeometryNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT& value)
 {
-       s << "VkGeometryNV = {\n";
+       s << "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tgeometryType = " << value.geometryType << '\n';
-       s << "\tgeometry = " << value.geometry << '\n';
-       s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
+       s << "\tfragmentDensityMapDeferred = " << value.fragmentDensityMapDeferred << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM& value)
 {
-       s << "VkAccelerationStructureInfoNV = {\n";
+       s << "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttype = " << value.type << '\n';
-       s << "\tflags = " << getBuildAccelerationStructureFlagsNVStr(value.flags) << '\n';
-       s << "\tinstanceCount = " << value.instanceCount << '\n';
-       s << "\tgeometryCount = " << value.geometryCount << '\n';
-       s << "\tpGeometries = " << value.pGeometries << '\n';
+       s << "\tfragmentDensityMapOffset = " << value.fragmentDensityMapOffset << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapPropertiesEXT& value)
 {
-       s << "VkAccelerationStructureCreateInfoNV = {\n";
+       s << "VkPhysicalDeviceFragmentDensityMapPropertiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcompactedSize = " << value.compactedSize << '\n';
-       s << "\tinfo = " << value.info << '\n';
+       s << "\tminFragmentDensityTexelSize = " << value.minFragmentDensityTexelSize << '\n';
+       s << "\tmaxFragmentDensityTexelSize = " << value.maxFragmentDensityTexelSize << '\n';
+       s << "\tfragmentDensityInvocations = " << value.fragmentDensityInvocations << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBindAccelerationStructureMemoryInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT& value)
 {
-       s << "VkBindAccelerationStructureMemoryInfoNV = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
-       s << "\tmemory = " << value.memory << '\n';
-       s << "\tmemoryOffset = " << value.memoryOffset << '\n';
-       s << "\tdeviceIndexCount = " << value.deviceIndexCount << '\n';
-       s << "\tpDeviceIndices = " << value.pDeviceIndices << '\n';
+       s << "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tsubsampledLoads = " << value.subsampledLoads << '\n';
+       s << "\tsubsampledCoarseReconstructionEarlyAccess = " << value.subsampledCoarseReconstructionEarlyAccess << '\n';
+       s << "\tmaxSubsampledArrayLayers = " << value.maxSubsampledArrayLayers << '\n';
+       s << "\tmaxDescriptorSetSubsampledSamplers = " << value.maxDescriptorSetSubsampledSamplers << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM& value)
 {
-       s << "VkWriteDescriptorSetAccelerationStructureNV = {\n";
+       s << "VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
-       s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
+       s << "\tfragmentDensityOffsetGranularity = " << value.fragmentDensityOffsetGranularity << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMemoryRequirementsInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkRenderPassFragmentDensityMapCreateInfoEXT& value)
 {
-       s << "VkAccelerationStructureMemoryRequirementsInfoNV = {\n";
+       s << "VkRenderPassFragmentDensityMapCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttype = " << value.type << '\n';
-       s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
+       s << "\tfragmentDensityMapAttachment = " << value.fragmentDensityMapAttachment << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPropertiesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkSubpassFragmentDensityMapOffsetEndInfoQCOM& value)
 {
-       s << "VkPhysicalDeviceRayTracingPropertiesNV = {\n";
+       s << "VkSubpassFragmentDensityMapOffsetEndInfoQCOM = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
-       s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
-       s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
-       s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
-       s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
-       s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
-       s << "\tmaxTriangleCount = " << value.maxTriangleCount << '\n';
-       s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
+       s << "\tfragmentDensityOffsetCount = " << value.fragmentDensityOffsetCount << '\n';
+       s << "\tpFragmentDensityOffsets = " << value.pFragmentDensityOffsets << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkTransformMatrixKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceScalarBlockLayoutFeatures& value)
 {
-       s << "VkTransformMatrixKHR = {\n";
-       s << "\tmatrix = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.matrix), DE_ARRAY_END(value.matrix)) << '\n';
+       s << "VkPhysicalDeviceScalarBlockLayoutFeatures = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAabbPositionsKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkSurfaceProtectedCapabilitiesKHR& value)
 {
-       s << "VkAabbPositionsKHR = {\n";
-       s << "\tminX = " << value.minX << '\n';
-       s << "\tminY = " << value.minY << '\n';
-       s << "\tminZ = " << value.minZ << '\n';
-       s << "\tmaxX = " << value.maxX << '\n';
-       s << "\tmaxY = " << value.maxY << '\n';
-       s << "\tmaxZ = " << value.maxZ << '\n';
+       s << "VkSurfaceProtectedCapabilitiesKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tsupportsProtected = " << value.supportsProtected << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInstanceKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceUniformBufferStandardLayoutFeatures& value)
 {
-       s << "VkAccelerationStructureInstanceKHR = {\n";
-       s << "\ttransform = " << value.transform << '\n';
-       s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
-       s << "\tmask = " << value.mask << '\n';
-       s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
-       s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
-       s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
+       s << "VkPhysicalDeviceUniformBufferStandardLayoutFeatures = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClipEnableFeaturesEXT& value)
 {
-       s << "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV = {\n";
+       s << "VkPhysicalDeviceDepthClipEnableFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\trepresentativeFragmentTest = " << value.representativeFragmentTest << '\n';
+       s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineRepresentativeFragmentTestStateCreateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationDepthClipStateCreateInfoEXT& value)
 {
-       s << "VkPipelineRepresentativeFragmentTestStateCreateInfoNV = {\n";
+       s << "VkPipelineRasterizationDepthClipStateCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\trepresentativeFragmentTestEnable = " << value.representativeFragmentTestEnable << '\n';
+       s << "\tflags = " << getPipelineRasterizationDepthClipStateCreateFlagsEXTStr(value.flags) << '\n';
+       s << "\tdepthClipEnable = " << value.depthClipEnable << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageViewImageFormatInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryBudgetPropertiesEXT& value)
 {
-       s << "VkPhysicalDeviceImageViewImageFormatInfoEXT = {\n";
+       s << "VkPhysicalDeviceMemoryBudgetPropertiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\timageViewType = " << value.imageViewType << '\n';
+       s << "\theapBudget = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapBudget), DE_ARRAY_END(value.heapBudget)) << '\n';
+       s << "\theapUsage = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapUsage), DE_ARRAY_END(value.heapUsage)) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkFilterCubicImageViewImageFormatPropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryPriorityFeaturesEXT& value)
 {
-       s << "VkFilterCubicImageViewImageFormatPropertiesEXT = {\n";
+       s << "VkPhysicalDeviceMemoryPriorityFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfilterCubic = " << value.filterCubic << '\n';
-       s << "\tfilterCubicMinmax = " << value.filterCubicMinmax << '\n';
+       s << "\tmemoryPriority = " << value.memoryPriority << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportMemoryHostPointerInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryPriorityAllocateInfoEXT& value)
 {
-       s << "VkImportMemoryHostPointerInfoEXT = {\n";
+       s << "VkMemoryPriorityAllocateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
-       s << "\tpHostPointer = " << value.pHostPointer << '\n';
+       s << "\tpriority = " << value.priority << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryHostPointerPropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT& value)
 {
-       s << "VkMemoryHostPointerPropertiesEXT = {\n";
+       s << "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
+       s << "\tpageableDeviceLocalMemory = " << value.pageableDeviceLocalMemory << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryHostPropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeatures& value)
 {
-       s << "VkPhysicalDeviceExternalMemoryHostPropertiesEXT = {\n";
+       s << "VkPhysicalDeviceBufferDeviceAddressFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tminImportedHostPointerAlignment = " << value.minImportedHostPointerAlignment << '\n';
+       s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
+       s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
+       s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineCompilerControlCreateInfoAMD& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT& value)
 {
-       s << "VkPipelineCompilerControlCreateInfoAMD = {\n";
+       s << "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcompilerControlFlags = " << getPipelineCompilerControlFlagsAMDStr(value.compilerControlFlags) << '\n';
+       s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
+       s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
+       s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCalibratedTimestampInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressInfo& value)
 {
-       s << "VkCalibratedTimestampInfoEXT = {\n";
+       s << "VkBufferDeviceAddressInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttimeDomain = " << value.timeDomain << '\n';
+       s << "\tbuffer = " << value.buffer << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCorePropertiesAMD& value)
+std::ostream& operator<< (std::ostream& s, const VkBufferOpaqueCaptureAddressCreateInfo& value)
 {
-       s << "VkPhysicalDeviceShaderCorePropertiesAMD = {\n";
+       s << "VkBufferOpaqueCaptureAddressCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderEngineCount = " << value.shaderEngineCount << '\n';
-       s << "\tshaderArraysPerEngineCount = " << value.shaderArraysPerEngineCount << '\n';
-       s << "\tcomputeUnitsPerShaderArray = " << value.computeUnitsPerShaderArray << '\n';
-       s << "\tsimdPerComputeUnit = " << value.simdPerComputeUnit << '\n';
-       s << "\twavefrontsPerSimd = " << value.wavefrontsPerSimd << '\n';
-       s << "\twavefrontSize = " << value.wavefrontSize << '\n';
-       s << "\tsgprsPerSimd = " << value.sgprsPerSimd << '\n';
-       s << "\tminSgprAllocation = " << value.minSgprAllocation << '\n';
-       s << "\tmaxSgprAllocation = " << value.maxSgprAllocation << '\n';
-       s << "\tsgprAllocationGranularity = " << value.sgprAllocationGranularity << '\n';
-       s << "\tvgprsPerSimd = " << value.vgprsPerSimd << '\n';
-       s << "\tminVgprAllocation = " << value.minVgprAllocation << '\n';
-       s << "\tmaxVgprAllocation = " << value.maxVgprAllocation << '\n';
-       s << "\tvgprAllocationGranularity = " << value.vgprAllocationGranularity << '\n';
+       s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOverallocationCreateInfoAMD& value)
+std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressCreateInfoEXT& value)
 {
-       s << "VkDeviceMemoryOverallocationCreateInfoAMD = {\n";
+       s << "VkBufferDeviceAddressCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\toverallocationBehavior = " << value.overallocationBehavior << '\n';
+       s << "\tdeviceAddress = " << value.deviceAddress << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageViewImageFormatInfoEXT& value)
 {
-       s << "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT = {\n";
+       s << "VkPhysicalDeviceImageViewImageFormatInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxVertexAttribDivisor = " << value.maxVertexAttribDivisor << '\n';
+       s << "\timageViewType = " << value.imageViewType << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDivisorDescriptionEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkFilterCubicImageViewImageFormatPropertiesEXT& value)
 {
-       s << "VkVertexInputBindingDivisorDescriptionEXT = {\n";
-       s << "\tbinding = " << value.binding << '\n';
-       s << "\tdivisor = " << value.divisor << '\n';
+       s << "VkFilterCubicImageViewImageFormatPropertiesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tfilterCubic = " << value.filterCubic << '\n';
+       s << "\tfilterCubicMinmax = " << value.filterCubicMinmax << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineVertexInputDivisorStateCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImagelessFramebufferFeatures& value)
 {
-       s << "VkPipelineVertexInputDivisorStateCreateInfoEXT = {\n";
+       s << "VkPhysicalDeviceImagelessFramebufferFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tvertexBindingDivisorCount = " << value.vertexBindingDivisorCount << '\n';
-       s << "\tpVertexBindingDivisors = " << value.pVertexBindingDivisors << '\n';
+       s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkFramebufferAttachmentsCreateInfo& value)
 {
-       s << "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT = {\n";
+       s << "VkFramebufferAttachmentsCreateInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tvertexAttributeInstanceRateDivisor = " << value.vertexAttributeInstanceRateDivisor << '\n';
-       s << "\tvertexAttributeInstanceRateZeroDivisor = " << value.vertexAttributeInstanceRateZeroDivisor << '\n';
+       s << "\tattachmentImageInfoCount = " << value.attachmentImageInfoCount << '\n';
+       s << "\tpAttachmentImageInfos = " << value.pAttachmentImageInfos << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkFramebufferAttachmentImageInfo& value)
 {
-       s << "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV = {\n";
+       s << "VkFramebufferAttachmentImageInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcomputeDerivativeGroupQuads = " << value.computeDerivativeGroupQuads << '\n';
-       s << "\tcomputeDerivativeGroupLinear = " << value.computeDerivativeGroupLinear << '\n';
+       s << "\tflags = " << getImageCreateFlagsStr(value.flags) << '\n';
+       s << "\tusage = " << getImageUsageFlagsStr(value.usage) << '\n';
+       s << "\twidth = " << value.width << '\n';
+       s << "\theight = " << value.height << '\n';
+       s << "\tlayerCount = " << value.layerCount << '\n';
+       s << "\tviewFormatCount = " << value.viewFormatCount << '\n';
+       s << "\tpViewFormats = " << value.pViewFormats << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderFeaturesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkRenderPassAttachmentBeginInfo& value)
 {
-       s << "VkPhysicalDeviceMeshShaderFeaturesNV = {\n";
+       s << "VkRenderPassAttachmentBeginInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttaskShader = " << value.taskShader << '\n';
-       s << "\tmeshShader = " << value.meshShader << '\n';
+       s << "\tattachmentCount = " << value.attachmentCount << '\n';
+       s << "\tpAttachments = " << value.pAttachments << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMeshShaderPropertiesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTextureCompressionASTCHDRFeatures& value)
 {
-       s << "VkPhysicalDeviceMeshShaderPropertiesNV = {\n";
+       s << "VkPhysicalDeviceTextureCompressionASTCHDRFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxDrawMeshTasksCount = " << value.maxDrawMeshTasksCount << '\n';
-       s << "\tmaxTaskWorkGroupInvocations = " << value.maxTaskWorkGroupInvocations << '\n';
-       s << "\tmaxTaskWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxTaskWorkGroupSize), DE_ARRAY_END(value.maxTaskWorkGroupSize)) << '\n';
-       s << "\tmaxTaskTotalMemorySize = " << value.maxTaskTotalMemorySize << '\n';
-       s << "\tmaxTaskOutputCount = " << value.maxTaskOutputCount << '\n';
-       s << "\tmaxMeshWorkGroupInvocations = " << value.maxMeshWorkGroupInvocations << '\n';
-       s << "\tmaxMeshWorkGroupSize = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.maxMeshWorkGroupSize), DE_ARRAY_END(value.maxMeshWorkGroupSize)) << '\n';
-       s << "\tmaxMeshTotalMemorySize = " << value.maxMeshTotalMemorySize << '\n';
-       s << "\tmaxMeshOutputVertices = " << value.maxMeshOutputVertices << '\n';
-       s << "\tmaxMeshOutputPrimitives = " << value.maxMeshOutputPrimitives << '\n';
-       s << "\tmaxMeshMultiviewViewCount = " << value.maxMeshMultiviewViewCount << '\n';
-       s << "\tmeshOutputPerVertexGranularity = " << value.meshOutputPerVertexGranularity << '\n';
-       s << "\tmeshOutputPerPrimitiveGranularity = " << value.meshOutputPerPrimitiveGranularity << '\n';
+       s << "\ttextureCompressionASTC_HDR = " << value.textureCompressionASTC_HDR << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDrawMeshTasksIndirectCommandNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixFeaturesNV& value)
 {
-       s << "VkDrawMeshTasksIndirectCommandNV = {\n";
-       s << "\ttaskCount = " << value.taskCount << '\n';
-       s << "\tfirstTask = " << value.firstTask << '\n';
+       s << "VkPhysicalDeviceCooperativeMatrixFeaturesNV = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tcooperativeMatrix = " << value.cooperativeMatrix << '\n';
+       s << "\tcooperativeMatrixRobustBufferAccess = " << value.cooperativeMatrixRobustBufferAccess << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageFootprintFeaturesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixPropertiesNV& value)
 {
-       s << "VkPhysicalDeviceShaderImageFootprintFeaturesNV = {\n";
+       s << "VkPhysicalDeviceCooperativeMatrixPropertiesNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\timageFootprint = " << value.imageFootprint << '\n';
+       s << "\tcooperativeMatrixSupportedStages = " << getShaderStageFlagsStr(value.cooperativeMatrixSupportedStages) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineViewportExclusiveScissorStateCreateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkCooperativeMatrixPropertiesNV& value)
 {
-       s << "VkPipelineViewportExclusiveScissorStateCreateInfoNV = {\n";
+       s << "VkCooperativeMatrixPropertiesNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\texclusiveScissorCount = " << value.exclusiveScissorCount << '\n';
-       s << "\tpExclusiveScissors = " << value.pExclusiveScissors << '\n';
+       s << "\tMSize = " << value.MSize << '\n';
+       s << "\tNSize = " << value.NSize << '\n';
+       s << "\tKSize = " << value.KSize << '\n';
+       s << "\tAType = " << value.AType << '\n';
+       s << "\tBType = " << value.BType << '\n';
+       s << "\tCType = " << value.CType << '\n';
+       s << "\tDType = " << value.DType << '\n';
+       s << "\tscope = " << value.scope << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExclusiveScissorFeaturesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT& value)
 {
-       s << "VkPhysicalDeviceExclusiveScissorFeaturesNV = {\n";
+       s << "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\texclusiveScissor = " << value.exclusiveScissor << '\n';
+       s << "\tycbcrImageArrays = " << value.ycbcrImageArrays << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointPropertiesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkImageViewHandleInfoNVX& value)
 {
-       s << "VkQueueFamilyCheckpointPropertiesNV = {\n";
+       s << "VkImageViewHandleInfoNVX = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcheckpointExecutionStageMask = " << getPipelineStageFlagsStr(value.checkpointExecutionStageMask) << '\n';
+       s << "\timageView = " << value.imageView << '\n';
+       s << "\tdescriptorType = " << value.descriptorType << '\n';
+       s << "\tsampler = " << value.sampler << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCheckpointDataNV& value)
+std::ostream& operator<< (std::ostream& s, const VkImageViewAddressPropertiesNVX& value)
 {
-       s << "VkCheckpointDataNV = {\n";
+       s << "VkImageViewAddressPropertiesNVX = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tstage = " << value.stage << '\n';
-       s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
+       s << "\tdeviceAddress = " << value.deviceAddress << '\n';
+       s << "\tsize = " << value.size << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& value)
+std::ostream& operator<< (std::ostream& s, const VkPresentFrameTokenGGP& value)
 {
-       s << "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = {\n";
+       s << "VkPresentFrameTokenGGP = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderIntegerFunctions2 = " << value.shaderIntegerFunctions2 << '\n';
+       s << "\tframeToken = " << value.frameToken << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPerformanceValueDataINTEL& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineCreationFeedback& value)
 {
-       s << "VkPerformanceValueDataINTEL = {\n";
-       s << "\tvalue32 = " << value.value32 << '\n';
-       s << "\tvalue64 = " << value.value64 << '\n';
-       s << "\tvalueFloat = " << value.valueFloat << '\n';
-       s << "\tvalueBool = " << value.valueBool << '\n';
-       s << "\tvalueString = " << getCharPtrStr(value.valueString) << '\n';
+       s << "VkPipelineCreationFeedback = {\n";
+       s << "\tflags = " << getPipelineCreationFeedbackFlagsStr(value.flags) << '\n';
+       s << "\tduration = " << value.duration << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPerformanceValueINTEL& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineCreationFeedbackCreateInfo& value)
 {
-       s << "VkPerformanceValueINTEL = {\n";
-       s << "\ttype = " << value.type << '\n';
-       s << "\tdata = " << value.data << '\n';
+       s << "VkPipelineCreationFeedbackCreateInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tpPipelineCreationFeedback = " << value.pPipelineCreationFeedback << '\n';
+       s << "\tpipelineStageCreationFeedbackCount = " << value.pipelineStageCreationFeedbackCount << '\n';
+       s << "\tpPipelineStageCreationFeedbacks = " << value.pPipelineStageCreationFeedbacks << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkInitializePerformanceApiInfoINTEL& value)
+std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveInfoEXT& value)
 {
-       s << "VkInitializePerformanceApiInfoINTEL = {\n";
+       s << "VkSurfaceFullScreenExclusiveInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpUserData = " << value.pUserData << '\n';
+       s << "\tfullScreenExclusive = " << value.fullScreenExclusive << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceQueryCreateInfoINTEL& value)
+std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveWin32InfoEXT& value)
 {
-       s << "VkQueryPoolPerformanceQueryCreateInfoINTEL = {\n";
+       s << "VkSurfaceFullScreenExclusiveWin32InfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tperformanceCountersSampling = " << value.performanceCountersSampling << '\n';
+       s << "\thmonitor = " << value.hmonitor << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPerformanceMarkerInfoINTEL& value)
+std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesFullScreenExclusiveEXT& value)
 {
-       s << "VkPerformanceMarkerInfoINTEL = {\n";
+       s << "VkSurfaceCapabilitiesFullScreenExclusiveEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmarker = " << value.marker << '\n';
+       s << "\tfullScreenExclusiveSupported = " << value.fullScreenExclusiveSupported << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPerformanceStreamMarkerInfoINTEL& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceQueryFeaturesKHR& value)
 {
-       s << "VkPerformanceStreamMarkerInfoINTEL = {\n";
+       s << "VkPhysicalDevicePerformanceQueryFeaturesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmarker = " << value.marker << '\n';
+       s << "\tperformanceCounterQueryPools = " << value.performanceCounterQueryPools << '\n';
+       s << "\tperformanceCounterMultipleQueryPools = " << value.performanceCounterMultipleQueryPools << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPerformanceOverrideInfoINTEL& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePerformanceQueryPropertiesKHR& value)
 {
-       s << "VkPerformanceOverrideInfoINTEL = {\n";
+       s << "VkPhysicalDevicePerformanceQueryPropertiesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttype = " << value.type << '\n';
-       s << "\tenable = " << value.enable << '\n';
-       s << "\tparameter = " << value.parameter << '\n';
+       s << "\tallowCommandBufferQueryCopies = " << value.allowCommandBufferQueryCopies << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPerformanceConfigurationAcquireInfoINTEL& value)
+std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterKHR& value)
 {
-       s << "VkPerformanceConfigurationAcquireInfoINTEL = {\n";
+       s << "VkPerformanceCounterKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttype = " << value.type << '\n';
+       s << "\tunit = " << value.unit << '\n';
+       s << "\tscope = " << value.scope << '\n';
+       s << "\tstorage = " << value.storage << '\n';
+       s << "\tuuid = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.uuid)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.uuid))) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePCIBusInfoPropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterDescriptionKHR& value)
 {
-       s << "VkPhysicalDevicePCIBusInfoPropertiesEXT = {\n";
+       s << "VkPerformanceCounterDescriptionKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpciDomain = " << value.pciDomain << '\n';
-       s << "\tpciBus = " << value.pciBus << '\n';
-       s << "\tpciDevice = " << value.pciDevice << '\n';
-       s << "\tpciFunction = " << value.pciFunction << '\n';
+       s << "\tflags = " << getPerformanceCounterDescriptionFlagsKHRStr(value.flags) << '\n';
+       s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
+       s << "\tcategory = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.category)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.category))) << '\n';
+       s << "\tdescription = " << (const char*)value.description << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDisplayNativeHdrSurfaceCapabilitiesAMD& value)
+std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceCreateInfoKHR& value)
 {
-       s << "VkDisplayNativeHdrSurfaceCapabilitiesAMD = {\n";
+       s << "VkQueryPoolPerformanceCreateInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tlocalDimmingSupport = " << value.localDimmingSupport << '\n';
+       s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
+       s << "\tcounterIndexCount = " << value.counterIndexCount << '\n';
+       s << "\tpCounterIndices = " << value.pCounterIndices << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSwapchainDisplayNativeHdrCreateInfoAMD& value)
+std::ostream& operator<< (std::ostream& s, const VkPerformanceCounterResultKHR& value)
 {
-       s << "VkSwapchainDisplayNativeHdrCreateInfoAMD = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tlocalDimmingEnable = " << value.localDimmingEnable << '\n';
+       s << "VkPerformanceCounterResultKHR = {\n";
+       s << "\tint32 = " << value.int32 << '\n';
+       s << "\tint64 = " << value.int64 << '\n';
+       s << "\tuint32 = " << value.uint32 << '\n';
+       s << "\tuint64 = " << value.uint64 << '\n';
+       s << "\tfloat32 = " << value.float32 << '\n';
+       s << "\tfloat64 = " << value.float64 << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkAcquireProfilingLockInfoKHR& value)
 {
-       s << "VkPhysicalDeviceFragmentDensityMapFeaturesEXT = {\n";
+       s << "VkAcquireProfilingLockInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfragmentDensityMap = " << value.fragmentDensityMap << '\n';
-       s << "\tfragmentDensityMapDynamic = " << value.fragmentDensityMapDynamic << '\n';
-       s << "\tfragmentDensityMapNonSubsampledImages = " << value.fragmentDensityMapNonSubsampledImages << '\n';
+       s << "\tflags = " << getAcquireProfilingLockFlagsKHRStr(value.flags) << '\n';
+       s << "\ttimeout = " << value.timeout << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapPropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPerformanceQuerySubmitInfoKHR& value)
 {
-       s << "VkPhysicalDeviceFragmentDensityMapPropertiesEXT = {\n";
+       s << "VkPerformanceQuerySubmitInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tminFragmentDensityTexelSize = " << value.minFragmentDensityTexelSize << '\n';
-       s << "\tmaxFragmentDensityTexelSize = " << value.maxFragmentDensityTexelSize << '\n';
-       s << "\tfragmentDensityInvocations = " << value.fragmentDensityInvocations << '\n';
+       s << "\tcounterPassIndex = " << value.counterPassIndex << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkRenderPassFragmentDensityMapCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkHeadlessSurfaceCreateInfoEXT& value)
 {
-       s << "VkRenderPassFragmentDensityMapCreateInfoEXT = {\n";
+       s << "VkHeadlessSurfaceCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfragmentDensityMapAttachment = " << value.fragmentDensityMapAttachment << '\n';
+       s << "\tflags = " << getHeadlessSurfaceCreateFlagsEXTStr(value.flags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderCoreProperties2AMD& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoverageReductionModeFeaturesNV& value)
 {
-       s << "VkPhysicalDeviceShaderCoreProperties2AMD = {\n";
+       s << "VkPhysicalDeviceCoverageReductionModeFeaturesNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderCoreFeatures = " << getShaderCorePropertiesFlagsAMDStr(value.shaderCoreFeatures) << '\n';
-       s << "\tactiveComputeUnitCount = " << value.activeComputeUnitCount << '\n';
+       s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoherentMemoryFeaturesAMD& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageReductionStateCreateInfoNV& value)
 {
-       s << "VkPhysicalDeviceCoherentMemoryFeaturesAMD = {\n";
+       s << "VkPipelineCoverageReductionStateCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdeviceCoherentMemory = " << value.deviceCoherentMemory << '\n';
+       s << "\tflags = " << getPipelineCoverageReductionStateCreateFlagsNVStr(value.flags) << '\n';
+       s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkFramebufferMixedSamplesCombinationNV& value)
 {
-       s << "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT = {\n";
+       s << "VkFramebufferMixedSamplesCombinationNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderImageInt64Atomics = " << value.shaderImageInt64Atomics << '\n';
-       s << "\tsparseImageInt64Atomics = " << value.sparseImageInt64Atomics << '\n';
+       s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
+       s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
+       s << "\tdepthStencilSamples = " << getSampleCountFlagsStr(value.depthStencilSamples) << '\n';
+       s << "\tcolorSamples = " << getSampleCountFlagsStr(value.colorSamples) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryBudgetPropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& value)
 {
-       s << "VkPhysicalDeviceMemoryBudgetPropertiesEXT = {\n";
+       s << "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\theapBudget = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapBudget), DE_ARRAY_END(value.heapBudget)) << '\n';
-       s << "\theapUsage = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.heapUsage), DE_ARRAY_END(value.heapUsage)) << '\n';
+       s << "\tshaderIntegerFunctions2 = " << value.shaderIntegerFunctions2 << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryPriorityFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPerformanceValueDataINTEL& value)
 {
-       s << "VkPhysicalDeviceMemoryPriorityFeaturesEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemoryPriority = " << value.memoryPriority << '\n';
+       s << "VkPerformanceValueDataINTEL = {\n";
+       s << "\tvalue32 = " << value.value32 << '\n';
+       s << "\tvalue64 = " << value.value64 << '\n';
+       s << "\tvalueFloat = " << value.valueFloat << '\n';
+       s << "\tvalueBool = " << value.valueBool << '\n';
+       s << "\tvalueString = " << getCharPtrStr(value.valueString) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryPriorityAllocateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPerformanceValueINTEL& value)
 {
-       s << "VkMemoryPriorityAllocateInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpriority = " << value.priority << '\n';
+       s << "VkPerformanceValueINTEL = {\n";
+       s << "\ttype = " << value.type << '\n';
+       s << "\tdata = " << value.data << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkInitializePerformanceApiInfoINTEL& value)
 {
-       s << "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = {\n";
+       s << "VkInitializePerformanceApiInfoINTEL = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdedicatedAllocationImageAliasing = " << value.dedicatedAllocationImageAliasing << '\n';
+       s << "\tpUserData = " << value.pUserData << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceQueryCreateInfoINTEL& value)
 {
-       s << "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT = {\n";
+       s << "VkQueryPoolPerformanceQueryCreateInfoINTEL = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
-       s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
-       s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
+       s << "\tperformanceCountersSampling = " << value.performanceCountersSampling << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBufferDeviceAddressCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPerformanceMarkerInfoINTEL& value)
 {
-       s << "VkBufferDeviceAddressCreateInfoEXT = {\n";
+       s << "VkPerformanceMarkerInfoINTEL = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdeviceAddress = " << value.deviceAddress << '\n';
+       s << "\tmarker = " << value.marker << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkValidationFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPerformanceStreamMarkerInfoINTEL& value)
 {
-       s << "VkValidationFeaturesEXT = {\n";
+       s << "VkPerformanceStreamMarkerInfoINTEL = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tenabledValidationFeatureCount = " << value.enabledValidationFeatureCount << '\n';
-       s << "\tpEnabledValidationFeatures = " << value.pEnabledValidationFeatures << '\n';
-       s << "\tdisabledValidationFeatureCount = " << value.disabledValidationFeatureCount << '\n';
-       s << "\tpDisabledValidationFeatures = " << value.pDisabledValidationFeatures << '\n';
+       s << "\tmarker = " << value.marker << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCooperativeMatrixPropertiesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPerformanceOverrideInfoINTEL& value)
 {
-       s << "VkCooperativeMatrixPropertiesNV = {\n";
+       s << "VkPerformanceOverrideInfoINTEL = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tMSize = " << value.MSize << '\n';
-       s << "\tNSize = " << value.NSize << '\n';
-       s << "\tKSize = " << value.KSize << '\n';
-       s << "\tAType = " << value.AType << '\n';
-       s << "\tBType = " << value.BType << '\n';
-       s << "\tCType = " << value.CType << '\n';
-       s << "\tDType = " << value.DType << '\n';
-       s << "\tscope = " << value.scope << '\n';
+       s << "\ttype = " << value.type << '\n';
+       s << "\tenable = " << value.enable << '\n';
+       s << "\tparameter = " << value.parameter << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixFeaturesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPerformanceConfigurationAcquireInfoINTEL& value)
 {
-       s << "VkPhysicalDeviceCooperativeMatrixFeaturesNV = {\n";
+       s << "VkPerformanceConfigurationAcquireInfoINTEL = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcooperativeMatrix = " << value.cooperativeMatrix << '\n';
-       s << "\tcooperativeMatrixRobustBufferAccess = " << value.cooperativeMatrixRobustBufferAccess << '\n';
+       s << "\ttype = " << value.type << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCooperativeMatrixPropertiesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderClockFeaturesKHR& value)
 {
-       s << "VkPhysicalDeviceCooperativeMatrixPropertiesNV = {\n";
+       s << "VkPhysicalDeviceShaderClockFeaturesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcooperativeMatrixSupportedStages = " << getShaderStageFlagsStr(value.cooperativeMatrixSupportedStages) << '\n';
+       s << "\tshaderSubgroupClock = " << value.shaderSubgroupClock << '\n';
+       s << "\tshaderDeviceClock = " << value.shaderDeviceClock << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoverageReductionModeFeaturesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIndexTypeUint8FeaturesEXT& value)
 {
-       s << "VkPhysicalDeviceCoverageReductionModeFeaturesNV = {\n";
+       s << "VkPhysicalDeviceIndexTypeUint8FeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
+       s << "\tindexTypeUint8 = " << value.indexTypeUint8 << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineCoverageReductionStateCreateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV& value)
 {
-       s << "VkPipelineCoverageReductionStateCreateInfoNV = {\n";
+       s << "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getPipelineCoverageReductionStateCreateFlagsNVStr(value.flags) << '\n';
-       s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
+       s << "\tshaderSMCount = " << value.shaderSMCount << '\n';
+       s << "\tshaderWarpsPerSM = " << value.shaderWarpsPerSM << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkFramebufferMixedSamplesCombinationNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& value)
 {
-       s << "VkFramebufferMixedSamplesCombinationNV = {\n";
+       s << "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcoverageReductionMode = " << value.coverageReductionMode << '\n';
-       s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
-       s << "\tdepthStencilSamples = " << getSampleCountFlagsStr(value.depthStencilSamples) << '\n';
-       s << "\tcolorSamples = " << getSampleCountFlagsStr(value.colorSamples) << '\n';
+       s << "\tshaderSMBuiltins = " << value.shaderSMBuiltins << '\n';
        s << '}';
        return s;
 }
@@ -11545,439 +11104,556 @@ std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderI
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures& value)
 {
-       s << "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT = {\n";
+       s << "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tycbcrImageArrays = " << value.ycbcrImageArrays << '\n';
+       s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProvokingVertexFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkAttachmentReferenceStencilLayout& value)
 {
-       s << "VkPhysicalDeviceProvokingVertexFeaturesEXT = {\n";
+       s << "VkAttachmentReferenceStencilLayout = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tprovokingVertexLast = " << value.provokingVertexLast << '\n';
-       s << "\ttransformFeedbackPreservesProvokingVertex = " << value.transformFeedbackPreservesProvokingVertex << '\n';
+       s << "\tstencilLayout = " << value.stencilLayout << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProvokingVertexPropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT& value)
 {
-       s << "VkPhysicalDeviceProvokingVertexPropertiesEXT = {\n";
+       s << "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tprovokingVertexModePerPipeline = " << value.provokingVertexModePerPipeline << '\n';
-       s << "\ttransformFeedbackPreservesTriangleFanProvokingVertex = " << value.transformFeedbackPreservesTriangleFanProvokingVertex << '\n';
+       s << "\tprimitiveTopologyListRestart = " << value.primitiveTopologyListRestart << '\n';
+       s << "\tprimitiveTopologyPatchListRestart = " << value.primitiveTopologyPatchListRestart << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkAttachmentDescriptionStencilLayout& value)
 {
-       s << "VkPipelineRasterizationProvokingVertexStateCreateInfoEXT = {\n";
+       s << "VkAttachmentDescriptionStencilLayout = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tprovokingVertexMode = " << value.provokingVertexMode << '\n';
+       s << "\tstencilInitialLayout = " << value.stencilInitialLayout << '\n';
+       s << "\tstencilFinalLayout = " << value.stencilFinalLayout << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkHeadlessSurfaceCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR& value)
 {
-       s << "VkHeadlessSurfaceCreateInfoEXT = {\n";
+       s << "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getHeadlessSurfaceCreateFlagsEXTStr(value.flags) << '\n';
+       s << "\tpipelineExecutableInfo = " << value.pipelineExecutableInfo << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineInfoKHR& value)
 {
-       s << "VkPhysicalDeviceLineRasterizationFeaturesEXT = {\n";
+       s << "VkPipelineInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\trectangularLines = " << value.rectangularLines << '\n';
-       s << "\tbresenhamLines = " << value.bresenhamLines << '\n';
-       s << "\tsmoothLines = " << value.smoothLines << '\n';
-       s << "\tstippledRectangularLines = " << value.stippledRectangularLines << '\n';
-       s << "\tstippledBresenhamLines = " << value.stippledBresenhamLines << '\n';
-       s << "\tstippledSmoothLines = " << value.stippledSmoothLines << '\n';
+       s << "\tpipeline = " << value.pipeline << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationPropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineExecutablePropertiesKHR& value)
 {
-       s << "VkPhysicalDeviceLineRasterizationPropertiesEXT = {\n";
+       s << "VkPipelineExecutablePropertiesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tlineSubPixelPrecisionBits = " << value.lineSubPixelPrecisionBits << '\n';
+       s << "\tstages = " << getShaderStageFlagsStr(value.stages) << '\n';
+       s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
+       s << "\tdescription = " << (const char*)value.description << '\n';
+       s << "\tsubgroupSize = " << value.subgroupSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationLineStateCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInfoKHR& value)
 {
-       s << "VkPipelineRasterizationLineStateCreateInfoEXT = {\n";
+       s << "VkPipelineExecutableInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tlineRasterizationMode = " << value.lineRasterizationMode << '\n';
-       s << "\tstippledLineEnable = " << value.stippledLineEnable << '\n';
-       s << "\tlineStippleFactor = " << value.lineStippleFactor << '\n';
-       s << "\tlineStipplePattern = " << value.lineStipplePattern << '\n';
+       s << "\tpipeline = " << value.pipeline << '\n';
+       s << "\texecutableIndex = " << value.executableIndex << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticValueKHR& value)
 {
-       s << "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderBufferFloat32Atomics = " << value.shaderBufferFloat32Atomics << '\n';
-       s << "\tshaderBufferFloat32AtomicAdd = " << value.shaderBufferFloat32AtomicAdd << '\n';
-       s << "\tshaderBufferFloat64Atomics = " << value.shaderBufferFloat64Atomics << '\n';
-       s << "\tshaderBufferFloat64AtomicAdd = " << value.shaderBufferFloat64AtomicAdd << '\n';
-       s << "\tshaderSharedFloat32Atomics = " << value.shaderSharedFloat32Atomics << '\n';
-       s << "\tshaderSharedFloat32AtomicAdd = " << value.shaderSharedFloat32AtomicAdd << '\n';
-       s << "\tshaderSharedFloat64Atomics = " << value.shaderSharedFloat64Atomics << '\n';
-       s << "\tshaderSharedFloat64AtomicAdd = " << value.shaderSharedFloat64AtomicAdd << '\n';
-       s << "\tshaderImageFloat32Atomics = " << value.shaderImageFloat32Atomics << '\n';
-       s << "\tshaderImageFloat32AtomicAdd = " << value.shaderImageFloat32AtomicAdd << '\n';
-       s << "\tsparseImageFloat32Atomics = " << value.sparseImageFloat32Atomics << '\n';
-       s << "\tsparseImageFloat32AtomicAdd = " << value.sparseImageFloat32AtomicAdd << '\n';
+       s << "VkPipelineExecutableStatisticValueKHR = {\n";
+       s << "\tb32 = " << value.b32 << '\n';
+       s << "\ti64 = " << value.i64 << '\n';
+       s << "\tu64 = " << value.u64 << '\n';
+       s << "\tf64 = " << value.f64 << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceIndexTypeUint8FeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableStatisticKHR& value)
 {
-       s << "VkPhysicalDeviceIndexTypeUint8FeaturesEXT = {\n";
+       s << "VkPipelineExecutableStatisticKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tindexTypeUint8 = " << value.indexTypeUint8 << '\n';
+       s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
+       s << "\tdescription = " << (const char*)value.description << '\n';
+       s << "\tformat = " << value.format << '\n';
+       s << "\tvalue = " << value.value << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineExecutableInternalRepresentationKHR& value)
 {
-       s << "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT = {\n";
+       s << "VkPipelineExecutableInternalRepresentationKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\textendedDynamicState = " << value.extendedDynamicState << '\n';
+       s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
+       s << "\tdescription = " << (const char*)value.description << '\n';
+       s << "\tisText = " << value.isText << '\n';
+       s << "\tdataSize = " << value.dataSize << '\n';
+       s << "\tpData = " << value.pData << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures& value)
 {
-       s << "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT = {\n";
+       s << "VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderBufferFloat16Atomics = " << value.shaderBufferFloat16Atomics << '\n';
-       s << "\tshaderBufferFloat16AtomicAdd = " << value.shaderBufferFloat16AtomicAdd << '\n';
-       s << "\tshaderBufferFloat16AtomicMinMax = " << value.shaderBufferFloat16AtomicMinMax << '\n';
-       s << "\tshaderBufferFloat32AtomicMinMax = " << value.shaderBufferFloat32AtomicMinMax << '\n';
-       s << "\tshaderBufferFloat64AtomicMinMax = " << value.shaderBufferFloat64AtomicMinMax << '\n';
-       s << "\tshaderSharedFloat16Atomics = " << value.shaderSharedFloat16Atomics << '\n';
-       s << "\tshaderSharedFloat16AtomicAdd = " << value.shaderSharedFloat16AtomicAdd << '\n';
-       s << "\tshaderSharedFloat16AtomicMinMax = " << value.shaderSharedFloat16AtomicMinMax << '\n';
-       s << "\tshaderSharedFloat32AtomicMinMax = " << value.shaderSharedFloat32AtomicMinMax << '\n';
-       s << "\tshaderSharedFloat64AtomicMinMax = " << value.shaderSharedFloat64AtomicMinMax << '\n';
-       s << "\tshaderImageFloat32AtomicMinMax = " << value.shaderImageFloat32AtomicMinMax << '\n';
-       s << "\tsparseImageFloat32AtomicMinMax = " << value.sparseImageFloat32AtomicMinMax << '\n';
+       s << "\tshaderDemoteToHelperInvocation = " << value.shaderDemoteToHelperInvocation << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& value)
 {
-       s << "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV = {\n";
+       s << "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxGraphicsShaderGroupCount = " << value.maxGraphicsShaderGroupCount << '\n';
-       s << "\tmaxIndirectSequenceCount = " << value.maxIndirectSequenceCount << '\n';
-       s << "\tmaxIndirectCommandsTokenCount = " << value.maxIndirectCommandsTokenCount << '\n';
-       s << "\tmaxIndirectCommandsStreamCount = " << value.maxIndirectCommandsStreamCount << '\n';
-       s << "\tmaxIndirectCommandsTokenOffset = " << value.maxIndirectCommandsTokenOffset << '\n';
-       s << "\tmaxIndirectCommandsStreamStride = " << value.maxIndirectCommandsStreamStride << '\n';
-       s << "\tminSequencesCountBufferOffsetAlignment = " << value.minSequencesCountBufferOffsetAlignment << '\n';
-       s << "\tminSequencesIndexBufferOffsetAlignment = " << value.minSequencesIndexBufferOffsetAlignment << '\n';
-       s << "\tminIndirectCommandsBufferOffsetAlignment = " << value.minIndirectCommandsBufferOffsetAlignment << '\n';
+       s << "\ttexelBufferAlignment = " << value.texelBufferAlignment << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentProperties& value)
 {
-       s << "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV = {\n";
+       s << "VkPhysicalDeviceTexelBufferAlignmentProperties = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdeviceGeneratedCommands = " << value.deviceGeneratedCommands << '\n';
+       s << "\tstorageTexelBufferOffsetAlignmentBytes = " << value.storageTexelBufferOffsetAlignmentBytes << '\n';
+       s << "\tstorageTexelBufferOffsetSingleTexelAlignment = " << value.storageTexelBufferOffsetSingleTexelAlignment << '\n';
+       s << "\tuniformTexelBufferOffsetAlignmentBytes = " << value.uniformTexelBufferOffsetAlignmentBytes << '\n';
+       s << "\tuniformTexelBufferOffsetSingleTexelAlignment = " << value.uniformTexelBufferOffsetSingleTexelAlignment << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkGraphicsShaderGroupCreateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlFeatures& value)
 {
-       s << "VkGraphicsShaderGroupCreateInfoNV = {\n";
+       s << "VkPhysicalDeviceSubgroupSizeControlFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tstageCount = " << value.stageCount << '\n';
-       s << "\tpStages = " << value.pStages << '\n';
-       s << "\tpVertexInputState = " << value.pVertexInputState << '\n';
-       s << "\tpTessellationState = " << value.pTessellationState << '\n';
+       s << "\tsubgroupSizeControl = " << value.subgroupSizeControl << '\n';
+       s << "\tcomputeFullSubgroups = " << value.computeFullSubgroups << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineShaderGroupsCreateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupSizeControlProperties& value)
 {
-       s << "VkGraphicsPipelineShaderGroupsCreateInfoNV = {\n";
+       s << "VkPhysicalDeviceSubgroupSizeControlProperties = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tgroupCount = " << value.groupCount << '\n';
-       s << "\tpGroups = " << value.pGroups << '\n';
-       s << "\tpipelineCount = " << value.pipelineCount << '\n';
-       s << "\tpPipelines = " << value.pPipelines << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkBindShaderGroupIndirectCommandNV& value)
-{
-       s << "VkBindShaderGroupIndirectCommandNV = {\n";
-       s << "\tgroupIndex = " << value.groupIndex << '\n';
+       s << "\tminSubgroupSize = " << value.minSubgroupSize << '\n';
+       s << "\tmaxSubgroupSize = " << value.maxSubgroupSize << '\n';
+       s << "\tmaxComputeWorkgroupSubgroups = " << value.maxComputeWorkgroupSubgroups << '\n';
+       s << "\trequiredSubgroupSizeStages = " << getShaderStageFlagsStr(value.requiredSubgroupSizeStages) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBindIndexBufferIndirectCommandNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageRequiredSubgroupSizeCreateInfo& value)
 {
-       s << "VkBindIndexBufferIndirectCommandNV = {\n";
-       s << "\tbufferAddress = " << value.bufferAddress << '\n';
-       s << "\tsize = " << value.size << '\n';
-       s << "\tindexType = " << value.indexType << '\n';
+       s << "VkPipelineShaderStageRequiredSubgroupSizeCreateInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\trequiredSubgroupSize = " << value.requiredSubgroupSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBindVertexBufferIndirectCommandNV& value)
+std::ostream& operator<< (std::ostream& s, const VkSubpassShadingPipelineCreateInfoHUAWEI& value)
 {
-       s << "VkBindVertexBufferIndirectCommandNV = {\n";
-       s << "\tbufferAddress = " << value.bufferAddress << '\n';
-       s << "\tsize = " << value.size << '\n';
-       s << "\tstride = " << value.stride << '\n';
+       s << "VkSubpassShadingPipelineCreateInfoHUAWEI = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\trenderPass = " << value.renderPass << '\n';
+       s << "\tsubpass = " << value.subpass << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSetStateFlagsIndirectCommandNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI& value)
 {
-       s << "VkSetStateFlagsIndirectCommandNV = {\n";
-       s << "\tdata = " << value.data << '\n';
+       s << "VkPhysicalDeviceSubpassShadingPropertiesHUAWEI = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tmaxSubpassShadingWorkgroupSizeAspectRatio = " << value.maxSubpassShadingWorkgroupSizeAspectRatio << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsStreamNV& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryOpaqueCaptureAddressAllocateInfo& value)
 {
-       s << "VkIndirectCommandsStreamNV = {\n";
-       s << "\tbuffer = " << value.buffer << '\n';
-       s << "\toffset = " << value.offset << '\n';
+       s << "VkMemoryOpaqueCaptureAddressAllocateInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\topaqueCaptureAddress = " << value.opaqueCaptureAddress << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutTokenNV& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryOpaqueCaptureAddressInfo& value)
 {
-       s << "VkIndirectCommandsLayoutTokenNV = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttokenType = " << value.tokenType << '\n';
-       s << "\tstream = " << value.stream << '\n';
-       s << "\toffset = " << value.offset << '\n';
-       s << "\tvertexBindingUnit = " << value.vertexBindingUnit << '\n';
-       s << "\tvertexDynamicStride = " << value.vertexDynamicStride << '\n';
-       s << "\tpushconstantPipelineLayout = " << value.pushconstantPipelineLayout << '\n';
-       s << "\tpushconstantShaderStageFlags = " << getShaderStageFlagsStr(value.pushconstantShaderStageFlags) << '\n';
-       s << "\tpushconstantOffset = " << value.pushconstantOffset << '\n';
-       s << "\tpushconstantSize = " << value.pushconstantSize << '\n';
-       s << "\tindirectStateFlags = " << getIndirectStateFlagsNVStr(value.indirectStateFlags) << '\n';
-       s << "\tindexTypeCount = " << value.indexTypeCount << '\n';
-       s << "\tpIndexTypes = " << value.pIndexTypes << '\n';
-       s << "\tpIndexTypeValues = " << value.pIndexTypeValues << '\n';
+       s << "VkDeviceMemoryOpaqueCaptureAddressInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tmemory = " << value.memory << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutCreateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationFeaturesEXT& value)
 {
-       s << "VkIndirectCommandsLayoutCreateInfoNV = {\n";
+       s << "VkPhysicalDeviceLineRasterizationFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getIndirectCommandsLayoutUsageFlagsNVStr(value.flags) << '\n';
-       s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
-       s << "\ttokenCount = " << value.tokenCount << '\n';
-       s << "\tpTokens = " << value.pTokens << '\n';
-       s << "\tstreamCount = " << value.streamCount << '\n';
-       s << "\tpStreamStrides = " << value.pStreamStrides << '\n';
+       s << "\trectangularLines = " << value.rectangularLines << '\n';
+       s << "\tbresenhamLines = " << value.bresenhamLines << '\n';
+       s << "\tsmoothLines = " << value.smoothLines << '\n';
+       s << "\tstippledRectangularLines = " << value.stippledRectangularLines << '\n';
+       s << "\tstippledBresenhamLines = " << value.stippledBresenhamLines << '\n';
+       s << "\tstippledSmoothLines = " << value.stippledSmoothLines << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLineRasterizationPropertiesEXT& value)
 {
-       s << "VkGeneratedCommandsInfoNV = {\n";
+       s << "VkPhysicalDeviceLineRasterizationPropertiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
-       s << "\tpipeline = " << value.pipeline << '\n';
-       s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
-       s << "\tstreamCount = " << value.streamCount << '\n';
-       s << "\tpStreams = " << value.pStreams << '\n';
-       s << "\tsequencesCount = " << value.sequencesCount << '\n';
-       s << "\tpreprocessBuffer = " << value.preprocessBuffer << '\n';
-       s << "\tpreprocessOffset = " << value.preprocessOffset << '\n';
-       s << "\tpreprocessSize = " << value.preprocessSize << '\n';
-       s << "\tsequencesCountBuffer = " << value.sequencesCountBuffer << '\n';
-       s << "\tsequencesCountOffset = " << value.sequencesCountOffset << '\n';
-       s << "\tsequencesIndexBuffer = " << value.sequencesIndexBuffer << '\n';
-       s << "\tsequencesIndexOffset = " << value.sequencesIndexOffset << '\n';
+       s << "\tlineSubPixelPrecisionBits = " << value.lineSubPixelPrecisionBits << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsMemoryRequirementsInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationLineStateCreateInfoEXT& value)
 {
-       s << "VkGeneratedCommandsMemoryRequirementsInfoNV = {\n";
+       s << "VkPipelineRasterizationLineStateCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
-       s << "\tpipeline = " << value.pipeline << '\n';
-       s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
-       s << "\tmaxSequencesCount = " << value.maxSequencesCount << '\n';
+       s << "\tlineRasterizationMode = " << value.lineRasterizationMode << '\n';
+       s << "\tstippledLineEnable = " << value.stippledLineEnable << '\n';
+       s << "\tlineStippleFactor = " << value.lineStippleFactor << '\n';
+       s << "\tlineStipplePattern = " << value.lineStipplePattern << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInheritedViewportScissorFeaturesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineCreationCacheControlFeatures& value)
 {
-       s << "VkPhysicalDeviceInheritedViewportScissorFeaturesNV = {\n";
+       s << "VkPhysicalDevicePipelineCreationCacheControlFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tinheritedViewportScissor2D = " << value.inheritedViewportScissor2D << '\n';
+       s << "\tpipelineCreationCacheControl = " << value.pipelineCreationCacheControl << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceViewportScissorInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Features& value)
 {
-       s << "VkCommandBufferInheritanceViewportScissorInfoNV = {\n";
+       s << "VkPhysicalDeviceVulkan11Features = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tviewportScissor2D = " << value.viewportScissor2D << '\n';
-       s << "\tviewportDepthCount = " << value.viewportDepthCount << '\n';
-       s << "\tpViewportDepths = " << value.pViewportDepths << '\n';
+       s << "\tstorageBuffer16BitAccess = " << value.storageBuffer16BitAccess << '\n';
+       s << "\tuniformAndStorageBuffer16BitAccess = " << value.uniformAndStorageBuffer16BitAccess << '\n';
+       s << "\tstoragePushConstant16 = " << value.storagePushConstant16 << '\n';
+       s << "\tstorageInputOutput16 = " << value.storageInputOutput16 << '\n';
+       s << "\tmultiview = " << value.multiview << '\n';
+       s << "\tmultiviewGeometryShader = " << value.multiviewGeometryShader << '\n';
+       s << "\tmultiviewTessellationShader = " << value.multiviewTessellationShader << '\n';
+       s << "\tvariablePointersStorageBuffer = " << value.variablePointersStorageBuffer << '\n';
+       s << "\tvariablePointers = " << value.variablePointers << '\n';
+       s << "\tprotectedMemory = " << value.protectedMemory << '\n';
+       s << "\tsamplerYcbcrConversion = " << value.samplerYcbcrConversion << '\n';
+       s << "\tshaderDrawParameters = " << value.shaderDrawParameters << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan11Properties& value)
 {
-       s << "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT = {\n";
+       s << "VkPhysicalDeviceVulkan11Properties = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttexelBufferAlignment = " << value.texelBufferAlignment << '\n';
+       s << "\tdeviceUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.deviceUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.deviceUUID))) << '\n';
+       s << "\tdriverUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.driverUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.driverUUID))) << '\n';
+       s << "\tdeviceLUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.deviceLUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.deviceLUID))) << '\n';
+       s << "\tdeviceNodeMask = " << value.deviceNodeMask << '\n';
+       s << "\tdeviceLUIDValid = " << value.deviceLUIDValid << '\n';
+       s << "\tsubgroupSize = " << value.subgroupSize << '\n';
+       s << "\tsubgroupSupportedStages = " << getShaderStageFlagsStr(value.subgroupSupportedStages) << '\n';
+       s << "\tsubgroupSupportedOperations = " << getSubgroupFeatureFlagsStr(value.subgroupSupportedOperations) << '\n';
+       s << "\tsubgroupQuadOperationsInAllStages = " << value.subgroupQuadOperationsInAllStages << '\n';
+       s << "\tpointClippingBehavior = " << value.pointClippingBehavior << '\n';
+       s << "\tmaxMultiviewViewCount = " << value.maxMultiviewViewCount << '\n';
+       s << "\tmaxMultiviewInstanceIndex = " << value.maxMultiviewInstanceIndex << '\n';
+       s << "\tprotectedNoFault = " << value.protectedNoFault << '\n';
+       s << "\tmaxPerSetDescriptors = " << value.maxPerSetDescriptors << '\n';
+       s << "\tmaxMemoryAllocationSize = " << value.maxMemoryAllocationSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkRenderPassTransformBeginInfoQCOM& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Features& value)
 {
-       s << "VkRenderPassTransformBeginInfoQCOM = {\n";
+       s << "VkPhysicalDeviceVulkan12Features = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttransform = " << value.transform << '\n';
+       s << "\tsamplerMirrorClampToEdge = " << value.samplerMirrorClampToEdge << '\n';
+       s << "\tdrawIndirectCount = " << value.drawIndirectCount << '\n';
+       s << "\tstorageBuffer8BitAccess = " << value.storageBuffer8BitAccess << '\n';
+       s << "\tuniformAndStorageBuffer8BitAccess = " << value.uniformAndStorageBuffer8BitAccess << '\n';
+       s << "\tstoragePushConstant8 = " << value.storagePushConstant8 << '\n';
+       s << "\tshaderBufferInt64Atomics = " << value.shaderBufferInt64Atomics << '\n';
+       s << "\tshaderSharedInt64Atomics = " << value.shaderSharedInt64Atomics << '\n';
+       s << "\tshaderFloat16 = " << value.shaderFloat16 << '\n';
+       s << "\tshaderInt8 = " << value.shaderInt8 << '\n';
+       s << "\tdescriptorIndexing = " << value.descriptorIndexing << '\n';
+       s << "\tshaderInputAttachmentArrayDynamicIndexing = " << value.shaderInputAttachmentArrayDynamicIndexing << '\n';
+       s << "\tshaderUniformTexelBufferArrayDynamicIndexing = " << value.shaderUniformTexelBufferArrayDynamicIndexing << '\n';
+       s << "\tshaderStorageTexelBufferArrayDynamicIndexing = " << value.shaderStorageTexelBufferArrayDynamicIndexing << '\n';
+       s << "\tshaderUniformBufferArrayNonUniformIndexing = " << value.shaderUniformBufferArrayNonUniformIndexing << '\n';
+       s << "\tshaderSampledImageArrayNonUniformIndexing = " << value.shaderSampledImageArrayNonUniformIndexing << '\n';
+       s << "\tshaderStorageBufferArrayNonUniformIndexing = " << value.shaderStorageBufferArrayNonUniformIndexing << '\n';
+       s << "\tshaderStorageImageArrayNonUniformIndexing = " << value.shaderStorageImageArrayNonUniformIndexing << '\n';
+       s << "\tshaderInputAttachmentArrayNonUniformIndexing = " << value.shaderInputAttachmentArrayNonUniformIndexing << '\n';
+       s << "\tshaderUniformTexelBufferArrayNonUniformIndexing = " << value.shaderUniformTexelBufferArrayNonUniformIndexing << '\n';
+       s << "\tshaderStorageTexelBufferArrayNonUniformIndexing = " << value.shaderStorageTexelBufferArrayNonUniformIndexing << '\n';
+       s << "\tdescriptorBindingUniformBufferUpdateAfterBind = " << value.descriptorBindingUniformBufferUpdateAfterBind << '\n';
+       s << "\tdescriptorBindingSampledImageUpdateAfterBind = " << value.descriptorBindingSampledImageUpdateAfterBind << '\n';
+       s << "\tdescriptorBindingStorageImageUpdateAfterBind = " << value.descriptorBindingStorageImageUpdateAfterBind << '\n';
+       s << "\tdescriptorBindingStorageBufferUpdateAfterBind = " << value.descriptorBindingStorageBufferUpdateAfterBind << '\n';
+       s << "\tdescriptorBindingUniformTexelBufferUpdateAfterBind = " << value.descriptorBindingUniformTexelBufferUpdateAfterBind << '\n';
+       s << "\tdescriptorBindingStorageTexelBufferUpdateAfterBind = " << value.descriptorBindingStorageTexelBufferUpdateAfterBind << '\n';
+       s << "\tdescriptorBindingUpdateUnusedWhilePending = " << value.descriptorBindingUpdateUnusedWhilePending << '\n';
+       s << "\tdescriptorBindingPartiallyBound = " << value.descriptorBindingPartiallyBound << '\n';
+       s << "\tdescriptorBindingVariableDescriptorCount = " << value.descriptorBindingVariableDescriptorCount << '\n';
+       s << "\truntimeDescriptorArray = " << value.runtimeDescriptorArray << '\n';
+       s << "\tsamplerFilterMinmax = " << value.samplerFilterMinmax << '\n';
+       s << "\tscalarBlockLayout = " << value.scalarBlockLayout << '\n';
+       s << "\timagelessFramebuffer = " << value.imagelessFramebuffer << '\n';
+       s << "\tuniformBufferStandardLayout = " << value.uniformBufferStandardLayout << '\n';
+       s << "\tshaderSubgroupExtendedTypes = " << value.shaderSubgroupExtendedTypes << '\n';
+       s << "\tseparateDepthStencilLayouts = " << value.separateDepthStencilLayouts << '\n';
+       s << "\thostQueryReset = " << value.hostQueryReset << '\n';
+       s << "\ttimelineSemaphore = " << value.timelineSemaphore << '\n';
+       s << "\tbufferDeviceAddress = " << value.bufferDeviceAddress << '\n';
+       s << "\tbufferDeviceAddressCaptureReplay = " << value.bufferDeviceAddressCaptureReplay << '\n';
+       s << "\tbufferDeviceAddressMultiDevice = " << value.bufferDeviceAddressMultiDevice << '\n';
+       s << "\tvulkanMemoryModel = " << value.vulkanMemoryModel << '\n';
+       s << "\tvulkanMemoryModelDeviceScope = " << value.vulkanMemoryModelDeviceScope << '\n';
+       s << "\tvulkanMemoryModelAvailabilityVisibilityChains = " << value.vulkanMemoryModelAvailabilityVisibilityChains << '\n';
+       s << "\tshaderOutputViewportIndex = " << value.shaderOutputViewportIndex << '\n';
+       s << "\tshaderOutputLayer = " << value.shaderOutputLayer << '\n';
+       s << "\tsubgroupBroadcastDynamicId = " << value.subgroupBroadcastDynamicId << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderPassTransformInfoQCOM& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan12Properties& value)
 {
-       s << "VkCommandBufferInheritanceRenderPassTransformInfoQCOM = {\n";
+       s << "VkPhysicalDeviceVulkan12Properties = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttransform = " << value.transform << '\n';
-       s << "\trenderArea = " << value.renderArea << '\n';
+       s << "\tdriverID = " << value.driverID << '\n';
+       s << "\tdriverName = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverName)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverName))) << '\n';
+       s << "\tdriverInfo = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.driverInfo)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.driverInfo))) << '\n';
+       s << "\tconformanceVersion = " << value.conformanceVersion << '\n';
+       s << "\tdenormBehaviorIndependence = " << value.denormBehaviorIndependence << '\n';
+       s << "\troundingModeIndependence = " << value.roundingModeIndependence << '\n';
+       s << "\tshaderSignedZeroInfNanPreserveFloat16 = " << value.shaderSignedZeroInfNanPreserveFloat16 << '\n';
+       s << "\tshaderSignedZeroInfNanPreserveFloat32 = " << value.shaderSignedZeroInfNanPreserveFloat32 << '\n';
+       s << "\tshaderSignedZeroInfNanPreserveFloat64 = " << value.shaderSignedZeroInfNanPreserveFloat64 << '\n';
+       s << "\tshaderDenormPreserveFloat16 = " << value.shaderDenormPreserveFloat16 << '\n';
+       s << "\tshaderDenormPreserveFloat32 = " << value.shaderDenormPreserveFloat32 << '\n';
+       s << "\tshaderDenormPreserveFloat64 = " << value.shaderDenormPreserveFloat64 << '\n';
+       s << "\tshaderDenormFlushToZeroFloat16 = " << value.shaderDenormFlushToZeroFloat16 << '\n';
+       s << "\tshaderDenormFlushToZeroFloat32 = " << value.shaderDenormFlushToZeroFloat32 << '\n';
+       s << "\tshaderDenormFlushToZeroFloat64 = " << value.shaderDenormFlushToZeroFloat64 << '\n';
+       s << "\tshaderRoundingModeRTEFloat16 = " << value.shaderRoundingModeRTEFloat16 << '\n';
+       s << "\tshaderRoundingModeRTEFloat32 = " << value.shaderRoundingModeRTEFloat32 << '\n';
+       s << "\tshaderRoundingModeRTEFloat64 = " << value.shaderRoundingModeRTEFloat64 << '\n';
+       s << "\tshaderRoundingModeRTZFloat16 = " << value.shaderRoundingModeRTZFloat16 << '\n';
+       s << "\tshaderRoundingModeRTZFloat32 = " << value.shaderRoundingModeRTZFloat32 << '\n';
+       s << "\tshaderRoundingModeRTZFloat64 = " << value.shaderRoundingModeRTZFloat64 << '\n';
+       s << "\tmaxUpdateAfterBindDescriptorsInAllPools = " << value.maxUpdateAfterBindDescriptorsInAllPools << '\n';
+       s << "\tshaderUniformBufferArrayNonUniformIndexingNative = " << value.shaderUniformBufferArrayNonUniformIndexingNative << '\n';
+       s << "\tshaderSampledImageArrayNonUniformIndexingNative = " << value.shaderSampledImageArrayNonUniformIndexingNative << '\n';
+       s << "\tshaderStorageBufferArrayNonUniformIndexingNative = " << value.shaderStorageBufferArrayNonUniformIndexingNative << '\n';
+       s << "\tshaderStorageImageArrayNonUniformIndexingNative = " << value.shaderStorageImageArrayNonUniformIndexingNative << '\n';
+       s << "\tshaderInputAttachmentArrayNonUniformIndexingNative = " << value.shaderInputAttachmentArrayNonUniformIndexingNative << '\n';
+       s << "\trobustBufferAccessUpdateAfterBind = " << value.robustBufferAccessUpdateAfterBind << '\n';
+       s << "\tquadDivergentImplicitLod = " << value.quadDivergentImplicitLod << '\n';
+       s << "\tmaxPerStageDescriptorUpdateAfterBindSamplers = " << value.maxPerStageDescriptorUpdateAfterBindSamplers << '\n';
+       s << "\tmaxPerStageDescriptorUpdateAfterBindUniformBuffers = " << value.maxPerStageDescriptorUpdateAfterBindUniformBuffers << '\n';
+       s << "\tmaxPerStageDescriptorUpdateAfterBindStorageBuffers = " << value.maxPerStageDescriptorUpdateAfterBindStorageBuffers << '\n';
+       s << "\tmaxPerStageDescriptorUpdateAfterBindSampledImages = " << value.maxPerStageDescriptorUpdateAfterBindSampledImages << '\n';
+       s << "\tmaxPerStageDescriptorUpdateAfterBindStorageImages = " << value.maxPerStageDescriptorUpdateAfterBindStorageImages << '\n';
+       s << "\tmaxPerStageDescriptorUpdateAfterBindInputAttachments = " << value.maxPerStageDescriptorUpdateAfterBindInputAttachments << '\n';
+       s << "\tmaxPerStageUpdateAfterBindResources = " << value.maxPerStageUpdateAfterBindResources << '\n';
+       s << "\tmaxDescriptorSetUpdateAfterBindSamplers = " << value.maxDescriptorSetUpdateAfterBindSamplers << '\n';
+       s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffers = " << value.maxDescriptorSetUpdateAfterBindUniformBuffers << '\n';
+       s << "\tmaxDescriptorSetUpdateAfterBindUniformBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic << '\n';
+       s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffers = " << value.maxDescriptorSetUpdateAfterBindStorageBuffers << '\n';
+       s << "\tmaxDescriptorSetUpdateAfterBindStorageBuffersDynamic = " << value.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic << '\n';
+       s << "\tmaxDescriptorSetUpdateAfterBindSampledImages = " << value.maxDescriptorSetUpdateAfterBindSampledImages << '\n';
+       s << "\tmaxDescriptorSetUpdateAfterBindStorageImages = " << value.maxDescriptorSetUpdateAfterBindStorageImages << '\n';
+       s << "\tmaxDescriptorSetUpdateAfterBindInputAttachments = " << value.maxDescriptorSetUpdateAfterBindInputAttachments << '\n';
+       s << "\tsupportedDepthResolveModes = " << getResolveModeFlagsStr(value.supportedDepthResolveModes) << '\n';
+       s << "\tsupportedStencilResolveModes = " << getResolveModeFlagsStr(value.supportedStencilResolveModes) << '\n';
+       s << "\tindependentResolveNone = " << value.independentResolveNone << '\n';
+       s << "\tindependentResolve = " << value.independentResolve << '\n';
+       s << "\tfilterMinmaxSingleComponentFormats = " << value.filterMinmaxSingleComponentFormats << '\n';
+       s << "\tfilterMinmaxImageComponentMapping = " << value.filterMinmaxImageComponentMapping << '\n';
+       s << "\tmaxTimelineSemaphoreValueDifference = " << value.maxTimelineSemaphoreValueDifference << '\n';
+       s << "\tframebufferIntegerColorSampleCounts = " << getSampleCountFlagsStr(value.framebufferIntegerColorSampleCounts) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan13Features& value)
 {
-       s << "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT = {\n";
+       s << "VkPhysicalDeviceVulkan13Features = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdeviceMemoryReport = " << value.deviceMemoryReport << '\n';
+       s << "\trobustImageAccess = " << value.robustImageAccess << '\n';
+       s << "\tinlineUniformBlock = " << value.inlineUniformBlock << '\n';
+       s << "\tdescriptorBindingInlineUniformBlockUpdateAfterBind = " << value.descriptorBindingInlineUniformBlockUpdateAfterBind << '\n';
+       s << "\tpipelineCreationCacheControl = " << value.pipelineCreationCacheControl << '\n';
+       s << "\tprivateData = " << value.privateData << '\n';
+       s << "\tshaderDemoteToHelperInvocation = " << value.shaderDemoteToHelperInvocation << '\n';
+       s << "\tshaderTerminateInvocation = " << value.shaderTerminateInvocation << '\n';
+       s << "\tsubgroupSizeControl = " << value.subgroupSizeControl << '\n';
+       s << "\tcomputeFullSubgroups = " << value.computeFullSubgroups << '\n';
+       s << "\tsynchronization2 = " << value.synchronization2 << '\n';
+       s << "\ttextureCompressionASTC_HDR = " << value.textureCompressionASTC_HDR << '\n';
+       s << "\tshaderZeroInitializeWorkgroupMemory = " << value.shaderZeroInitializeWorkgroupMemory << '\n';
+       s << "\tdynamicRendering = " << value.dynamicRendering << '\n';
+       s << "\tshaderIntegerDotProduct = " << value.shaderIntegerDotProduct << '\n';
+       s << "\tmaintenance4 = " << value.maintenance4 << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceMemoryReportCallbackDataEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVulkan13Properties& value)
 {
-       s << "VkDeviceMemoryReportCallbackDataEXT = {\n";
+       s << "VkPhysicalDeviceVulkan13Properties = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
-       s << "\ttype = " << value.type << '\n';
-       s << "\tmemoryObjectId = " << value.memoryObjectId << '\n';
-       s << "\tsize = " << value.size << '\n';
-       s << "\tobjectType = " << value.objectType << '\n';
-       s << "\tobjectHandle = " << value.objectHandle << '\n';
-       s << "\theapIndex = " << value.heapIndex << '\n';
+       s << "\tminSubgroupSize = " << value.minSubgroupSize << '\n';
+       s << "\tmaxSubgroupSize = " << value.maxSubgroupSize << '\n';
+       s << "\tmaxComputeWorkgroupSubgroups = " << value.maxComputeWorkgroupSubgroups << '\n';
+       s << "\trequiredSubgroupSizeStages = " << getShaderStageFlagsStr(value.requiredSubgroupSizeStages) << '\n';
+       s << "\tmaxInlineUniformBlockSize = " << value.maxInlineUniformBlockSize << '\n';
+       s << "\tmaxPerStageDescriptorInlineUniformBlocks = " << value.maxPerStageDescriptorInlineUniformBlocks << '\n';
+       s << "\tmaxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = " << value.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks << '\n';
+       s << "\tmaxDescriptorSetInlineUniformBlocks = " << value.maxDescriptorSetInlineUniformBlocks << '\n';
+       s << "\tmaxDescriptorSetUpdateAfterBindInlineUniformBlocks = " << value.maxDescriptorSetUpdateAfterBindInlineUniformBlocks << '\n';
+       s << "\tmaxInlineUniformTotalSize = " << value.maxInlineUniformTotalSize << '\n';
+       s << "\tintegerDotProduct8BitUnsignedAccelerated = " << value.integerDotProduct8BitUnsignedAccelerated << '\n';
+       s << "\tintegerDotProduct8BitSignedAccelerated = " << value.integerDotProduct8BitSignedAccelerated << '\n';
+       s << "\tintegerDotProduct8BitMixedSignednessAccelerated = " << value.integerDotProduct8BitMixedSignednessAccelerated << '\n';
+       s << "\tintegerDotProduct4x8BitPackedUnsignedAccelerated = " << value.integerDotProduct4x8BitPackedUnsignedAccelerated << '\n';
+       s << "\tintegerDotProduct4x8BitPackedSignedAccelerated = " << value.integerDotProduct4x8BitPackedSignedAccelerated << '\n';
+       s << "\tintegerDotProduct4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProduct4x8BitPackedMixedSignednessAccelerated << '\n';
+       s << "\tintegerDotProduct16BitUnsignedAccelerated = " << value.integerDotProduct16BitUnsignedAccelerated << '\n';
+       s << "\tintegerDotProduct16BitSignedAccelerated = " << value.integerDotProduct16BitSignedAccelerated << '\n';
+       s << "\tintegerDotProduct16BitMixedSignednessAccelerated = " << value.integerDotProduct16BitMixedSignednessAccelerated << '\n';
+       s << "\tintegerDotProduct32BitUnsignedAccelerated = " << value.integerDotProduct32BitUnsignedAccelerated << '\n';
+       s << "\tintegerDotProduct32BitSignedAccelerated = " << value.integerDotProduct32BitSignedAccelerated << '\n';
+       s << "\tintegerDotProduct32BitMixedSignednessAccelerated = " << value.integerDotProduct32BitMixedSignednessAccelerated << '\n';
+       s << "\tintegerDotProduct64BitUnsignedAccelerated = " << value.integerDotProduct64BitUnsignedAccelerated << '\n';
+       s << "\tintegerDotProduct64BitSignedAccelerated = " << value.integerDotProduct64BitSignedAccelerated << '\n';
+       s << "\tintegerDotProduct64BitMixedSignednessAccelerated = " << value.integerDotProduct64BitMixedSignednessAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating8BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitSignedAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating16BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitSignedAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating32BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitSignedAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating64BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitSignedAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated << '\n';
+       s << "\tstorageTexelBufferOffsetAlignmentBytes = " << value.storageTexelBufferOffsetAlignmentBytes << '\n';
+       s << "\tstorageTexelBufferOffsetSingleTexelAlignment = " << value.storageTexelBufferOffsetSingleTexelAlignment << '\n';
+       s << "\tuniformTexelBufferOffsetAlignmentBytes = " << value.uniformTexelBufferOffsetAlignmentBytes << '\n';
+       s << "\tuniformTexelBufferOffsetSingleTexelAlignment = " << value.uniformTexelBufferOffsetSingleTexelAlignment << '\n';
+       s << "\tmaxBufferSize = " << value.maxBufferSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceDeviceMemoryReportCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineCompilerControlCreateInfoAMD& value)
 {
-       s << "VkDeviceDeviceMemoryReportCreateInfoEXT = {\n";
+       s << "VkPipelineCompilerControlCreateInfoAMD = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getDeviceMemoryReportFlagsEXTStr(value.flags) << '\n';
-       s << "\tpfnUserCallback = " << value.pfnUserCallback << '\n';
-       s << "\tpUserData = " << value.pUserData << '\n';
+       s << "\tcompilerControlFlags = " << getPipelineCompilerControlFlagsAMDStr(value.compilerControlFlags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2FeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCoherentMemoryFeaturesAMD& value)
 {
-       s << "VkPhysicalDeviceRobustness2FeaturesEXT = {\n";
+       s << "VkPhysicalDeviceCoherentMemoryFeaturesAMD = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\trobustBufferAccess2 = " << value.robustBufferAccess2 << '\n';
-       s << "\trobustImageAccess2 = " << value.robustImageAccess2 << '\n';
-       s << "\tnullDescriptor = " << value.nullDescriptor << '\n';
+       s << "\tdeviceCoherentMemory = " << value.deviceCoherentMemory << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2PropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceToolProperties& value)
 {
-       s << "VkPhysicalDeviceRobustness2PropertiesEXT = {\n";
+       s << "VkPhysicalDeviceToolProperties = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\trobustStorageBufferAccessSizeAlignment = " << value.robustStorageBufferAccessSizeAlignment << '\n';
-       s << "\trobustUniformBufferAccessSizeAlignment = " << value.robustUniformBufferAccessSizeAlignment << '\n';
+       s << "\tname = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.name)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.name))) << '\n';
+       s << "\tversion = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.version)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.version))) << '\n';
+       s << "\tpurposes = " << getToolPurposeFlagsStr(value.purposes) << '\n';
+       s << "\tdescription = " << (const char*)value.description << '\n';
+       s << "\tlayer = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<char>(DE_ARRAY_BEGIN(value.layer)), tcu::Format::HexIterator<char>(DE_ARRAY_END(value.layer))) << '\n';
        s << '}';
        return s;
 }
@@ -12014,173 +11690,175 @@ std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCustomBorderCol
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiagnosticsConfigFeaturesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkSamplerBorderColorComponentMappingCreateInfoEXT& value)
 {
-       s << "VkPhysicalDeviceDiagnosticsConfigFeaturesNV = {\n";
+       s << "VkSamplerBorderColorComponentMappingCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdiagnosticsConfig = " << value.diagnosticsConfig << '\n';
+       s << "\tcomponents = " << value.components << '\n';
+       s << "\tsrgb = " << value.srgb << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceDiagnosticsConfigCreateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT& value)
 {
-       s << "VkDeviceDiagnosticsConfigCreateInfoNV = {\n";
+       s << "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getDeviceDiagnosticsConfigFlagsNVStr(value.flags) << '\n';
+       s << "\tborderColorSwizzle = " << value.borderColorSwizzle << '\n';
+       s << "\tborderColorSwizzleFromImage = " << value.borderColorSwizzleFromImage << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressKHR& value)
 {
-       s << "VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tgraphicsPipelineLibrary = " << value.graphicsPipelineLibrary << '\n';
+       s << "VkDeviceOrHostAddressKHR = {\n";
+       s << "\tdeviceAddress = " << value.deviceAddress << '\n';
+       s << "\thostAddress = " << value.hostAddress << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressConstKHR& value)
 {
-       s << "VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tgraphicsPipelineLibraryFastLinking = " << value.graphicsPipelineLibraryFastLinking << '\n';
-       s << "\tgraphicsPipelineLibraryIndependentInterpolationDecoration = " << value.graphicsPipelineLibraryIndependentInterpolationDecoration << '\n';
+       s << "VkDeviceOrHostAddressConstKHR = {\n";
+       s << "\tdeviceAddress = " << value.deviceAddress << '\n';
+       s << "\thostAddress = " << value.hostAddress << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineLibraryCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryTrianglesDataKHR& value)
 {
-       s << "VkGraphicsPipelineLibraryCreateInfoEXT = {\n";
+       s << "VkAccelerationStructureGeometryTrianglesDataKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getGraphicsPipelineLibraryFlagsEXTStr(value.flags) << '\n';
+       s << "\tvertexFormat = " << value.vertexFormat << '\n';
+       s << "\tvertexData = " << value.vertexData << '\n';
+       s << "\tvertexStride = " << value.vertexStride << '\n';
+       s << "\tmaxVertex = " << value.maxVertex << '\n';
+       s << "\tindexType = " << value.indexType << '\n';
+       s << "\tindexData = " << value.indexData << '\n';
+       s << "\ttransformData = " << value.transformData << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD& value)
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryAabbsDataKHR& value)
 {
-       s << "VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD = {\n";
+       s << "VkAccelerationStructureGeometryAabbsDataKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderEarlyAndLateFragmentTests = " << value.shaderEarlyAndLateFragmentTests << '\n';
+       s << "\tdata = " << value.data << '\n';
+       s << "\tstride = " << value.stride << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryInstancesDataKHR& value)
 {
-       s << "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV = {\n";
+       s << "VkAccelerationStructureGeometryInstancesDataKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfragmentShadingRateEnums = " << value.fragmentShadingRateEnums << '\n';
-       s << "\tsupersampleFragmentShadingRates = " << value.supersampleFragmentShadingRates << '\n';
-       s << "\tnoInvocationFragmentShadingRates = " << value.noInvocationFragmentShadingRates << '\n';
+       s << "\tarrayOfPointers = " << value.arrayOfPointers << '\n';
+       s << "\tdata = " << value.data << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryDataKHR& value)
 {
-       s << "VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxFragmentShadingRateInvocationCount = " << value.maxFragmentShadingRateInvocationCount << '\n';
+       s << "VkAccelerationStructureGeometryDataKHR = {\n";
+       s << "\ttriangles = " << value.triangles << '\n';
+       s << "\taabbs = " << value.aabbs << '\n';
+       s << "\tinstances = " << value.instances << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateEnumStateCreateInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryKHR& value)
 {
-       s << "VkPipelineFragmentShadingRateEnumStateCreateInfoNV = {\n";
+       s << "VkAccelerationStructureGeometryKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshadingRateType = " << value.shadingRateType << '\n';
-       s << "\tshadingRate = " << value.shadingRate << '\n';
-       s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
+       s << "\tgeometryType = " << value.geometryType << '\n';
+       s << "\tgeometry = " << value.geometry << '\n';
+       s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressConstKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildGeometryInfoKHR& value)
 {
-       s << "VkDeviceOrHostAddressConstKHR = {\n";
-       s << "\tdeviceAddress = " << value.deviceAddress << '\n';
-       s << "\thostAddress = " << value.hostAddress << '\n';
+       s << "VkAccelerationStructureBuildGeometryInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\ttype = " << value.type << '\n';
+       s << "\tflags = " << getBuildAccelerationStructureFlagsKHRStr(value.flags) << '\n';
+       s << "\tmode = " << value.mode << '\n';
+       s << "\tsrcAccelerationStructure = " << value.srcAccelerationStructure << '\n';
+       s << "\tdstAccelerationStructure = " << value.dstAccelerationStructure << '\n';
+       s << "\tgeometryCount = " << value.geometryCount << '\n';
+       s << "\tpGeometries = " << value.pGeometries << '\n';
+       s << "\tppGeometries = " << value.ppGeometries << '\n';
+       s << "\tscratchData = " << value.scratchData << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryMotionTrianglesDataNV& value)
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildRangeInfoKHR& value)
 {
-       s << "VkAccelerationStructureGeometryMotionTrianglesDataNV = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tvertexData = " << value.vertexData << '\n';
+       s << "VkAccelerationStructureBuildRangeInfoKHR = {\n";
+       s << "\tprimitiveCount = " << value.primitiveCount << '\n';
+       s << "\tprimitiveOffset = " << value.primitiveOffset << '\n';
+       s << "\tfirstVertex = " << value.firstVertex << '\n';
+       s << "\ttransformOffset = " << value.transformOffset << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoKHR& value)
 {
-       s << "VkAccelerationStructureMotionInfoNV = {\n";
+       s << "VkAccelerationStructureCreateInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxInstances = " << value.maxInstances << '\n';
-       s << "\tflags = " << getAccelerationStructureMotionInfoFlagsNVStr(value.flags) << '\n';
+       s << "\tcreateFlags = " << getAccelerationStructureCreateFlagsKHRStr(value.createFlags) << '\n';
+       s << "\tbuffer = " << value.buffer << '\n';
+       s << "\toffset = " << value.offset << '\n';
+       s << "\tsize = " << value.size << '\n';
+       s << "\ttype = " << value.type << '\n';
+       s << "\tdeviceAddress = " << value.deviceAddress << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMatrixMotionInstanceNV& value)
+std::ostream& operator<< (std::ostream& s, const VkAabbPositionsKHR& value)
 {
-       s << "VkAccelerationStructureMatrixMotionInstanceNV = {\n";
-       s << "\ttransformT0 = " << value.transformT0 << '\n';
-       s << "\ttransformT1 = " << value.transformT1 << '\n';
-       s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
-       s << "\tmask = " << value.mask << '\n';
-       s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
-       s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
-       s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
+       s << "VkAabbPositionsKHR = {\n";
+       s << "\tminX = " << value.minX << '\n';
+       s << "\tminY = " << value.minY << '\n';
+       s << "\tminZ = " << value.minZ << '\n';
+       s << "\tmaxX = " << value.maxX << '\n';
+       s << "\tmaxY = " << value.maxY << '\n';
+       s << "\tmaxZ = " << value.maxZ << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSRTDataNV& value)
+std::ostream& operator<< (std::ostream& s, const VkTransformMatrixKHR& value)
 {
-       s << "VkSRTDataNV = {\n";
-       s << "\tsx = " << value.sx << '\n';
-       s << "\ta = " << value.a << '\n';
-       s << "\tb = " << value.b << '\n';
-       s << "\tpvx = " << value.pvx << '\n';
-       s << "\tsy = " << value.sy << '\n';
-       s << "\tc = " << value.c << '\n';
-       s << "\tpvy = " << value.pvy << '\n';
-       s << "\tsz = " << value.sz << '\n';
-       s << "\tpvz = " << value.pvz << '\n';
-       s << "\tqx = " << value.qx << '\n';
-       s << "\tqy = " << value.qy << '\n';
-       s << "\tqz = " << value.qz << '\n';
-       s << "\tqw = " << value.qw << '\n';
-       s << "\ttx = " << value.tx << '\n';
-       s << "\tty = " << value.ty << '\n';
-       s << "\ttz = " << value.tz << '\n';
+       s << "VkTransformMatrixKHR = {\n";
+       s << "\tmatrix = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.matrix), DE_ARRAY_END(value.matrix)) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureSRTMotionInstanceNV& value)
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInstanceKHR& value)
 {
-       s << "VkAccelerationStructureSRTMotionInstanceNV = {\n";
-       s << "\ttransformT0 = " << value.transformT0 << '\n';
-       s << "\ttransformT1 = " << value.transformT1 << '\n';
+       s << "VkAccelerationStructureInstanceKHR = {\n";
+       s << "\ttransform = " << value.transform << '\n';
        s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
        s << "\tmask = " << value.mask << '\n';
        s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
@@ -12190,491 +11868,567 @@ std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureSRTMotio
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInstanceDataNV& value)
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureDeviceAddressInfoKHR& value)
 {
-       s << "VkAccelerationStructureMotionInstanceDataNV = {\n";
-       s << "\tstaticInstance = " << value.staticInstance << '\n';
-       s << "\tmatrixMotionInstance = " << value.matrixMotionInstance << '\n';
-       s << "\tsrtMotionInstance = " << value.srtMotionInstance << '\n';
+       s << "VkAccelerationStructureDeviceAddressInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInstanceNV& value)
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureVersionInfoKHR& value)
 {
-       s << "VkAccelerationStructureMotionInstanceNV = {\n";
-       s << "\ttype = " << value.type << '\n';
-       s << "\tflags = " << getAccelerationStructureMotionInstanceFlagsNVStr(value.flags) << '\n';
-       s << "\tdata = " << value.data << '\n';
+       s << "VkAccelerationStructureVersionInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tpVersionData = " << value.pVersionData << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureInfoKHR& value)
 {
-       s << "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV = {\n";
+       s << "VkCopyAccelerationStructureInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\trayTracingMotionBlur = " << value.rayTracingMotionBlur << '\n';
-       s << "\trayTracingMotionBlurPipelineTraceRaysIndirect = " << value.rayTracingMotionBlurPipelineTraceRaysIndirect << '\n';
+       s << "\tsrc = " << value.src << '\n';
+       s << "\tdst = " << value.dst << '\n';
+       s << "\tmode = " << value.mode << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureToMemoryInfoKHR& value)
+{
+       s << "VkCopyAccelerationStructureToMemoryInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tsrc = " << value.src << '\n';
+       s << "\tdst = " << value.dst << '\n';
+       s << "\tmode = " << value.mode << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkCopyMemoryToAccelerationStructureInfoKHR& value)
 {
-       s << "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = {\n";
+       s << "VkCopyMemoryToAccelerationStructureInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tycbcr2plane444Formats = " << value.ycbcr2plane444Formats << '\n';
+       s << "\tsrc = " << value.src << '\n';
+       s << "\tdst = " << value.dst << '\n';
+       s << "\tmode = " << value.mode << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineInterfaceCreateInfoKHR& value)
 {
-       s << "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT = {\n";
+       s << "VkRayTracingPipelineInterfaceCreateInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfragmentDensityMapDeferred = " << value.fragmentDensityMapDeferred << '\n';
+       s << "\tmaxPipelineRayPayloadSize = " << value.maxPipelineRayPayloadSize << '\n';
+       s << "\tmaxPipelineRayHitAttributeSize = " << value.maxPipelineRayHitAttributeSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineLibraryCreateInfoKHR& value)
 {
-       s << "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT = {\n";
+       s << "VkPipelineLibraryCreateInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsubsampledLoads = " << value.subsampledLoads << '\n';
-       s << "\tsubsampledCoarseReconstructionEarlyAccess = " << value.subsampledCoarseReconstructionEarlyAccess << '\n';
-       s << "\tmaxSubsampledArrayLayers = " << value.maxSubsampledArrayLayers << '\n';
-       s << "\tmaxDescriptorSetSubsampledSamplers = " << value.maxDescriptorSetSubsampledSamplers << '\n';
+       s << "\tlibraryCount = " << value.libraryCount << '\n';
+       s << "\tpLibraries = " << value.pLibraries << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCopyCommandTransformInfoQCOM& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& value)
 {
-       s << "VkCopyCommandTransformInfoQCOM = {\n";
+       s << "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttransform = " << value.transform << '\n';
+       s << "\textendedDynamicState = " << value.extendedDynamicState << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageCompressionControlFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT& value)
 {
-       s << "VkPhysicalDeviceImageCompressionControlFeaturesEXT = {\n";
+       s << "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\timageCompressionControl = " << value.imageCompressionControl << '\n';
+       s << "\textendedDynamicState2 = " << value.extendedDynamicState2 << '\n';
+       s << "\textendedDynamicState2LogicOp = " << value.extendedDynamicState2LogicOp << '\n';
+       s << "\textendedDynamicState2PatchControlPoints = " << value.extendedDynamicState2PatchControlPoints << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageCompressionControlEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkRenderPassTransformBeginInfoQCOM& value)
 {
-       s << "VkImageCompressionControlEXT = {\n";
+       s << "VkRenderPassTransformBeginInfoQCOM = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getImageCompressionFlagsEXTStr(value.flags) << '\n';
-       s << "\tcompressionControlPlaneCount = " << value.compressionControlPlaneCount << '\n';
-       s << "\tpFixedRateFlags = " << value.pFixedRateFlags << '\n';
+       s << "\ttransform = " << value.transform << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSubresourceLayout2EXT& value)
+std::ostream& operator<< (std::ostream& s, const VkCopyCommandTransformInfoQCOM& value)
 {
-       s << "VkSubresourceLayout2EXT = {\n";
+       s << "VkCopyCommandTransformInfoQCOM = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsubresourceLayout = " << value.subresourceLayout << '\n';
+       s << "\ttransform = " << value.transform << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageSubresource2EXT& value)
+std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderPassTransformInfoQCOM& value)
 {
-       s << "VkImageSubresource2EXT = {\n";
+       s << "VkCommandBufferInheritanceRenderPassTransformInfoQCOM = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\timageSubresource = " << value.imageSubresource << '\n';
+       s << "\ttransform = " << value.transform << '\n';
+       s << "\trenderArea = " << value.renderArea << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageCompressionPropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiagnosticsConfigFeaturesNV& value)
 {
-       s << "VkImageCompressionPropertiesEXT = {\n";
+       s << "VkPhysicalDeviceDiagnosticsConfigFeaturesNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\timageCompressionFlags = " << getImageCompressionFlagsEXTStr(value.imageCompressionFlags) << '\n';
-       s << "\timageCompressionFixedRateFlags = " << getImageCompressionFixedRateFlagsEXTStr(value.imageCompressionFixedRateFlags) << '\n';
+       s << "\tdiagnosticsConfig = " << value.diagnosticsConfig << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice4444FormatsFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkDeviceDiagnosticsConfigCreateInfoNV& value)
 {
-       s << "VkPhysicalDevice4444FormatsFeaturesEXT = {\n";
+       s << "VkDeviceDiagnosticsConfigCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tformatA4R4G4B4 = " << value.formatA4R4G4B4 << '\n';
-       s << "\tformatA4B4G4R4 = " << value.formatA4B4G4R4 << '\n';
+       s << "\tflags = " << getDeviceDiagnosticsConfigFlagsNVStr(value.flags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures& value)
 {
-       s << "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = {\n";
+       s << "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\trasterizationOrderColorAttachmentAccess = " << value.rasterizationOrderColorAttachmentAccess << '\n';
-       s << "\trasterizationOrderDepthAttachmentAccess = " << value.rasterizationOrderDepthAttachmentAccess << '\n';
-       s << "\trasterizationOrderStencilAttachmentAccess = " << value.rasterizationOrderStencilAttachmentAccess << '\n';
+       s << "\tshaderZeroInitializeWorkgroupMemory = " << value.shaderZeroInitializeWorkgroupMemory << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR& value)
 {
-       s << "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT = {\n";
+       s << "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tformatRgba10x6WithoutYCbCrSampler = " << value.formatRgba10x6WithoutYCbCrSampler << '\n';
+       s << "\tshaderSubgroupUniformControlFlow = " << value.shaderSubgroupUniformControlFlow << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2FeaturesEXT& value)
 {
-       s << "VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = {\n";
+       s << "VkPhysicalDeviceRobustness2FeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmutableDescriptorType = " << value.mutableDescriptorType << '\n';
+       s << "\trobustBufferAccess2 = " << value.robustBufferAccess2 << '\n';
+       s << "\trobustImageAccess2 = " << value.robustImageAccess2 << '\n';
+       s << "\tnullDescriptor = " << value.nullDescriptor << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeListVALVE& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2PropertiesEXT& value)
 {
-       s << "VkMutableDescriptorTypeListVALVE = {\n";
-       s << "\tdescriptorTypeCount = " << value.descriptorTypeCount << '\n';
-       s << "\tpDescriptorTypes = " << value.pDescriptorTypes << '\n';
+       s << "VkPhysicalDeviceRobustness2PropertiesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\trobustStorageBufferAccessSizeAlignment = " << value.robustStorageBufferAccessSizeAlignment << '\n';
+       s << "\trobustUniformBufferAccessSizeAlignment = " << value.robustUniformBufferAccessSizeAlignment << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeCreateInfoVALVE& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageRobustnessFeatures& value)
 {
-       s << "VkMutableDescriptorTypeCreateInfoVALVE = {\n";
+       s << "VkPhysicalDeviceImageRobustnessFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmutableDescriptorTypeListCount = " << value.mutableDescriptorTypeListCount << '\n';
-       s << "\tpMutableDescriptorTypeLists = " << value.pMutableDescriptorTypeLists << '\n';
+       s << "\trobustImageAccess = " << value.robustImageAccess << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR& value)
 {
-       s << "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT = {\n";
+       s << "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tvertexInputDynamicState = " << value.vertexInputDynamicState << '\n';
+       s << "\tworkgroupMemoryExplicitLayout = " << value.workgroupMemoryExplicitLayout << '\n';
+       s << "\tworkgroupMemoryExplicitLayoutScalarBlockLayout = " << value.workgroupMemoryExplicitLayoutScalarBlockLayout << '\n';
+       s << "\tworkgroupMemoryExplicitLayout8BitAccess = " << value.workgroupMemoryExplicitLayout8BitAccess << '\n';
+       s << "\tworkgroupMemoryExplicitLayout16BitAccess = " << value.workgroupMemoryExplicitLayout16BitAccess << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDescription2EXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetFeaturesKHR& value)
 {
-       s << "VkVertexInputBindingDescription2EXT = {\n";
+       s << "VkPhysicalDevicePortabilitySubsetFeaturesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tbinding = " << value.binding << '\n';
-       s << "\tstride = " << value.stride << '\n';
-       s << "\tinputRate = " << value.inputRate << '\n';
-       s << "\tdivisor = " << value.divisor << '\n';
+       s << "\tconstantAlphaColorBlendFactors = " << value.constantAlphaColorBlendFactors << '\n';
+       s << "\tevents = " << value.events << '\n';
+       s << "\timageViewFormatReinterpretation = " << value.imageViewFormatReinterpretation << '\n';
+       s << "\timageViewFormatSwizzle = " << value.imageViewFormatSwizzle << '\n';
+       s << "\timageView2DOn3DImage = " << value.imageView2DOn3DImage << '\n';
+       s << "\tmultisampleArrayImage = " << value.multisampleArrayImage << '\n';
+       s << "\tmutableComparisonSamplers = " << value.mutableComparisonSamplers << '\n';
+       s << "\tpointPolygons = " << value.pointPolygons << '\n';
+       s << "\tsamplerMipLodBias = " << value.samplerMipLodBias << '\n';
+       s << "\tseparateStencilMaskRef = " << value.separateStencilMaskRef << '\n';
+       s << "\tshaderSampleRateInterpolationFunctions = " << value.shaderSampleRateInterpolationFunctions << '\n';
+       s << "\ttessellationIsolines = " << value.tessellationIsolines << '\n';
+       s << "\ttessellationPointMode = " << value.tessellationPointMode << '\n';
+       s << "\ttriangleFans = " << value.triangleFans << '\n';
+       s << "\tvertexAttributeAccessBeyondStride = " << value.vertexAttributeAccessBeyondStride << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVertexInputAttributeDescription2EXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetPropertiesKHR& value)
 {
-       s << "VkVertexInputAttributeDescription2EXT = {\n";
+       s << "VkPhysicalDevicePortabilitySubsetPropertiesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tlocation = " << value.location << '\n';
-       s << "\tbinding = " << value.binding << '\n';
-       s << "\tformat = " << value.format << '\n';
-       s << "\toffset = " << value.offset << '\n';
+       s << "\tminVertexInputBindingStrideAlignment = " << value.minVertexInputBindingStrideAlignment << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDrmPropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevice4444FormatsFeaturesEXT& value)
 {
-       s << "VkPhysicalDeviceDrmPropertiesEXT = {\n";
+       s << "VkPhysicalDevice4444FormatsFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thasPrimary = " << value.hasPrimary << '\n';
-       s << "\thasRender = " << value.hasRender << '\n';
-       s << "\tprimaryMajor = " << value.primaryMajor << '\n';
-       s << "\tprimaryMinor = " << value.primaryMinor << '\n';
-       s << "\trenderMajor = " << value.renderMajor << '\n';
-       s << "\trenderMinor = " << value.renderMinor << '\n';
+       s << "\tformatA4R4G4B4 = " << value.formatA4R4G4B4 << '\n';
+       s << "\tformatA4B4G4R4 = " << value.formatA4B4G4R4 << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClipControlFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI& value)
 {
-       s << "VkPhysicalDeviceDepthClipControlFeaturesEXT = {\n";
+       s << "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdepthClipControl = " << value.depthClipControl << '\n';
+       s << "\tsubpassShading = " << value.subpassShading << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineViewportDepthClipControlCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkBufferCopy2& value)
 {
-       s << "VkPipelineViewportDepthClipControlCreateInfoEXT = {\n";
+       s << "VkBufferCopy2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tnegativeOneToOne = " << value.negativeOneToOne << '\n';
+       s << "\tsrcOffset = " << value.srcOffset << '\n';
+       s << "\tdstOffset = " << value.dstOffset << '\n';
+       s << "\tsize = " << value.size << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkImageCopy2& value)
 {
-       s << "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT = {\n";
+       s << "VkImageCopy2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tprimitiveTopologyListRestart = " << value.primitiveTopologyListRestart << '\n';
-       s << "\tprimitiveTopologyPatchListRestart = " << value.primitiveTopologyPatchListRestart << '\n';
+       s << "\tsrcSubresource = " << value.srcSubresource << '\n';
+       s << "\tsrcOffset = " << value.srcOffset << '\n';
+       s << "\tdstSubresource = " << value.dstSubresource << '\n';
+       s << "\tdstOffset = " << value.dstOffset << '\n';
+       s << "\textent = " << value.extent << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSubpassShadingPipelineCreateInfoHUAWEI& value)
+std::ostream& operator<< (std::ostream& s, const VkImageBlit2& value)
 {
-       s << "VkSubpassShadingPipelineCreateInfoHUAWEI = {\n";
+       s << "VkImageBlit2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\trenderPass = " << value.renderPass << '\n';
-       s << "\tsubpass = " << value.subpass << '\n';
+       s << "\tsrcSubresource = " << value.srcSubresource << '\n';
+       s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
+       s << "\tdstSubresource = " << value.dstSubresource << '\n';
+       s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassShadingFeaturesHUAWEI& value)
+std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy2& value)
 {
-       s << "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI = {\n";
+       s << "VkBufferImageCopy2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsubpassShading = " << value.subpassShading << '\n';
+       s << "\tbufferOffset = " << value.bufferOffset << '\n';
+       s << "\tbufferRowLength = " << value.bufferRowLength << '\n';
+       s << "\tbufferImageHeight = " << value.bufferImageHeight << '\n';
+       s << "\timageSubresource = " << value.imageSubresource << '\n';
+       s << "\timageOffset = " << value.imageOffset << '\n';
+       s << "\timageExtent = " << value.imageExtent << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassShadingPropertiesHUAWEI& value)
+std::ostream& operator<< (std::ostream& s, const VkImageResolve2& value)
 {
-       s << "VkPhysicalDeviceSubpassShadingPropertiesHUAWEI = {\n";
+       s << "VkImageResolve2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxSubpassShadingWorkgroupSizeAspectRatio = " << value.maxSubpassShadingWorkgroupSizeAspectRatio << '\n';
+       s << "\tsrcSubresource = " << value.srcSubresource << '\n';
+       s << "\tsrcOffset = " << value.srcOffset << '\n';
+       s << "\tdstSubresource = " << value.dstSubresource << '\n';
+       s << "\tdstOffset = " << value.dstOffset << '\n';
+       s << "\textent = " << value.extent << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInvocationMaskFeaturesHUAWEI& value)
+std::ostream& operator<< (std::ostream& s, const VkCopyBufferInfo2& value)
 {
-       s << "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI = {\n";
+       s << "VkCopyBufferInfo2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tinvocationMask = " << value.invocationMask << '\n';
+       s << "\tsrcBuffer = " << value.srcBuffer << '\n';
+       s << "\tdstBuffer = " << value.dstBuffer << '\n';
+       s << "\tregionCount = " << value.regionCount << '\n';
+       s << "\tpRegions = " << value.pRegions << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryGetRemoteAddressInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkCopyImageInfo2& value)
 {
-       s << "VkMemoryGetRemoteAddressInfoNV = {\n";
+       s << "VkCopyImageInfo2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemory = " << value.memory << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
+       s << "\tsrcImage = " << value.srcImage << '\n';
+       s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
+       s << "\tdstImage = " << value.dstImage << '\n';
+       s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
+       s << "\tregionCount = " << value.regionCount << '\n';
+       s << "\tpRegions = " << value.pRegions << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkBlitImageInfo2& value)
 {
-       s << "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV = {\n";
+       s << "VkBlitImageInfo2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\texternalMemoryRDMA = " << value.externalMemoryRDMA << '\n';
+       s << "\tsrcImage = " << value.srcImage << '\n';
+       s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
+       s << "\tdstImage = " << value.dstImage << '\n';
+       s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
+       s << "\tregionCount = " << value.regionCount << '\n';
+       s << "\tpRegions = " << value.pRegions << '\n';
+       s << "\tfilter = " << value.filter << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelinePropertiesIdentifierEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkCopyBufferToImageInfo2& value)
 {
-       s << "VkPipelinePropertiesIdentifierEXT = {\n";
+       s << "VkCopyBufferToImageInfo2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpipelineIdentifier = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.pipelineIdentifier)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.pipelineIdentifier))) << '\n';
+       s << "\tsrcBuffer = " << value.srcBuffer << '\n';
+       s << "\tdstImage = " << value.dstImage << '\n';
+       s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
+       s << "\tregionCount = " << value.regionCount << '\n';
+       s << "\tpRegions = " << value.pRegions << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelinePropertiesFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkCopyImageToBufferInfo2& value)
 {
-       s << "VkPhysicalDevicePipelinePropertiesFeaturesEXT = {\n";
+       s << "VkCopyImageToBufferInfo2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpipelinePropertiesIdentifier = " << value.pipelinePropertiesIdentifier << '\n';
+       s << "\tsrcImage = " << value.srcImage << '\n';
+       s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
+       s << "\tdstBuffer = " << value.dstBuffer << '\n';
+       s << "\tregionCount = " << value.regionCount << '\n';
+       s << "\tpRegions = " << value.pRegions << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkResolveImageInfo2& value)
 {
-       s << "VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = {\n";
+       s << "VkResolveImageInfo2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmultisampledRenderToSingleSampled = " << value.multisampledRenderToSingleSampled << '\n';
+       s << "\tsrcImage = " << value.srcImage << '\n';
+       s << "\tsrcImageLayout = " << value.srcImageLayout << '\n';
+       s << "\tdstImage = " << value.dstImage << '\n';
+       s << "\tdstImageLayout = " << value.dstImageLayout << '\n';
+       s << "\tregionCount = " << value.regionCount << '\n';
+       s << "\tpRegions = " << value.pRegions << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSubpassResolvePerformanceQueryEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT& value)
 {
-       s << "VkSubpassResolvePerformanceQueryEXT = {\n";
+       s << "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\toptimal = " << value.optimal << '\n';
+       s << "\tshaderImageInt64Atomics = " << value.shaderImageInt64Atomics << '\n';
+       s << "\tsparseImageInt64Atomics = " << value.sparseImageInt64Atomics << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMultisampledRenderToSingleSampledInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkFragmentShadingRateAttachmentInfoKHR& value)
 {
-       s << "VkMultisampledRenderToSingleSampledInfoEXT = {\n";
+       s << "VkFragmentShadingRateAttachmentInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmultisampledRenderToSingleSampledEnable = " << value.multisampledRenderToSingleSampledEnable << '\n';
-       s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
+       s << "\tpFragmentShadingRateAttachment = " << value.pFragmentShadingRateAttachment << '\n';
+       s << "\tshadingRateAttachmentTexelSize = " << value.shadingRateAttachmentTexelSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateStateCreateInfoKHR& value)
 {
-       s << "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT = {\n";
+       s << "VkPipelineFragmentShadingRateStateCreateInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\textendedDynamicState2 = " << value.extendedDynamicState2 << '\n';
-       s << "\textendedDynamicState2LogicOp = " << value.extendedDynamicState2LogicOp << '\n';
-       s << "\textendedDynamicState2PatchControlPoints = " << value.extendedDynamicState2PatchControlPoints << '\n';
+       s << "\tfragmentSize = " << value.fragmentSize << '\n';
+       s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceColorWriteEnableFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateFeaturesKHR& value)
 {
-       s << "VkPhysicalDeviceColorWriteEnableFeaturesEXT = {\n";
+       s << "VkPhysicalDeviceFragmentShadingRateFeaturesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcolorWriteEnable = " << value.colorWriteEnable << '\n';
+       s << "\tpipelineFragmentShadingRate = " << value.pipelineFragmentShadingRate << '\n';
+       s << "\tprimitiveFragmentShadingRate = " << value.primitiveFragmentShadingRate << '\n';
+       s << "\tattachmentFragmentShadingRate = " << value.attachmentFragmentShadingRate << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineColorWriteCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRatePropertiesKHR& value)
 {
-       s << "VkPipelineColorWriteCreateInfoEXT = {\n";
+       s << "VkPhysicalDeviceFragmentShadingRatePropertiesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tattachmentCount = " << value.attachmentCount << '\n';
-       s << "\tpColorWriteEnables = " << value.pColorWriteEnables << '\n';
+       s << "\tminFragmentShadingRateAttachmentTexelSize = " << value.minFragmentShadingRateAttachmentTexelSize << '\n';
+       s << "\tmaxFragmentShadingRateAttachmentTexelSize = " << value.maxFragmentShadingRateAttachmentTexelSize << '\n';
+       s << "\tmaxFragmentShadingRateAttachmentTexelSizeAspectRatio = " << value.maxFragmentShadingRateAttachmentTexelSizeAspectRatio << '\n';
+       s << "\tprimitiveFragmentShadingRateWithMultipleViewports = " << value.primitiveFragmentShadingRateWithMultipleViewports << '\n';
+       s << "\tlayeredShadingRateAttachments = " << value.layeredShadingRateAttachments << '\n';
+       s << "\tfragmentShadingRateNonTrivialCombinerOps = " << value.fragmentShadingRateNonTrivialCombinerOps << '\n';
+       s << "\tmaxFragmentSize = " << value.maxFragmentSize << '\n';
+       s << "\tmaxFragmentSizeAspectRatio = " << value.maxFragmentSizeAspectRatio << '\n';
+       s << "\tmaxFragmentShadingRateCoverageSamples = " << value.maxFragmentShadingRateCoverageSamples << '\n';
+       s << "\tmaxFragmentShadingRateRasterizationSamples = " << value.maxFragmentShadingRateRasterizationSamples << '\n';
+       s << "\tfragmentShadingRateWithShaderDepthStencilWrites = " << value.fragmentShadingRateWithShaderDepthStencilWrites << '\n';
+       s << "\tfragmentShadingRateWithSampleMask = " << value.fragmentShadingRateWithSampleMask << '\n';
+       s << "\tfragmentShadingRateWithShaderSampleMask = " << value.fragmentShadingRateWithShaderSampleMask << '\n';
+       s << "\tfragmentShadingRateWithConservativeRasterization = " << value.fragmentShadingRateWithConservativeRasterization << '\n';
+       s << "\tfragmentShadingRateWithFragmentShaderInterlock = " << value.fragmentShadingRateWithFragmentShaderInterlock << '\n';
+       s << "\tfragmentShadingRateWithCustomSampleLocations = " << value.fragmentShadingRateWithCustomSampleLocations << '\n';
+       s << "\tfragmentShadingRateStrictMultiplyCombiner = " << value.fragmentShadingRateStrictMultiplyCombiner << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateKHR& value)
 {
-       s << "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = {\n";
+       s << "VkPhysicalDeviceFragmentShadingRateKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tprimitivesGeneratedQuery = " << value.primitivesGeneratedQuery << '\n';
-       s << "\tprimitivesGeneratedQueryWithRasterizerDiscard = " << value.primitivesGeneratedQueryWithRasterizerDiscard << '\n';
-       s << "\tprimitivesGeneratedQueryWithNonZeroStreams = " << value.primitivesGeneratedQueryWithNonZeroStreams << '\n';
+       s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
+       s << "\tfragmentSize = " << value.fragmentSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageViewMinLodFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderTerminateInvocationFeatures& value)
 {
-       s << "VkPhysicalDeviceImageViewMinLodFeaturesEXT = {\n";
+       s << "VkPhysicalDeviceShaderTerminateInvocationFeatures = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tminLod = " << value.minLod << '\n';
+       s << "\tshaderTerminateInvocation = " << value.shaderTerminateInvocation << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageViewMinLodCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV& value)
 {
-       s << "VkImageViewMinLodCreateInfoEXT = {\n";
+       s << "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tminLod = " << value.minLod << '\n';
+       s << "\tfragmentShadingRateEnums = " << value.fragmentShadingRateEnums << '\n';
+       s << "\tsupersampleFragmentShadingRates = " << value.supersampleFragmentShadingRates << '\n';
+       s << "\tnoInvocationFragmentShadingRates = " << value.noInvocationFragmentShadingRates << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiDrawFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV& value)
 {
-       s << "VkPhysicalDeviceMultiDrawFeaturesEXT = {\n";
+       s << "VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmultiDraw = " << value.multiDraw << '\n';
+       s << "\tmaxFragmentShadingRateInvocationCount = " << value.maxFragmentShadingRateInvocationCount << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultiDrawPropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineFragmentShadingRateEnumStateCreateInfoNV& value)
 {
-       s << "VkPhysicalDeviceMultiDrawPropertiesEXT = {\n";
+       s << "VkPipelineFragmentShadingRateEnumStateCreateInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxMultiDrawCount = " << value.maxMultiDrawCount << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkMultiDrawInfoEXT& value)
-{
-       s << "VkMultiDrawInfoEXT = {\n";
-       s << "\tfirstVertex = " << value.firstVertex << '\n';
-       s << "\tvertexCount = " << value.vertexCount << '\n';
+       s << "\tshadingRateType = " << value.shadingRateType << '\n';
+       s << "\tshadingRate = " << value.shadingRate << '\n';
+       s << "\tcombinerOps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.combinerOps), DE_ARRAY_END(value.combinerOps)) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMultiDrawIndexedInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildSizesInfoKHR& value)
 {
-       s << "VkMultiDrawIndexedInfoEXT = {\n";
-       s << "\tfirstIndex = " << value.firstIndex << '\n';
-       s << "\tindexCount = " << value.indexCount << '\n';
-       s << "\tvertexOffset = " << value.vertexOffset << '\n';
+       s << "VkAccelerationStructureBuildSizesInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\taccelerationStructureSize = " << value.accelerationStructureSize << '\n';
+       s << "\tupdateScratchSize = " << value.updateScratchSize << '\n';
+       s << "\tbuildScratchSize = " << value.buildScratchSize << '\n';
        s << '}';
        return s;
 }
@@ -12690,3093 +12444,3137 @@ std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImage2DViewOf3D
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT& value)
-{
-       s << "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tborderColorSwizzle = " << value.borderColorSwizzle << '\n';
-       s << "\tborderColorSwizzleFromImage = " << value.borderColorSwizzleFromImage << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkSamplerBorderColorComponentMappingCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE& value)
 {
-       s << "VkSamplerBorderColorComponentMappingCreateInfoEXT = {\n";
+       s << "VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcomponents = " << value.components << '\n';
-       s << "\tsrgb = " << value.srgb << '\n';
+       s << "\tmutableDescriptorType = " << value.mutableDescriptorType << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeListVALVE& value)
 {
-       s << "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpageableDeviceLocalMemory = " << value.pageableDeviceLocalMemory << '\n';
+       s << "VkMutableDescriptorTypeListVALVE = {\n";
+       s << "\tdescriptorTypeCount = " << value.descriptorTypeCount << '\n';
+       s << "\tpDescriptorTypes = " << value.pDescriptorTypes << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE& value)
+std::ostream& operator<< (std::ostream& s, const VkMutableDescriptorTypeCreateInfoVALVE& value)
 {
-       s << "VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = {\n";
+       s << "VkMutableDescriptorTypeCreateInfoVALVE = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdescriptorSetHostMapping = " << value.descriptorSetHostMapping << '\n';
+       s << "\tmutableDescriptorTypeListCount = " << value.mutableDescriptorTypeListCount << '\n';
+       s << "\tpMutableDescriptorTypeLists = " << value.pMutableDescriptorTypeLists << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDescriptorSetBindingReferenceVALVE& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDepthClipControlFeaturesEXT& value)
 {
-       s << "VkDescriptorSetBindingReferenceVALVE = {\n";
+       s << "VkPhysicalDeviceDepthClipControlFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdescriptorSetLayout = " << value.descriptorSetLayout << '\n';
-       s << "\tbinding = " << value.binding << '\n';
+       s << "\tdepthClipControl = " << value.depthClipControl << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutHostMappingInfoVALVE& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineViewportDepthClipControlCreateInfoEXT& value)
 {
-       s << "VkDescriptorSetLayoutHostMappingInfoVALVE = {\n";
+       s << "VkPipelineViewportDepthClipControlCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdescriptorOffset = " << value.descriptorOffset << '\n';
-       s << "\tdescriptorSize = " << value.descriptorSize << '\n';
+       s << "\tnegativeOneToOne = " << value.negativeOneToOne << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT& value)
 {
-       s << "VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT = {\n";
+       s << "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tnonSeamlessCubeMap = " << value.nonSeamlessCubeMap << '\n';
+       s << "\tvertexInputDynamicState = " << value.vertexInputDynamicState << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExternalMemoryRDMAFeaturesNV& value)
 {
-       s << "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = {\n";
+       s << "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfragmentDensityMapOffset = " << value.fragmentDensityMapOffset << '\n';
+       s << "\texternalMemoryRDMA = " << value.externalMemoryRDMA << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM& value)
+std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDescription2EXT& value)
 {
-       s << "VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM = {\n";
+       s << "VkVertexInputBindingDescription2EXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfragmentDensityOffsetGranularity = " << value.fragmentDensityOffsetGranularity << '\n';
+       s << "\tbinding = " << value.binding << '\n';
+       s << "\tstride = " << value.stride << '\n';
+       s << "\tinputRate = " << value.inputRate << '\n';
+       s << "\tdivisor = " << value.divisor << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSubpassFragmentDensityMapOffsetEndInfoQCOM& value)
+std::ostream& operator<< (std::ostream& s, const VkVertexInputAttributeDescription2EXT& value)
 {
-       s << "VkSubpassFragmentDensityMapOffsetEndInfoQCOM = {\n";
+       s << "VkVertexInputAttributeDescription2EXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfragmentDensityOffsetCount = " << value.fragmentDensityOffsetCount << '\n';
-       s << "\tpFragmentDensityOffsets = " << value.pFragmentDensityOffsets << '\n';
+       s << "\tlocation = " << value.location << '\n';
+       s << "\tbinding = " << value.binding << '\n';
+       s << "\tformat = " << value.format << '\n';
+       s << "\toffset = " << value.offset << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLinearColorAttachmentFeaturesNV& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceColorWriteEnableFeaturesEXT& value)
 {
-       s << "VkPhysicalDeviceLinearColorAttachmentFeaturesNV = {\n";
+       s << "VkPhysicalDeviceColorWriteEnableFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tlinearColorAttachment = " << value.linearColorAttachment << '\n';
+       s << "\tcolorWriteEnable = " << value.colorWriteEnable << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineColorWriteCreateInfoEXT& value)
 {
-       s << "VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = {\n";
+       s << "VkPipelineColorWriteCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\timageCompressionControlSwapchain = " << value.imageCompressionControlSwapchain << '\n';
+       s << "\tattachmentCount = " << value.attachmentCount << '\n';
+       s << "\tpColorWriteEnables = " << value.pColorWriteEnables << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageViewSampleWeightCreateInfoQCOM& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier2& value)
 {
-       s << "VkImageViewSampleWeightCreateInfoQCOM = {\n";
+       s << "VkMemoryBarrier2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfilterCenter = " << value.filterCenter << '\n';
-       s << "\tfilterSize = " << value.filterSize << '\n';
-       s << "\tnumPhases = " << value.numPhases << '\n';
+       s << "\tsrcStageMask = " << getPipelineStageFlags2Str(value.srcStageMask) << '\n';
+       s << "\tsrcAccessMask = " << getAccessFlags2Str(value.srcAccessMask) << '\n';
+       s << "\tdstStageMask = " << getPipelineStageFlags2Str(value.dstStageMask) << '\n';
+       s << "\tdstAccessMask = " << getAccessFlags2Str(value.dstAccessMask) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageProcessingFeaturesQCOM& value)
+std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier2& value)
 {
-       s << "VkPhysicalDeviceImageProcessingFeaturesQCOM = {\n";
+       s << "VkImageMemoryBarrier2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttextureSampleWeighted = " << value.textureSampleWeighted << '\n';
-       s << "\ttextureBoxFilter = " << value.textureBoxFilter << '\n';
-       s << "\ttextureBlockMatch = " << value.textureBlockMatch << '\n';
+       s << "\tsrcStageMask = " << getPipelineStageFlags2Str(value.srcStageMask) << '\n';
+       s << "\tsrcAccessMask = " << getAccessFlags2Str(value.srcAccessMask) << '\n';
+       s << "\tdstStageMask = " << getPipelineStageFlags2Str(value.dstStageMask) << '\n';
+       s << "\tdstAccessMask = " << getAccessFlags2Str(value.dstAccessMask) << '\n';
+       s << "\toldLayout = " << value.oldLayout << '\n';
+       s << "\tnewLayout = " << value.newLayout << '\n';
+       s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
+       s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
+       s << "\timage = " << value.image << '\n';
+       s << "\tsubresourceRange = " << value.subresourceRange << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageProcessingPropertiesQCOM& value)
+std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier2& value)
 {
-       s << "VkPhysicalDeviceImageProcessingPropertiesQCOM = {\n";
+       s << "VkBufferMemoryBarrier2 = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxWeightFilterPhases = " << value.maxWeightFilterPhases << '\n';
-       s << "\tmaxWeightFilterDimension = " << value.maxWeightFilterDimension << '\n';
-       s << "\tmaxBlockMatchRegion = " << value.maxBlockMatchRegion << '\n';
-       s << "\tmaxBoxFilterBlockSize = " << value.maxBoxFilterBlockSize << '\n';
+       s << "\tsrcStageMask = " << getPipelineStageFlags2Str(value.srcStageMask) << '\n';
+       s << "\tsrcAccessMask = " << getAccessFlags2Str(value.srcAccessMask) << '\n';
+       s << "\tdstStageMask = " << getPipelineStageFlags2Str(value.dstStageMask) << '\n';
+       s << "\tdstAccessMask = " << getAccessFlags2Str(value.dstAccessMask) << '\n';
+       s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
+       s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
+       s << "\tbuffer = " << value.buffer << '\n';
+       s << "\toffset = " << value.offset << '\n';
+       s << "\tsize = " << value.size << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkDependencyInfo& value)
 {
-       s << "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT = {\n";
+       s << "VkDependencyInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsubpassMergeFeedback = " << value.subpassMergeFeedback << '\n';
+       s << "\tdependencyFlags = " << getDependencyFlagsStr(value.dependencyFlags) << '\n';
+       s << "\tmemoryBarrierCount = " << value.memoryBarrierCount << '\n';
+       s << "\tpMemoryBarriers = " << value.pMemoryBarriers << '\n';
+       s << "\tbufferMemoryBarrierCount = " << value.bufferMemoryBarrierCount << '\n';
+       s << "\tpBufferMemoryBarriers = " << value.pBufferMemoryBarriers << '\n';
+       s << "\timageMemoryBarrierCount = " << value.imageMemoryBarrierCount << '\n';
+       s << "\tpImageMemoryBarriers = " << value.pImageMemoryBarriers << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationControlEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkSemaphoreSubmitInfo& value)
 {
-       s << "VkRenderPassCreationControlEXT = {\n";
+       s << "VkSemaphoreSubmitInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdisallowMerging = " << value.disallowMerging << '\n';
-       s << '}';
-       return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationFeedbackInfoEXT& value)
-{
-       s << "VkRenderPassCreationFeedbackInfoEXT = {\n";
-       s << "\tpostMergeSubpassCount = " << value.postMergeSubpassCount << '\n';
+       s << "\tsemaphore = " << value.semaphore << '\n';
+       s << "\tvalue = " << value.value << '\n';
+       s << "\tstageMask = " << getPipelineStageFlags2Str(value.stageMask) << '\n';
+       s << "\tdeviceIndex = " << value.deviceIndex << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationFeedbackCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkCommandBufferSubmitInfo& value)
 {
-       s << "VkRenderPassCreationFeedbackCreateInfoEXT = {\n";
+       s << "VkCommandBufferSubmitInfo = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpRenderPassFeedback = " << value.pRenderPassFeedback << '\n';
+       s << "\tcommandBuffer = " << value.commandBuffer << '\n';
+       s << "\tdeviceMask = " << value.deviceMask << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkRenderPassSubpassFeedbackInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkSubmitInfo2& value)
 {
-       s << "VkRenderPassSubpassFeedbackInfoEXT = {\n";
-       s << "\tsubpassMergeStatus = " << value.subpassMergeStatus << '\n';
-       s << "\tdescription = " << (const char*)value.description << '\n';
-       s << "\tpostMergeIndex = " << value.postMergeIndex << '\n';
+       s << "VkSubmitInfo2 = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tflags = " << getSubmitFlagsStr(value.flags) << '\n';
+       s << "\twaitSemaphoreInfoCount = " << value.waitSemaphoreInfoCount << '\n';
+       s << "\tpWaitSemaphoreInfos = " << value.pWaitSemaphoreInfos << '\n';
+       s << "\tcommandBufferInfoCount = " << value.commandBufferInfoCount << '\n';
+       s << "\tpCommandBufferInfos = " << value.pCommandBufferInfos << '\n';
+       s << "\tsignalSemaphoreInfoCount = " << value.signalSemaphoreInfoCount << '\n';
+       s << "\tpSignalSemaphoreInfos = " << value.pSignalSemaphoreInfos << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkRenderPassSubpassFeedbackCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkQueueFamilyCheckpointProperties2NV& value)
 {
-       s << "VkRenderPassSubpassFeedbackCreateInfoEXT = {\n";
+       s << "VkQueueFamilyCheckpointProperties2NV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpSubpassFeedback = " << value.pSubpassFeedback << '\n';
+       s << "\tcheckpointExecutionStageMask = " << getPipelineStageFlags2Str(value.checkpointExecutionStageMask) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkCheckpointData2NV& value)
 {
-       s << "VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT = {\n";
+       s << "VkCheckpointData2NV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderModuleIdentifier = " << value.shaderModuleIdentifier << '\n';
+       s << "\tstage = " << getPipelineStageFlags2Str(value.stage) << '\n';
+       s << "\tpCheckpointMarker = " << value.pCheckpointMarker << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSynchronization2Features& value)
 {
-       s << "VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT = {\n";
+       s << "VkPhysicalDeviceSynchronization2Features = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderModuleIdentifierAlgorithmUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.shaderModuleIdentifierAlgorithmUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.shaderModuleIdentifierAlgorithmUUID))) << '\n';
+       s << "\tsynchronization2 = " << value.synchronization2 << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageModuleIdentifierCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT& value)
 {
-       s << "VkPipelineShaderStageModuleIdentifierCreateInfoEXT = {\n";
+       s << "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tidentifierSize = " << value.identifierSize << '\n';
-       s << "\tpIdentifier = " << value.pIdentifier << '\n';
+       s << "\tprimitivesGeneratedQuery = " << value.primitivesGeneratedQuery << '\n';
+       s << "\tprimitivesGeneratedQueryWithRasterizerDiscard = " << value.primitivesGeneratedQueryWithRasterizerDiscard << '\n';
+       s << "\tprimitivesGeneratedQueryWithNonZeroStreams = " << value.primitivesGeneratedQueryWithNonZeroStreams << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkShaderModuleIdentifierEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT& value)
 {
-       s << "VkShaderModuleIdentifierEXT = {\n";
+       s << "VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tidentifierSize = " << value.identifierSize << '\n';
-       s << "\tidentifier = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.identifier)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.identifier))) << '\n';
+       s << "\tmultisampledRenderToSingleSampled = " << value.multisampledRenderToSingleSampled << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTilePropertiesFeaturesQCOM& value)
+std::ostream& operator<< (std::ostream& s, const VkSubpassResolvePerformanceQueryEXT& value)
 {
-       s << "VkPhysicalDeviceTilePropertiesFeaturesQCOM = {\n";
+       s << "VkSubpassResolvePerformanceQueryEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttileProperties = " << value.tileProperties << '\n';
+       s << "\toptimal = " << value.optimal << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkTilePropertiesQCOM& value)
+std::ostream& operator<< (std::ostream& s, const VkMultisampledRenderToSingleSampledInfoEXT& value)
 {
-       s << "VkTilePropertiesQCOM = {\n";
+       s << "VkMultisampledRenderToSingleSampledInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttileSize = " << value.tileSize << '\n';
-       s << "\tapronSize = " << value.apronSize << '\n';
-       s << "\torigin = " << value.origin << '\n';
+       s << "\tmultisampledRenderToSingleSampledEnable = " << value.multisampledRenderToSingleSampledEnable << '\n';
+       s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoQueueFamilyProperties2KHR& value)
 {
-       s << "VkDeviceOrHostAddressKHR = {\n";
-       s << "\tdeviceAddress = " << value.deviceAddress << '\n';
-       s << "\thostAddress = " << value.hostAddress << '\n';
+       s << "VkVideoQueueFamilyProperties2KHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tvideoCodecOperations = " << getVideoCodecOperationFlagsKHRStr(value.videoCodecOperations) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildRangeInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkQueueFamilyQueryResultStatusProperties2KHR& value)
 {
-       s << "VkAccelerationStructureBuildRangeInfoKHR = {\n";
-       s << "\tprimitiveCount = " << value.primitiveCount << '\n';
-       s << "\tprimitiveOffset = " << value.primitiveOffset << '\n';
-       s << "\tfirstVertex = " << value.firstVertex << '\n';
-       s << "\ttransformOffset = " << value.transformOffset << '\n';
+       s << "VkQueueFamilyQueryResultStatusProperties2KHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tqueryResultStatusSupport = " << value.queryResultStatusSupport << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryTrianglesDataKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoProfilesKHR& value)
 {
-       s << "VkAccelerationStructureGeometryTrianglesDataKHR = {\n";
+       s << "VkVideoProfilesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tvertexFormat = " << value.vertexFormat << '\n';
-       s << "\tvertexData = " << value.vertexData << '\n';
-       s << "\tvertexStride = " << value.vertexStride << '\n';
-       s << "\tmaxVertex = " << value.maxVertex << '\n';
-       s << "\tindexType = " << value.indexType << '\n';
-       s << "\tindexData = " << value.indexData << '\n';
-       s << "\ttransformData = " << value.transformData << '\n';
+       s << "\tprofileCount = " << value.profileCount << '\n';
+       s << "\tpProfiles = " << value.pProfiles << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryAabbsDataKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVideoFormatInfoKHR& value)
 {
-       s << "VkAccelerationStructureGeometryAabbsDataKHR = {\n";
+       s << "VkPhysicalDeviceVideoFormatInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tdata = " << value.data << '\n';
-       s << "\tstride = " << value.stride << '\n';
+       s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryInstancesDataKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoFormatPropertiesKHR& value)
 {
-       s << "VkAccelerationStructureGeometryInstancesDataKHR = {\n";
+       s << "VkVideoFormatPropertiesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tarrayOfPointers = " << value.arrayOfPointers << '\n';
-       s << "\tdata = " << value.data << '\n';
+       s << "\tformat = " << value.format << '\n';
+       s << "\tcomponentMapping = " << value.componentMapping << '\n';
+       s << "\timageCreateFlags = " << getImageCreateFlagsStr(value.imageCreateFlags) << '\n';
+       s << "\timageType = " << value.imageType << '\n';
+       s << "\timageTiling = " << value.imageTiling << '\n';
+       s << "\timageUsageFlags = " << getImageUsageFlagsStr(value.imageUsageFlags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryDataKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoProfileKHR& value)
 {
-       s << "VkAccelerationStructureGeometryDataKHR = {\n";
-       s << "\ttriangles = " << value.triangles << '\n';
-       s << "\taabbs = " << value.aabbs << '\n';
-       s << "\tinstances = " << value.instances << '\n';
+       s << "VkVideoProfileKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tvideoCodecOperation = " << value.videoCodecOperation << '\n';
+       s << "\tchromaSubsampling = " << getVideoChromaSubsamplingFlagsKHRStr(value.chromaSubsampling) << '\n';
+       s << "\tlumaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.lumaBitDepth) << '\n';
+       s << "\tchromaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.chromaBitDepth) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoCapabilitiesKHR& value)
 {
-       s << "VkAccelerationStructureGeometryKHR = {\n";
+       s << "VkVideoCapabilitiesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tgeometryType = " << value.geometryType << '\n';
-       s << "\tgeometry = " << value.geometry << '\n';
-       s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
+       s << "\tcapabilityFlags = " << getVideoCapabilityFlagsKHRStr(value.capabilityFlags) << '\n';
+       s << "\tminBitstreamBufferOffsetAlignment = " << value.minBitstreamBufferOffsetAlignment << '\n';
+       s << "\tminBitstreamBufferSizeAlignment = " << value.minBitstreamBufferSizeAlignment << '\n';
+       s << "\tvideoPictureExtentGranularity = " << value.videoPictureExtentGranularity << '\n';
+       s << "\tminExtent = " << value.minExtent << '\n';
+       s << "\tmaxExtent = " << value.maxExtent << '\n';
+       s << "\tmaxReferencePicturesSlotsCount = " << value.maxReferencePicturesSlotsCount << '\n';
+       s << "\tmaxReferencePicturesActiveCount = " << value.maxReferencePicturesActiveCount << '\n';
+       s << "\tstdHeaderVersion = " << value.stdHeaderVersion << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildGeometryInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoGetMemoryPropertiesKHR& value)
 {
-       s << "VkAccelerationStructureBuildGeometryInfoKHR = {\n";
+       s << "VkVideoGetMemoryPropertiesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttype = " << value.type << '\n';
-       s << "\tflags = " << getBuildAccelerationStructureFlagsKHRStr(value.flags) << '\n';
-       s << "\tmode = " << value.mode << '\n';
-       s << "\tsrcAccelerationStructure = " << value.srcAccelerationStructure << '\n';
-       s << "\tdstAccelerationStructure = " << value.dstAccelerationStructure << '\n';
-       s << "\tgeometryCount = " << value.geometryCount << '\n';
-       s << "\tpGeometries = " << value.pGeometries << '\n';
-       s << "\tppGeometries = " << value.ppGeometries << '\n';
-       s << "\tscratchData = " << value.scratchData << '\n';
+       s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
+       s << "\tpMemoryRequirements = " << value.pMemoryRequirements << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoBindMemoryKHR& value)
 {
-       s << "VkAccelerationStructureCreateInfoKHR = {\n";
+       s << "VkVideoBindMemoryKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcreateFlags = " << getAccelerationStructureCreateFlagsKHRStr(value.createFlags) << '\n';
-       s << "\tbuffer = " << value.buffer << '\n';
-       s << "\toffset = " << value.offset << '\n';
-       s << "\tsize = " << value.size << '\n';
-       s << "\ttype = " << value.type << '\n';
-       s << "\tdeviceAddress = " << value.deviceAddress << '\n';
+       s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
+       s << "\tmemory = " << value.memory << '\n';
+       s << "\tmemoryOffset = " << value.memoryOffset << '\n';
+       s << "\tmemorySize = " << value.memorySize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoPictureResourceKHR& value)
 {
-       s << "VkWriteDescriptorSetAccelerationStructureKHR = {\n";
+       s << "VkVideoPictureResourceKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
-       s << "\tpAccelerationStructures = " << value.pAccelerationStructures << '\n';
+       s << "\tcodedOffset = " << value.codedOffset << '\n';
+       s << "\tcodedExtent = " << value.codedExtent << '\n';
+       s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
+       s << "\timageViewBinding = " << value.imageViewBinding << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructureFeaturesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoReferenceSlotKHR& value)
 {
-       s << "VkPhysicalDeviceAccelerationStructureFeaturesKHR = {\n";
+       s << "VkVideoReferenceSlotKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
-       s << "\taccelerationStructureCaptureReplay = " << value.accelerationStructureCaptureReplay << '\n';
-       s << "\taccelerationStructureIndirectBuild = " << value.accelerationStructureIndirectBuild << '\n';
-       s << "\taccelerationStructureHostCommands = " << value.accelerationStructureHostCommands << '\n';
-       s << "\tdescriptorBindingAccelerationStructureUpdateAfterBind = " << value.descriptorBindingAccelerationStructureUpdateAfterBind << '\n';
+       s << "\tslotIndex = " << value.slotIndex << '\n';
+       s << "\tpPictureResource = " << value.pPictureResource << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAccelerationStructurePropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoDecodeCapabilitiesKHR& value)
 {
-       s << "VkPhysicalDeviceAccelerationStructurePropertiesKHR = {\n";
+       s << "VkVideoDecodeCapabilitiesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
-       s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
-       s << "\tmaxPrimitiveCount = " << value.maxPrimitiveCount << '\n';
-       s << "\tmaxPerStageDescriptorAccelerationStructures = " << value.maxPerStageDescriptorAccelerationStructures << '\n';
-       s << "\tmaxPerStageDescriptorUpdateAfterBindAccelerationStructures = " << value.maxPerStageDescriptorUpdateAfterBindAccelerationStructures << '\n';
-       s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
-       s << "\tmaxDescriptorSetUpdateAfterBindAccelerationStructures = " << value.maxDescriptorSetUpdateAfterBindAccelerationStructures << '\n';
-       s << "\tminAccelerationStructureScratchOffsetAlignment = " << value.minAccelerationStructureScratchOffsetAlignment << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tflags = " << getVideoDecodeCapabilityFlagsKHRStr(value.flags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureDeviceAddressInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoDecodeInfoKHR& value)
 {
-       s << "VkAccelerationStructureDeviceAddressInfoKHR = {\n";
+       s << "VkVideoDecodeInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
+       s << "\tflags = " << getVideoDecodeFlagsKHRStr(value.flags) << '\n';
+       s << "\tsrcBuffer = " << value.srcBuffer << '\n';
+       s << "\tsrcBufferOffset = " << value.srcBufferOffset << '\n';
+       s << "\tsrcBufferRange = " << value.srcBufferRange << '\n';
+       s << "\tdstPictureResource = " << value.dstPictureResource << '\n';
+       s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
+       s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
+       s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureVersionInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264ProfileEXT& value)
 {
-       s << "VkAccelerationStructureVersionInfoKHR = {\n";
+       s << "VkVideoDecodeH264ProfileEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpVersionData = " << value.pVersionData << '\n';
+       s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
+       s << "\tpictureLayout = " << getVideoDecodeH264PictureLayoutFlagsEXTStr(value.pictureLayout) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureToMemoryInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264CapabilitiesEXT& value)
 {
-       s << "VkCopyAccelerationStructureToMemoryInfoKHR = {\n";
+       s << "VkVideoDecodeH264CapabilitiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrc = " << value.src << '\n';
-       s << "\tdst = " << value.dst << '\n';
-       s << "\tmode = " << value.mode << '\n';
+       s << "\tmaxLevel = " << value.maxLevel << '\n';
+       s << "\tfieldOffsetGranularity = " << value.fieldOffsetGranularity << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCopyMemoryToAccelerationStructureInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersAddInfoEXT& value)
 {
-       s << "VkCopyMemoryToAccelerationStructureInfoKHR = {\n";
+       s << "VkVideoDecodeH264SessionParametersAddInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrc = " << value.src << '\n';
-       s << "\tdst = " << value.dst << '\n';
-       s << "\tmode = " << value.mode << '\n';
+       s << "\tspsStdCount = " << value.spsStdCount << '\n';
+       s << "\tpSpsStd = " << value.pSpsStd << '\n';
+       s << "\tppsStdCount = " << value.ppsStdCount << '\n';
+       s << "\tpPpsStd = " << value.pPpsStd << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersCreateInfoEXT& value)
 {
-       s << "VkCopyAccelerationStructureInfoKHR = {\n";
+       s << "VkVideoDecodeH264SessionParametersCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsrc = " << value.src << '\n';
-       s << "\tdst = " << value.dst << '\n';
-       s << "\tmode = " << value.mode << '\n';
+       s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
+       s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
+       s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildSizesInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264PictureInfoEXT& value)
 {
-       s << "VkAccelerationStructureBuildSizesInfoKHR = {\n";
+       s << "VkVideoDecodeH264PictureInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\taccelerationStructureSize = " << value.accelerationStructureSize << '\n';
-       s << "\tupdateScratchSize = " << value.updateScratchSize << '\n';
-       s << "\tbuildScratchSize = " << value.buildScratchSize << '\n';
+       s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
+       s << "\tslicesCount = " << value.slicesCount << '\n';
+       s << "\tpSlicesDataOffsets = " << value.pSlicesDataOffsets << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264DpbSlotInfoEXT& value)
 {
-       s << "VkRayTracingShaderGroupCreateInfoKHR = {\n";
+       s << "VkVideoDecodeH264DpbSlotInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttype = " << value.type << '\n';
-       s << "\tgeneralShader = " << value.generalShader << '\n';
-       s << "\tclosestHitShader = " << value.closestHitShader << '\n';
-       s << "\tanyHitShader = " << value.anyHitShader << '\n';
-       s << "\tintersectionShader = " << value.intersectionShader << '\n';
-       s << "\tpShaderGroupCaptureReplayHandle = " << value.pShaderGroupCaptureReplayHandle << '\n';
+       s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineInterfaceCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264MvcEXT& value)
 {
-       s << "VkRayTracingPipelineInterfaceCreateInfoKHR = {\n";
+       s << "VkVideoDecodeH264MvcEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxPipelineRayPayloadSize = " << value.maxPipelineRayPayloadSize << '\n';
-       s << "\tmaxPipelineRayHitAttributeSize = " << value.maxPipelineRayHitAttributeSize << '\n';
+       s << "\tpStdMvc = " << value.pStdMvc << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265ProfileEXT& value)
 {
-       s << "VkRayTracingPipelineCreateInfoKHR = {\n";
+       s << "VkVideoDecodeH265ProfileEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
-       s << "\tstageCount = " << value.stageCount << '\n';
-       s << "\tpStages = " << value.pStages << '\n';
-       s << "\tgroupCount = " << value.groupCount << '\n';
-       s << "\tpGroups = " << value.pGroups << '\n';
-       s << "\tmaxPipelineRayRecursionDepth = " << value.maxPipelineRayRecursionDepth << '\n';
-       s << "\tpLibraryInfo = " << value.pLibraryInfo << '\n';
-       s << "\tpLibraryInterface = " << value.pLibraryInterface << '\n';
-       s << "\tpDynamicState = " << value.pDynamicState << '\n';
-       s << "\tlayout = " << value.layout << '\n';
-       s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
-       s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
+       s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelineFeaturesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265CapabilitiesEXT& value)
 {
-       s << "VkPhysicalDeviceRayTracingPipelineFeaturesKHR = {\n";
+       s << "VkVideoDecodeH265CapabilitiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\trayTracingPipeline = " << value.rayTracingPipeline << '\n';
-       s << "\trayTracingPipelineShaderGroupHandleCaptureReplay = " << value.rayTracingPipelineShaderGroupHandleCaptureReplay << '\n';
-       s << "\trayTracingPipelineShaderGroupHandleCaptureReplayMixed = " << value.rayTracingPipelineShaderGroupHandleCaptureReplayMixed << '\n';
-       s << "\trayTracingPipelineTraceRaysIndirect = " << value.rayTracingPipelineTraceRaysIndirect << '\n';
-       s << "\trayTraversalPrimitiveCulling = " << value.rayTraversalPrimitiveCulling << '\n';
+       s << "\tmaxLevel = " << value.maxLevel << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPipelinePropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersAddInfoEXT& value)
 {
-       s << "VkPhysicalDeviceRayTracingPipelinePropertiesKHR = {\n";
+       s << "VkVideoDecodeH265SessionParametersAddInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
-       s << "\tmaxRayRecursionDepth = " << value.maxRayRecursionDepth << '\n';
-       s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
-       s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
-       s << "\tshaderGroupHandleCaptureReplaySize = " << value.shaderGroupHandleCaptureReplaySize << '\n';
-       s << "\tmaxRayDispatchInvocationCount = " << value.maxRayDispatchInvocationCount << '\n';
-       s << "\tshaderGroupHandleAlignment = " << value.shaderGroupHandleAlignment << '\n';
-       s << "\tmaxRayHitAttributeSize = " << value.maxRayHitAttributeSize << '\n';
+       s << "\tvpsStdCount = " << value.vpsStdCount << '\n';
+       s << "\tpVpsStd = " << value.pVpsStd << '\n';
+       s << "\tspsStdCount = " << value.spsStdCount << '\n';
+       s << "\tpSpsStd = " << value.pSpsStd << '\n';
+       s << "\tppsStdCount = " << value.ppsStdCount << '\n';
+       s << "\tpPpsStd = " << value.pPpsStd << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkStridedDeviceAddressRegionKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersCreateInfoEXT& value)
 {
-       s << "VkStridedDeviceAddressRegionKHR = {\n";
-       s << "\tdeviceAddress = " << value.deviceAddress << '\n';
-       s << "\tstride = " << value.stride << '\n';
-       s << "\tsize = " << value.size << '\n';
+       s << "VkVideoDecodeH265SessionParametersCreateInfoEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tmaxVpsStdCount = " << value.maxVpsStdCount << '\n';
+       s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
+       s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
+       s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkTraceRaysIndirectCommandKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265PictureInfoEXT& value)
 {
-       s << "VkTraceRaysIndirectCommandKHR = {\n";
-       s << "\twidth = " << value.width << '\n';
-       s << "\theight = " << value.height << '\n';
-       s << "\tdepth = " << value.depth << '\n';
+       s << "VkVideoDecodeH265PictureInfoEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
+       s << "\tslicesCount = " << value.slicesCount << '\n';
+       s << "\tpSlicesDataOffsets = " << value.pSlicesDataOffsets << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayQueryFeaturesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265DpbSlotInfoEXT& value)
 {
-       s << "VkPhysicalDeviceRayQueryFeaturesKHR = {\n";
+       s << "VkVideoDecodeH265DpbSlotInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\trayQuery = " << value.rayQuery << '\n';
+       s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoSessionCreateInfoKHR& value)
 {
-       s << "VkAndroidSurfaceCreateInfoKHR = {\n";
+       s << "VkVideoSessionCreateInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getAndroidSurfaceCreateFlagsKHRStr(value.flags) << '\n';
-       s << "\twindow = " << value.window << '\n';
+       s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
+       s << "\tflags = " << getVideoSessionCreateFlagsKHRStr(value.flags) << '\n';
+       s << "\tpVideoProfile = " << value.pVideoProfile << '\n';
+       s << "\tpictureFormat = " << value.pictureFormat << '\n';
+       s << "\tmaxCodedExtent = " << value.maxCodedExtent << '\n';
+       s << "\treferencePicturesFormat = " << value.referencePicturesFormat << '\n';
+       s << "\tmaxReferencePicturesSlotsCount = " << value.maxReferencePicturesSlotsCount << '\n';
+       s << "\tmaxReferencePicturesActiveCount = " << value.maxReferencePicturesActiveCount << '\n';
+       s << "\tpStdHeaderVersion = " << value.pStdHeaderVersion << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferUsageANDROID& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersCreateInfoKHR& value)
 {
-       s << "VkAndroidHardwareBufferUsageANDROID = {\n";
+       s << "VkVideoSessionParametersCreateInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tandroidHardwareBufferUsage = " << value.androidHardwareBufferUsage << '\n';
+       s << "\tvideoSessionParametersTemplate = " << value.videoSessionParametersTemplate << '\n';
+       s << "\tvideoSession = " << value.videoSession << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferPropertiesANDROID& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersUpdateInfoKHR& value)
 {
-       s << "VkAndroidHardwareBufferPropertiesANDROID = {\n";
+       s << "VkVideoSessionParametersUpdateInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tallocationSize = " << value.allocationSize << '\n';
-       s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
+       s << "\tupdateSequenceCount = " << value.updateSequenceCount << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatPropertiesANDROID& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoBeginCodingInfoKHR& value)
 {
-       s << "VkAndroidHardwareBufferFormatPropertiesANDROID = {\n";
+       s << "VkVideoBeginCodingInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tformat = " << value.format << '\n';
-       s << "\texternalFormat = " << value.externalFormat << '\n';
-       s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
-       s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
-       s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
-       s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
-       s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
-       s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
+       s << "\tflags = " << getVideoBeginCodingFlagsKHRStr(value.flags) << '\n';
+       s << "\tcodecQualityPreset = " << getVideoCodingQualityPresetFlagsKHRStr(value.codecQualityPreset) << '\n';
+       s << "\tvideoSession = " << value.videoSession << '\n';
+       s << "\tvideoSessionParameters = " << value.videoSessionParameters << '\n';
+       s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
+       s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportAndroidHardwareBufferInfoANDROID& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEndCodingInfoKHR& value)
 {
-       s << "VkImportAndroidHardwareBufferInfoANDROID = {\n";
+       s << "VkVideoEndCodingInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tbuffer = " << value.buffer << '\n';
+       s << "\tflags = " << getVideoEndCodingFlagsKHRStr(value.flags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryGetAndroidHardwareBufferInfoANDROID& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoCodingControlInfoKHR& value)
 {
-       s << "VkMemoryGetAndroidHardwareBufferInfoANDROID = {\n";
+       s << "VkVideoCodingControlInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemory = " << value.memory << '\n';
+       s << "\tflags = " << getVideoCodingControlFlagsKHRStr(value.flags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExternalFormatANDROID& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeInfoKHR& value)
 {
-       s << "VkExternalFormatANDROID = {\n";
+       s << "VkVideoEncodeInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\texternalFormat = " << value.externalFormat << '\n';
+       s << "\tflags = " << getVideoEncodeFlagsKHRStr(value.flags) << '\n';
+       s << "\tqualityLevel = " << value.qualityLevel << '\n';
+       s << "\tdstBitstreamBuffer = " << value.dstBitstreamBuffer << '\n';
+       s << "\tdstBitstreamBufferOffset = " << value.dstBitstreamBufferOffset << '\n';
+       s << "\tdstBitstreamBufferMaxRange = " << value.dstBitstreamBufferMaxRange << '\n';
+       s << "\tsrcPictureResource = " << value.srcPictureResource << '\n';
+       s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
+       s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
+       s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
+       s << "\tprecedingExternallyEncodedBytes = " << value.precedingExternallyEncodedBytes << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatProperties2ANDROID& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeRateControlInfoKHR& value)
 {
-       s << "VkAndroidHardwareBufferFormatProperties2ANDROID = {\n";
+       s << "VkVideoEncodeRateControlInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tformat = " << value.format << '\n';
-       s << "\texternalFormat = " << value.externalFormat << '\n';
-       s << "\tformatFeatures = " << value.formatFeatures << '\n';
-       s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
-       s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
-       s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
-       s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
-       s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
+       s << "\tflags = " << getVideoEncodeRateControlFlagsKHRStr(value.flags) << '\n';
+       s << "\trateControlMode = " << value.rateControlMode << '\n';
+       s << "\tlayerCount = " << value.layerCount << '\n';
+       s << "\tpLayerConfigs = " << value.pLayerConfigs << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkQueueFamilyQueryResultStatusProperties2KHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeRateControlLayerInfoKHR& value)
 {
-       s << "VkQueueFamilyQueryResultStatusProperties2KHR = {\n";
+       s << "VkVideoEncodeRateControlLayerInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tqueryResultStatusSupport = " << value.queryResultStatusSupport << '\n';
+       s << "\taverageBitrate = " << value.averageBitrate << '\n';
+       s << "\tmaxBitrate = " << value.maxBitrate << '\n';
+       s << "\tframeRateNumerator = " << value.frameRateNumerator << '\n';
+       s << "\tframeRateDenominator = " << value.frameRateDenominator << '\n';
+       s << "\tvirtualBufferSizeInMs = " << value.virtualBufferSizeInMs << '\n';
+       s << "\tinitialVirtualBufferSizeInMs = " << value.initialVirtualBufferSizeInMs << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoQueueFamilyProperties2KHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeCapabilitiesKHR& value)
 {
-       s << "VkVideoQueueFamilyProperties2KHR = {\n";
+       s << "VkVideoEncodeCapabilitiesKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tvideoCodecOperations = " << getVideoCodecOperationFlagsKHRStr(value.videoCodecOperations) << '\n';
+       s << "\tflags = " << getVideoEncodeCapabilityFlagsKHRStr(value.flags) << '\n';
+       s << "\trateControlModes = " << getVideoEncodeRateControlModeFlagsKHRStr(value.rateControlModes) << '\n';
+       s << "\trateControlLayerCount = " << value.rateControlLayerCount << '\n';
+       s << "\tqualityLevelCount = " << value.qualityLevelCount << '\n';
+       s << "\tinputImageDataFillAlignment = " << value.inputImageDataFillAlignment << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoProfileKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264CapabilitiesEXT& value)
 {
-       s << "VkVideoProfileKHR = {\n";
+       s << "VkVideoEncodeH264CapabilitiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tvideoCodecOperation = " << value.videoCodecOperation << '\n';
-       s << "\tchromaSubsampling = " << getVideoChromaSubsamplingFlagsKHRStr(value.chromaSubsampling) << '\n';
-       s << "\tlumaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.lumaBitDepth) << '\n';
-       s << "\tchromaBitDepth = " << getVideoComponentBitDepthFlagsKHRStr(value.chromaBitDepth) << '\n';
+       s << "\tflags = " << getVideoEncodeH264CapabilityFlagsEXTStr(value.flags) << '\n';
+       s << "\tinputModeFlags = " << getVideoEncodeH264InputModeFlagsEXTStr(value.inputModeFlags) << '\n';
+       s << "\toutputModeFlags = " << getVideoEncodeH264OutputModeFlagsEXTStr(value.outputModeFlags) << '\n';
+       s << "\tmaxPPictureL0ReferenceCount = " << value.maxPPictureL0ReferenceCount << '\n';
+       s << "\tmaxBPictureL0ReferenceCount = " << value.maxBPictureL0ReferenceCount << '\n';
+       s << "\tmaxL1ReferenceCount = " << value.maxL1ReferenceCount << '\n';
+       s << "\tmotionVectorsOverPicBoundariesFlag = " << value.motionVectorsOverPicBoundariesFlag << '\n';
+       s << "\tmaxBytesPerPicDenom = " << value.maxBytesPerPicDenom << '\n';
+       s << "\tmaxBitsPerMbDenom = " << value.maxBitsPerMbDenom << '\n';
+       s << "\tlog2MaxMvLengthHorizontal = " << value.log2MaxMvLengthHorizontal << '\n';
+       s << "\tlog2MaxMvLengthVertical = " << value.log2MaxMvLengthVertical << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoProfilesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersAddInfoEXT& value)
 {
-       s << "VkVideoProfilesKHR = {\n";
+       s << "VkVideoEncodeH264SessionParametersAddInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tprofileCount = " << value.profileCount << '\n';
-       s << "\tpProfiles = " << value.pProfiles << '\n';
+       s << "\tspsStdCount = " << value.spsStdCount << '\n';
+       s << "\tpSpsStd = " << value.pSpsStd << '\n';
+       s << "\tppsStdCount = " << value.ppsStdCount << '\n';
+       s << "\tpPpsStd = " << value.pPpsStd << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoCapabilitiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersCreateInfoEXT& value)
 {
-       s << "VkVideoCapabilitiesKHR = {\n";
+       s << "VkVideoEncodeH264SessionParametersCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcapabilityFlags = " << getVideoCapabilityFlagsKHRStr(value.capabilityFlags) << '\n';
-       s << "\tminBitstreamBufferOffsetAlignment = " << value.minBitstreamBufferOffsetAlignment << '\n';
-       s << "\tminBitstreamBufferSizeAlignment = " << value.minBitstreamBufferSizeAlignment << '\n';
-       s << "\tvideoPictureExtentGranularity = " << value.videoPictureExtentGranularity << '\n';
-       s << "\tminExtent = " << value.minExtent << '\n';
-       s << "\tmaxExtent = " << value.maxExtent << '\n';
-       s << "\tmaxReferencePicturesSlotsCount = " << value.maxReferencePicturesSlotsCount << '\n';
-       s << "\tmaxReferencePicturesActiveCount = " << value.maxReferencePicturesActiveCount << '\n';
-       s << "\tstdHeaderVersion = " << value.stdHeaderVersion << '\n';
+       s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
+       s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
+       s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceVideoFormatInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264DpbSlotInfoEXT& value)
 {
-       s << "VkPhysicalDeviceVideoFormatInfoKHR = {\n";
+       s << "VkVideoEncodeH264DpbSlotInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
+       s << "\tslotIndex = " << value.slotIndex << '\n';
+       s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoFormatPropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264VclFrameInfoEXT& value)
 {
-       s << "VkVideoFormatPropertiesKHR = {\n";
+       s << "VkVideoEncodeH264VclFrameInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tformat = " << value.format << '\n';
-       s << "\tcomponentMapping = " << value.componentMapping << '\n';
-       s << "\timageCreateFlags = " << getImageCreateFlagsStr(value.imageCreateFlags) << '\n';
-       s << "\timageType = " << value.imageType << '\n';
-       s << "\timageTiling = " << value.imageTiling << '\n';
-       s << "\timageUsageFlags = " << getImageUsageFlagsStr(value.imageUsageFlags) << '\n';
+       s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
+       s << "\tnaluSliceEntryCount = " << value.naluSliceEntryCount << '\n';
+       s << "\tpNaluSliceEntries = " << value.pNaluSliceEntries << '\n';
+       s << "\tpCurrentPictureInfo = " << value.pCurrentPictureInfo << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoPictureResourceKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264ReferenceListsEXT& value)
 {
-       s << "VkVideoPictureResourceKHR = {\n";
+       s << "VkVideoEncodeH264ReferenceListsEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcodedOffset = " << value.codedOffset << '\n';
-       s << "\tcodedExtent = " << value.codedExtent << '\n';
-       s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
-       s << "\timageViewBinding = " << value.imageViewBinding << '\n';
+       s << "\treferenceList0EntryCount = " << value.referenceList0EntryCount << '\n';
+       s << "\tpReferenceList0Entries = " << value.pReferenceList0Entries << '\n';
+       s << "\treferenceList1EntryCount = " << value.referenceList1EntryCount << '\n';
+       s << "\tpReferenceList1Entries = " << value.pReferenceList1Entries << '\n';
+       s << "\tpMemMgmtCtrlOperations = " << value.pMemMgmtCtrlOperations << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoReferenceSlotKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264EmitPictureParametersEXT& value)
 {
-       s << "VkVideoReferenceSlotKHR = {\n";
+       s << "VkVideoEncodeH264EmitPictureParametersEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tslotIndex = " << value.slotIndex << '\n';
-       s << "\tpPictureResource = " << value.pPictureResource << '\n';
+       s << "\tspsId = " << value.spsId << '\n';
+       s << "\temitSpsEnable = " << value.emitSpsEnable << '\n';
+       s << "\tppsIdEntryCount = " << value.ppsIdEntryCount << '\n';
+       s << "\tppsIdEntries = " << value.ppsIdEntries << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoGetMemoryPropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264ProfileEXT& value)
 {
-       s << "VkVideoGetMemoryPropertiesKHR = {\n";
+       s << "VkVideoEncodeH264ProfileEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
-       s << "\tpMemoryRequirements = " << value.pMemoryRequirements << '\n';
+       s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoBindMemoryKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264NaluSliceEXT& value)
 {
-       s << "VkVideoBindMemoryKHR = {\n";
+       s << "VkVideoEncodeH264NaluSliceEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemoryBindIndex = " << value.memoryBindIndex << '\n';
-       s << "\tmemory = " << value.memory << '\n';
-       s << "\tmemoryOffset = " << value.memoryOffset << '\n';
-       s << "\tmemorySize = " << value.memorySize << '\n';
+       s << "\tmbCount = " << value.mbCount << '\n';
+       s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
+       s << "\tpSliceHeaderStd = " << value.pSliceHeaderStd << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoSessionCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264RateControlInfoEXT& value)
 {
-       s << "VkVideoSessionCreateInfoKHR = {\n";
+       s << "VkVideoEncodeH264RateControlInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tqueueFamilyIndex = " << value.queueFamilyIndex << '\n';
-       s << "\tflags = " << getVideoSessionCreateFlagsKHRStr(value.flags) << '\n';
-       s << "\tpVideoProfile = " << value.pVideoProfile << '\n';
-       s << "\tpictureFormat = " << value.pictureFormat << '\n';
-       s << "\tmaxCodedExtent = " << value.maxCodedExtent << '\n';
-       s << "\treferencePicturesFormat = " << value.referencePicturesFormat << '\n';
-       s << "\tmaxReferencePicturesSlotsCount = " << value.maxReferencePicturesSlotsCount << '\n';
-       s << "\tmaxReferencePicturesActiveCount = " << value.maxReferencePicturesActiveCount << '\n';
-       s << "\tpStdHeaderVersion = " << value.pStdHeaderVersion << '\n';
+       s << "\tgopFrameCount = " << value.gopFrameCount << '\n';
+       s << "\tidrPeriod = " << value.idrPeriod << '\n';
+       s << "\tconsecutiveBFrameCount = " << value.consecutiveBFrameCount << '\n';
+       s << "\trateControlStructure = " << value.rateControlStructure << '\n';
+       s << "\ttemporalLayerCount = " << value.temporalLayerCount << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264QpEXT& value)
 {
-       s << "VkVideoSessionParametersCreateInfoKHR = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tvideoSessionParametersTemplate = " << value.videoSessionParametersTemplate << '\n';
-       s << "\tvideoSession = " << value.videoSession << '\n';
+       s << "VkVideoEncodeH264QpEXT = {\n";
+       s << "\tqpI = " << value.qpI << '\n';
+       s << "\tqpP = " << value.qpP << '\n';
+       s << "\tqpB = " << value.qpB << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoSessionParametersUpdateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264FrameSizeEXT& value)
 {
-       s << "VkVideoSessionParametersUpdateInfoKHR = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tupdateSequenceCount = " << value.updateSequenceCount << '\n';
+       s << "VkVideoEncodeH264FrameSizeEXT = {\n";
+       s << "\tframeISize = " << value.frameISize << '\n';
+       s << "\tframePSize = " << value.framePSize << '\n';
+       s << "\tframeBSize = " << value.frameBSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoBeginCodingInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264RateControlLayerInfoEXT& value)
 {
-       s << "VkVideoBeginCodingInfoKHR = {\n";
+       s << "VkVideoEncodeH264RateControlLayerInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getVideoBeginCodingFlagsKHRStr(value.flags) << '\n';
-       s << "\tcodecQualityPreset = " << getVideoCodingQualityPresetFlagsKHRStr(value.codecQualityPreset) << '\n';
-       s << "\tvideoSession = " << value.videoSession << '\n';
-       s << "\tvideoSessionParameters = " << value.videoSessionParameters << '\n';
-       s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
-       s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
+       s << "\ttemporalLayerId = " << value.temporalLayerId << '\n';
+       s << "\tuseInitialRcQp = " << value.useInitialRcQp << '\n';
+       s << "\tinitialRcQp = " << value.initialRcQp << '\n';
+       s << "\tuseMinQp = " << value.useMinQp << '\n';
+       s << "\tminQp = " << value.minQp << '\n';
+       s << "\tuseMaxQp = " << value.useMaxQp << '\n';
+       s << "\tmaxQp = " << value.maxQp << '\n';
+       s << "\tuseMaxFrameSize = " << value.useMaxFrameSize << '\n';
+       s << "\tmaxFrameSize = " << value.maxFrameSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEndCodingInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265CapabilitiesEXT& value)
 {
-       s << "VkVideoEndCodingInfoKHR = {\n";
+       s << "VkVideoEncodeH265CapabilitiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getVideoEndCodingFlagsKHRStr(value.flags) << '\n';
+       s << "\tflags = " << getVideoEncodeH265CapabilityFlagsEXTStr(value.flags) << '\n';
+       s << "\tinputModeFlags = " << getVideoEncodeH265InputModeFlagsEXTStr(value.inputModeFlags) << '\n';
+       s << "\toutputModeFlags = " << getVideoEncodeH265OutputModeFlagsEXTStr(value.outputModeFlags) << '\n';
+       s << "\tctbSizes = " << getVideoEncodeH265CtbSizeFlagsEXTStr(value.ctbSizes) << '\n';
+       s << "\ttransformBlockSizes = " << getVideoEncodeH265TransformBlockSizeFlagsEXTStr(value.transformBlockSizes) << '\n';
+       s << "\tmaxPPictureL0ReferenceCount = " << value.maxPPictureL0ReferenceCount << '\n';
+       s << "\tmaxBPictureL0ReferenceCount = " << value.maxBPictureL0ReferenceCount << '\n';
+       s << "\tmaxL1ReferenceCount = " << value.maxL1ReferenceCount << '\n';
+       s << "\tmaxSubLayersCount = " << value.maxSubLayersCount << '\n';
+       s << "\tminLog2MinLumaCodingBlockSizeMinus3 = " << value.minLog2MinLumaCodingBlockSizeMinus3 << '\n';
+       s << "\tmaxLog2MinLumaCodingBlockSizeMinus3 = " << value.maxLog2MinLumaCodingBlockSizeMinus3 << '\n';
+       s << "\tminLog2MinLumaTransformBlockSizeMinus2 = " << value.minLog2MinLumaTransformBlockSizeMinus2 << '\n';
+       s << "\tmaxLog2MinLumaTransformBlockSizeMinus2 = " << value.maxLog2MinLumaTransformBlockSizeMinus2 << '\n';
+       s << "\tminMaxTransformHierarchyDepthInter = " << value.minMaxTransformHierarchyDepthInter << '\n';
+       s << "\tmaxMaxTransformHierarchyDepthInter = " << value.maxMaxTransformHierarchyDepthInter << '\n';
+       s << "\tminMaxTransformHierarchyDepthIntra = " << value.minMaxTransformHierarchyDepthIntra << '\n';
+       s << "\tmaxMaxTransformHierarchyDepthIntra = " << value.maxMaxTransformHierarchyDepthIntra << '\n';
+       s << "\tmaxDiffCuQpDeltaDepth = " << value.maxDiffCuQpDeltaDepth << '\n';
+       s << "\tminMaxNumMergeCand = " << value.minMaxNumMergeCand << '\n';
+       s << "\tmaxMaxNumMergeCand = " << value.maxMaxNumMergeCand << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoCodingControlInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersAddInfoEXT& value)
 {
-       s << "VkVideoCodingControlInfoKHR = {\n";
+       s << "VkVideoEncodeH265SessionParametersAddInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getVideoCodingControlFlagsKHRStr(value.flags) << '\n';
+       s << "\tvpsStdCount = " << value.vpsStdCount << '\n';
+       s << "\tpVpsStd = " << value.pVpsStd << '\n';
+       s << "\tspsStdCount = " << value.spsStdCount << '\n';
+       s << "\tpSpsStd = " << value.pSpsStd << '\n';
+       s << "\tppsStdCount = " << value.ppsStdCount << '\n';
+       s << "\tpPpsStd = " << value.pPpsStd << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoDecodeCapabilitiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersCreateInfoEXT& value)
 {
-       s << "VkVideoDecodeCapabilitiesKHR = {\n";
+       s << "VkVideoEncodeH265SessionParametersCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getVideoDecodeCapabilityFlagsKHRStr(value.flags) << '\n';
+       s << "\tmaxVpsStdCount = " << value.maxVpsStdCount << '\n';
+       s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
+       s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
+       s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoDecodeInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265VclFrameInfoEXT& value)
 {
-       s << "VkVideoDecodeInfoKHR = {\n";
+       s << "VkVideoEncodeH265VclFrameInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getVideoDecodeFlagsKHRStr(value.flags) << '\n';
-       s << "\tsrcBuffer = " << value.srcBuffer << '\n';
-       s << "\tsrcBufferOffset = " << value.srcBufferOffset << '\n';
-       s << "\tsrcBufferRange = " << value.srcBufferRange << '\n';
-       s << "\tdstPictureResource = " << value.dstPictureResource << '\n';
-       s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
-       s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
-       s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
+       s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
+       s << "\tnaluSliceSegmentEntryCount = " << value.naluSliceSegmentEntryCount << '\n';
+       s << "\tpNaluSliceSegmentEntries = " << value.pNaluSliceSegmentEntries << '\n';
+       s << "\tpCurrentPictureInfo = " << value.pCurrentPictureInfo << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetFeaturesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265EmitPictureParametersEXT& value)
 {
-       s << "VkPhysicalDevicePortabilitySubsetFeaturesKHR = {\n";
+       s << "VkVideoEncodeH265EmitPictureParametersEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tconstantAlphaColorBlendFactors = " << value.constantAlphaColorBlendFactors << '\n';
-       s << "\tevents = " << value.events << '\n';
-       s << "\timageViewFormatReinterpretation = " << value.imageViewFormatReinterpretation << '\n';
-       s << "\timageViewFormatSwizzle = " << value.imageViewFormatSwizzle << '\n';
-       s << "\timageView2DOn3DImage = " << value.imageView2DOn3DImage << '\n';
-       s << "\tmultisampleArrayImage = " << value.multisampleArrayImage << '\n';
-       s << "\tmutableComparisonSamplers = " << value.mutableComparisonSamplers << '\n';
-       s << "\tpointPolygons = " << value.pointPolygons << '\n';
-       s << "\tsamplerMipLodBias = " << value.samplerMipLodBias << '\n';
-       s << "\tseparateStencilMaskRef = " << value.separateStencilMaskRef << '\n';
-       s << "\tshaderSampleRateInterpolationFunctions = " << value.shaderSampleRateInterpolationFunctions << '\n';
-       s << "\ttessellationIsolines = " << value.tessellationIsolines << '\n';
-       s << "\ttessellationPointMode = " << value.tessellationPointMode << '\n';
-       s << "\ttriangleFans = " << value.triangleFans << '\n';
-       s << "\tvertexAttributeAccessBeyondStride = " << value.vertexAttributeAccessBeyondStride << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tvpsId = " << value.vpsId << '\n';
+       s << "\tspsId = " << value.spsId << '\n';
+       s << "\temitVpsEnable = " << value.emitVpsEnable << '\n';
+       s << "\temitSpsEnable = " << value.emitSpsEnable << '\n';
+       s << "\tppsIdEntryCount = " << value.ppsIdEntryCount << '\n';
+       s << "\tppsIdEntries = " << value.ppsIdEntries << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePortabilitySubsetPropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265NaluSliceSegmentEXT& value)
 {
-       s << "VkPhysicalDevicePortabilitySubsetPropertiesKHR = {\n";
+       s << "VkVideoEncodeH265NaluSliceSegmentEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tminVertexInputBindingStrideAlignment = " << value.minVertexInputBindingStrideAlignment << '\n';
+       s << "\tctbCount = " << value.ctbCount << '\n';
+       s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
+       s << "\tpSliceSegmentHeaderStd = " << value.pSliceSegmentHeaderStd << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265RateControlInfoEXT& value)
 {
-       s << "VkVideoEncodeInfoKHR = {\n";
+       s << "VkVideoEncodeH265RateControlInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getVideoEncodeFlagsKHRStr(value.flags) << '\n';
-       s << "\tqualityLevel = " << value.qualityLevel << '\n';
-       s << "\tdstBitstreamBuffer = " << value.dstBitstreamBuffer << '\n';
-       s << "\tdstBitstreamBufferOffset = " << value.dstBitstreamBufferOffset << '\n';
-       s << "\tdstBitstreamBufferMaxRange = " << value.dstBitstreamBufferMaxRange << '\n';
-       s << "\tsrcPictureResource = " << value.srcPictureResource << '\n';
-       s << "\tpSetupReferenceSlot = " << value.pSetupReferenceSlot << '\n';
-       s << "\treferenceSlotCount = " << value.referenceSlotCount << '\n';
-       s << "\tpReferenceSlots = " << value.pReferenceSlots << '\n';
-       s << "\tprecedingExternallyEncodedBytes = " << value.precedingExternallyEncodedBytes << '\n';
+       s << "\tgopFrameCount = " << value.gopFrameCount << '\n';
+       s << "\tidrPeriod = " << value.idrPeriod << '\n';
+       s << "\tconsecutiveBFrameCount = " << value.consecutiveBFrameCount << '\n';
+       s << "\trateControlStructure = " << value.rateControlStructure << '\n';
+       s << "\tsubLayerCount = " << value.subLayerCount << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeCapabilitiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265QpEXT& value)
 {
-       s << "VkVideoEncodeCapabilitiesKHR = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getVideoEncodeCapabilityFlagsKHRStr(value.flags) << '\n';
-       s << "\trateControlModes = " << getVideoEncodeRateControlModeFlagsKHRStr(value.rateControlModes) << '\n';
-       s << "\trateControlLayerCount = " << value.rateControlLayerCount << '\n';
-       s << "\tqualityLevelCount = " << value.qualityLevelCount << '\n';
-       s << "\tinputImageDataFillAlignment = " << value.inputImageDataFillAlignment << '\n';
+       s << "VkVideoEncodeH265QpEXT = {\n";
+       s << "\tqpI = " << value.qpI << '\n';
+       s << "\tqpP = " << value.qpP << '\n';
+       s << "\tqpB = " << value.qpB << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeRateControlLayerInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265FrameSizeEXT& value)
 {
-       s << "VkVideoEncodeRateControlLayerInfoKHR = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\taverageBitrate = " << value.averageBitrate << '\n';
-       s << "\tmaxBitrate = " << value.maxBitrate << '\n';
-       s << "\tframeRateNumerator = " << value.frameRateNumerator << '\n';
-       s << "\tframeRateDenominator = " << value.frameRateDenominator << '\n';
-       s << "\tvirtualBufferSizeInMs = " << value.virtualBufferSizeInMs << '\n';
-       s << "\tinitialVirtualBufferSizeInMs = " << value.initialVirtualBufferSizeInMs << '\n';
+       s << "VkVideoEncodeH265FrameSizeEXT = {\n";
+       s << "\tframeISize = " << value.frameISize << '\n';
+       s << "\tframePSize = " << value.framePSize << '\n';
+       s << "\tframeBSize = " << value.frameBSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeRateControlInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265RateControlLayerInfoEXT& value)
 {
-       s << "VkVideoEncodeRateControlInfoKHR = {\n";
+       s << "VkVideoEncodeH265RateControlLayerInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getVideoEncodeRateControlFlagsKHRStr(value.flags) << '\n';
-       s << "\trateControlMode = " << value.rateControlMode << '\n';
-       s << "\tlayerCount = " << value.layerCount << '\n';
-       s << "\tpLayerConfigs = " << value.pLayerConfigs << '\n';
+       s << "\ttemporalId = " << value.temporalId << '\n';
+       s << "\tuseInitialRcQp = " << value.useInitialRcQp << '\n';
+       s << "\tinitialRcQp = " << value.initialRcQp << '\n';
+       s << "\tuseMinQp = " << value.useMinQp << '\n';
+       s << "\tminQp = " << value.minQp << '\n';
+       s << "\tuseMaxQp = " << value.useMaxQp << '\n';
+       s << "\tmaxQp = " << value.maxQp << '\n';
+       s << "\tuseMaxFrameSize = " << value.useMaxFrameSize << '\n';
+       s << "\tmaxFrameSize = " << value.maxFrameSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsVuiFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265ProfileEXT& value)
 {
-       s << "StdVideoH264SpsVuiFlags = {\n";
-       s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
-       s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
-       s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
-       s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
-       s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
-       s << "\tcolor_description_present_flag = " << value.color_description_present_flag << '\n';
-       s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
-       s << "\ttiming_info_present_flag = " << value.timing_info_present_flag << '\n';
-       s << "\tfixed_frame_rate_flag = " << value.fixed_frame_rate_flag << '\n';
-       s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
-       s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
-       s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
+       s << "VkVideoEncodeH265ProfileEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH264HrdParameters& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265DpbSlotInfoEXT& value)
 {
-       s << "StdVideoH264HrdParameters = {\n";
-       s << "\tcpb_cnt_minus1 = " << value.cpb_cnt_minus1 << '\n';
-       s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
-       s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
-       s << "\tbit_rate_value_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.bit_rate_value_minus1), DE_ARRAY_END(value.bit_rate_value_minus1)) << '\n';
-       s << "\tcpb_size_value_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.cpb_size_value_minus1), DE_ARRAY_END(value.cpb_size_value_minus1)) << '\n';
-       s << "\tcbr_flag = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.cbr_flag)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.cbr_flag))) << '\n';
-       s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
-       s << "\tcpb_removal_delay_length_minus1 = " << value.cpb_removal_delay_length_minus1 << '\n';
-       s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
-       s << "\ttime_offset_length = " << value.time_offset_length << '\n';
+       s << "VkVideoEncodeH265DpbSlotInfoEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tslotIndex = " << value.slotIndex << '\n';
+       s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSetVui& value)
+std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265ReferenceListsEXT& value)
 {
-       s << "StdVideoH264SequenceParameterSetVui = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
-       s << "\tsar_width = " << value.sar_width << '\n';
-       s << "\tsar_height = " << value.sar_height << '\n';
-       s << "\tvideo_format = " << value.video_format << '\n';
-       s << "\tcolor_primaries = " << value.color_primaries << '\n';
-       s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
-       s << "\tmatrix_coefficients = " << value.matrix_coefficients << '\n';
-       s << "\tnum_units_in_tick = " << value.num_units_in_tick << '\n';
-       s << "\ttime_scale = " << value.time_scale << '\n';
-       s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
-       s << "\tmax_num_reorder_frames = " << value.max_num_reorder_frames << '\n';
-       s << "\tmax_dec_frame_buffering = " << value.max_dec_frame_buffering << '\n';
+       s << "VkVideoEncodeH265ReferenceListsEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\treferenceList0EntryCount = " << value.referenceList0EntryCount << '\n';
+       s << "\tpReferenceList0Entries = " << value.pReferenceList0Entries << '\n';
+       s << "\treferenceList1EntryCount = " << value.referenceList1EntryCount << '\n';
+       s << "\tpReferenceList1Entries = " << value.pReferenceList1Entries << '\n';
+       s << "\tpReferenceModifications = " << value.pReferenceModifications << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInheritedViewportScissorFeaturesNV& value)
 {
-       s << "StdVideoH264SpsFlags = {\n";
-       s << "\tconstraint_set0_flag = " << value.constraint_set0_flag << '\n';
-       s << "\tconstraint_set1_flag = " << value.constraint_set1_flag << '\n';
-       s << "\tconstraint_set2_flag = " << value.constraint_set2_flag << '\n';
-       s << "\tconstraint_set3_flag = " << value.constraint_set3_flag << '\n';
-       s << "\tconstraint_set4_flag = " << value.constraint_set4_flag << '\n';
-       s << "\tconstraint_set5_flag = " << value.constraint_set5_flag << '\n';
-       s << "\tdirect_8x8_inference_flag = " << value.direct_8x8_inference_flag << '\n';
-       s << "\tmb_adaptive_frame_field_flag = " << value.mb_adaptive_frame_field_flag << '\n';
-       s << "\tframe_mbs_only_flag = " << value.frame_mbs_only_flag << '\n';
-       s << "\tdelta_pic_order_always_zero_flag = " << value.delta_pic_order_always_zero_flag << '\n';
-       s << "\tseparate_colour_plane_flag = " << value.separate_colour_plane_flag << '\n';
-       s << "\tgaps_in_frame_num_value_allowed_flag = " << value.gaps_in_frame_num_value_allowed_flag << '\n';
-       s << "\tqpprime_y_zero_transform_bypass_flag = " << value.qpprime_y_zero_transform_bypass_flag << '\n';
-       s << "\tframe_cropping_flag = " << value.frame_cropping_flag << '\n';
-       s << "\tseq_scaling_matrix_present_flag = " << value.seq_scaling_matrix_present_flag << '\n';
-       s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
+       s << "VkPhysicalDeviceInheritedViewportScissorFeaturesNV = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tinheritedViewportScissor2D = " << value.inheritedViewportScissor2D << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH264ScalingLists& value)
+std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceViewportScissorInfoNV& value)
 {
-       s << "StdVideoH264ScalingLists = {\n";
-       s << "\tscaling_list_present_mask = " << value.scaling_list_present_mask << '\n';
-       s << "\tuse_default_scaling_matrix_mask = " << value.use_default_scaling_matrix_mask << '\n';
-       s << "\tScalingList4x4 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4), DE_ARRAY_END(value.ScalingList4x4)) << '\n';
-       s << "\tScalingList8x8 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8), DE_ARRAY_END(value.ScalingList8x8)) << '\n';
+       s << "VkCommandBufferInheritanceViewportScissorInfoNV = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tviewportScissor2D = " << value.viewportScissor2D << '\n';
+       s << "\tviewportDepthCount = " << value.viewportDepthCount << '\n';
+       s << "\tpViewportDepths = " << value.pViewportDepths << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSet& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT& value)
 {
-       s << "StdVideoH264SequenceParameterSet = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\tprofile_idc = " << value.profile_idc << '\n';
-       s << "\tlevel_idc = " << value.level_idc << '\n';
-       s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
-       s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
-       s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
-       s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
-       s << "\tlog2_max_frame_num_minus4 = " << value.log2_max_frame_num_minus4 << '\n';
-       s << "\tpic_order_cnt_type = " << value.pic_order_cnt_type << '\n';
-       s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
-       s << "\toffset_for_non_ref_pic = " << value.offset_for_non_ref_pic << '\n';
-       s << "\toffset_for_top_to_bottom_field = " << value.offset_for_top_to_bottom_field << '\n';
-       s << "\tnum_ref_frames_in_pic_order_cnt_cycle = " << value.num_ref_frames_in_pic_order_cnt_cycle << '\n';
-       s << "\tmax_num_ref_frames = " << value.max_num_ref_frames << '\n';
-       s << "\tpic_width_in_mbs_minus1 = " << value.pic_width_in_mbs_minus1 << '\n';
-       s << "\tpic_height_in_map_units_minus1 = " << value.pic_height_in_map_units_minus1 << '\n';
-       s << "\tframe_crop_left_offset = " << value.frame_crop_left_offset << '\n';
-       s << "\tframe_crop_right_offset = " << value.frame_crop_right_offset << '\n';
-       s << "\tframe_crop_top_offset = " << value.frame_crop_top_offset << '\n';
-       s << "\tframe_crop_bottom_offset = " << value.frame_crop_bottom_offset << '\n';
-       s << "\tpOffsetForRefFrame = " << value.pOffsetForRefFrame << '\n';
-       s << "\tpScalingLists = " << value.pScalingLists << '\n';
-       s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
+       s << "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tycbcr2plane444Formats = " << value.ycbcr2plane444Formats << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH264PpsFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProvokingVertexFeaturesEXT& value)
 {
-       s << "StdVideoH264PpsFlags = {\n";
-       s << "\ttransform_8x8_mode_flag = " << value.transform_8x8_mode_flag << '\n';
-       s << "\tredundant_pic_cnt_present_flag = " << value.redundant_pic_cnt_present_flag << '\n';
-       s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
-       s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
-       s << "\tweighted_bipred_idc_flag = " << value.weighted_bipred_idc_flag << '\n';
-       s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
-       s << "\tpic_order_present_flag = " << value.pic_order_present_flag << '\n';
-       s << "\tentropy_coding_mode_flag = " << value.entropy_coding_mode_flag << '\n';
-       s << "\tpic_scaling_matrix_present_flag = " << value.pic_scaling_matrix_present_flag << '\n';
+       s << "VkPhysicalDeviceProvokingVertexFeaturesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tprovokingVertexLast = " << value.provokingVertexLast << '\n';
+       s << "\ttransformFeedbackPreservesProvokingVertex = " << value.transformFeedbackPreservesProvokingVertex << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH264PictureParameterSet& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceProvokingVertexPropertiesEXT& value)
 {
-       s << "StdVideoH264PictureParameterSet = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
-       s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
-       s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
-       s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
-       s << "\tweighted_bipred_idc = " << value.weighted_bipred_idc << '\n';
-       s << "\tpic_init_qp_minus26 = " << value.pic_init_qp_minus26 << '\n';
-       s << "\tpic_init_qs_minus26 = " << value.pic_init_qs_minus26 << '\n';
-       s << "\tchroma_qp_index_offset = " << value.chroma_qp_index_offset << '\n';
-       s << "\tsecond_chroma_qp_index_offset = " << value.second_chroma_qp_index_offset << '\n';
-       s << "\tpScalingLists = " << value.pScalingLists << '\n';
+       s << "VkPhysicalDeviceProvokingVertexPropertiesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tprovokingVertexModePerPipeline = " << value.provokingVertexModePerPipeline << '\n';
+       s << "\ttransformFeedbackPreservesTriangleFanProvokingVertex = " << value.transformFeedbackPreservesTriangleFanProvokingVertex << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264WeightTableFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT& value)
 {
-       s << "StdVideoEncodeH264WeightTableFlags = {\n";
-       s << "\tluma_weight_l0_flag = " << value.luma_weight_l0_flag << '\n';
-       s << "\tchroma_weight_l0_flag = " << value.chroma_weight_l0_flag << '\n';
-       s << "\tluma_weight_l1_flag = " << value.luma_weight_l1_flag << '\n';
-       s << "\tchroma_weight_l1_flag = " << value.chroma_weight_l1_flag << '\n';
+       s << "VkPipelineRasterizationProvokingVertexStateCreateInfoEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tprovokingVertexMode = " << value.provokingVertexMode << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkCuModuleCreateInfoNVX& value)
+{
+       s << "VkCuModuleCreateInfoNVX = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tdataSize = " << value.dataSize << '\n';
+       s << "\tpData = " << value.pData << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264WeightTable& value)
+std::ostream& operator<< (std::ostream& s, const VkCuFunctionCreateInfoNVX& value)
 {
-       s << "StdVideoEncodeH264WeightTable = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\tluma_log2_weight_denom = " << value.luma_log2_weight_denom << '\n';
-       s << "\tchroma_log2_weight_denom = " << value.chroma_log2_weight_denom << '\n';
-       s << "\tluma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_weight_l0), DE_ARRAY_END(value.luma_weight_l0)) << '\n';
-       s << "\tluma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l0), DE_ARRAY_END(value.luma_offset_l0)) << '\n';
-       s << "\tchroma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_weight_l0), DE_ARRAY_END(value.chroma_weight_l0)) << '\n';
-       s << "\tchroma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_offset_l0), DE_ARRAY_END(value.chroma_offset_l0)) << '\n';
-       s << "\tluma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_weight_l1), DE_ARRAY_END(value.luma_weight_l1)) << '\n';
-       s << "\tluma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l1), DE_ARRAY_END(value.luma_offset_l1)) << '\n';
-       s << "\tchroma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_weight_l1), DE_ARRAY_END(value.chroma_weight_l1)) << '\n';
-       s << "\tchroma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_offset_l1), DE_ARRAY_END(value.chroma_offset_l1)) << '\n';
+       s << "VkCuFunctionCreateInfoNVX = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tmodule = " << value.module << '\n';
+       s << "\tpName = " << getCharPtrStr(value.pName) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeaderFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkCuLaunchInfoNVX& value)
 {
-       s << "StdVideoEncodeH264SliceHeaderFlags = {\n";
-       s << "\tdirect_spatial_mv_pred_flag = " << value.direct_spatial_mv_pred_flag << '\n';
-       s << "\tnum_ref_idx_active_override_flag = " << value.num_ref_idx_active_override_flag << '\n';
-       s << "\tno_output_of_prior_pics_flag = " << value.no_output_of_prior_pics_flag << '\n';
-       s << "\tadaptive_ref_pic_marking_mode_flag = " << value.adaptive_ref_pic_marking_mode_flag << '\n';
-       s << "\tno_prior_references_available_flag = " << value.no_prior_references_available_flag << '\n';
+       s << "VkCuLaunchInfoNVX = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tfunction = " << value.function << '\n';
+       s << "\tgridDimX = " << value.gridDimX << '\n';
+       s << "\tgridDimY = " << value.gridDimY << '\n';
+       s << "\tgridDimZ = " << value.gridDimZ << '\n';
+       s << "\tblockDimX = " << value.blockDimX << '\n';
+       s << "\tblockDimY = " << value.blockDimY << '\n';
+       s << "\tblockDimZ = " << value.blockDimZ << '\n';
+       s << "\tsharedMemBytes = " << value.sharedMemBytes << '\n';
+       s << "\tparamCount = " << value.paramCount << '\n';
+       s << "\tpParams = " << value.pParams << '\n';
+       s << "\textraCount = " << value.extraCount << '\n';
+       s << "\tpExtras = " << value.pExtras << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfoFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductFeatures& value)
 {
-       s << "StdVideoEncodeH264PictureInfoFlags = {\n";
-       s << "\tidr_flag = " << value.idr_flag << '\n';
-       s << "\tis_reference_flag = " << value.is_reference_flag << '\n';
-       s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
+       s << "VkPhysicalDeviceShaderIntegerDotProductFeatures = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tshaderIntegerDotProduct = " << value.shaderIntegerDotProduct << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264ReferenceInfoFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderIntegerDotProductProperties& value)
 {
-       s << "StdVideoEncodeH264ReferenceInfoFlags = {\n";
-       s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
+       s << "VkPhysicalDeviceShaderIntegerDotProductProperties = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tintegerDotProduct8BitUnsignedAccelerated = " << value.integerDotProduct8BitUnsignedAccelerated << '\n';
+       s << "\tintegerDotProduct8BitSignedAccelerated = " << value.integerDotProduct8BitSignedAccelerated << '\n';
+       s << "\tintegerDotProduct8BitMixedSignednessAccelerated = " << value.integerDotProduct8BitMixedSignednessAccelerated << '\n';
+       s << "\tintegerDotProduct4x8BitPackedUnsignedAccelerated = " << value.integerDotProduct4x8BitPackedUnsignedAccelerated << '\n';
+       s << "\tintegerDotProduct4x8BitPackedSignedAccelerated = " << value.integerDotProduct4x8BitPackedSignedAccelerated << '\n';
+       s << "\tintegerDotProduct4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProduct4x8BitPackedMixedSignednessAccelerated << '\n';
+       s << "\tintegerDotProduct16BitUnsignedAccelerated = " << value.integerDotProduct16BitUnsignedAccelerated << '\n';
+       s << "\tintegerDotProduct16BitSignedAccelerated = " << value.integerDotProduct16BitSignedAccelerated << '\n';
+       s << "\tintegerDotProduct16BitMixedSignednessAccelerated = " << value.integerDotProduct16BitMixedSignednessAccelerated << '\n';
+       s << "\tintegerDotProduct32BitUnsignedAccelerated = " << value.integerDotProduct32BitUnsignedAccelerated << '\n';
+       s << "\tintegerDotProduct32BitSignedAccelerated = " << value.integerDotProduct32BitSignedAccelerated << '\n';
+       s << "\tintegerDotProduct32BitMixedSignednessAccelerated = " << value.integerDotProduct32BitMixedSignednessAccelerated << '\n';
+       s << "\tintegerDotProduct64BitUnsignedAccelerated = " << value.integerDotProduct64BitUnsignedAccelerated << '\n';
+       s << "\tintegerDotProduct64BitSignedAccelerated = " << value.integerDotProduct64BitSignedAccelerated << '\n';
+       s << "\tintegerDotProduct64BitMixedSignednessAccelerated = " << value.integerDotProduct64BitMixedSignednessAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating8BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating8BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating8BitSignedAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating16BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating16BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating16BitSignedAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating32BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating32BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating32BitSignedAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating64BitUnsignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating64BitSignedAccelerated = " << value.integerDotProductAccumulatingSaturating64BitSignedAccelerated << '\n';
+       s << "\tintegerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = " << value.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefMgmtFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDrmPropertiesEXT& value)
 {
-       s << "StdVideoEncodeH264RefMgmtFlags = {\n";
-       s << "\tref_pic_list_modification_l0_flag = " << value.ref_pic_list_modification_l0_flag << '\n';
-       s << "\tref_pic_list_modification_l1_flag = " << value.ref_pic_list_modification_l1_flag << '\n';
+       s << "VkPhysicalDeviceDrmPropertiesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\thasPrimary = " << value.hasPrimary << '\n';
+       s << "\thasRender = " << value.hasRender << '\n';
+       s << "\tprimaryMajor = " << value.primaryMajor << '\n';
+       s << "\tprimaryMinor = " << value.primaryMinor << '\n';
+       s << "\trenderMajor = " << value.renderMajor << '\n';
+       s << "\trenderMinor = " << value.renderMinor << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefListModEntry& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR& value)
 {
-       s << "StdVideoEncodeH264RefListModEntry = {\n";
-       s << "\tmodification_of_pic_nums_idc = " << value.modification_of_pic_nums_idc << '\n';
-       s << "\tabs_diff_pic_num_minus1 = " << value.abs_diff_pic_num_minus1 << '\n';
-       s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
+       s << "VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tfragmentShaderBarycentric = " << value.fragmentShaderBarycentric << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefPicMarkingEntry& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR& value)
 {
-       s << "StdVideoEncodeH264RefPicMarkingEntry = {\n";
-       s << "\toperation = " << value.operation << '\n';
-       s << "\tdifference_of_pic_nums_minus1 = " << value.difference_of_pic_nums_minus1 << '\n';
-       s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
-       s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
-       s << "\tmax_long_term_frame_idx_plus1 = " << value.max_long_term_frame_idx_plus1 << '\n';
+       s << "VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\ttriStripVertexOrderIndependentOfProvokingVertex = " << value.triStripVertexOrderIndependentOfProvokingVertex << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefMemMgmtCtrlOperations& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingMotionBlurFeaturesNV& value)
 {
-       s << "StdVideoEncodeH264RefMemMgmtCtrlOperations = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\trefList0ModOpCount = " << value.refList0ModOpCount << '\n';
-       s << "\tpRefList0ModOperations = " << value.pRefList0ModOperations << '\n';
-       s << "\trefList1ModOpCount = " << value.refList1ModOpCount << '\n';
-       s << "\tpRefList1ModOperations = " << value.pRefList1ModOperations << '\n';
-       s << "\trefPicMarkingOpCount = " << value.refPicMarkingOpCount << '\n';
-       s << "\tpRefPicMarkingOperations = " << value.pRefPicMarkingOperations << '\n';
+       s << "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\trayTracingMotionBlur = " << value.rayTracingMotionBlur << '\n';
+       s << "\trayTracingMotionBlurPipelineTraceRaysIndirect = " << value.rayTracingMotionBlurPipelineTraceRaysIndirect << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryMotionTrianglesDataNV& value)
 {
-       s << "StdVideoEncodeH264PictureInfo = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
-       s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
-       s << "\tpictureType = " << value.pictureType << '\n';
-       s << "\tframe_num = " << value.frame_num << '\n';
-       s << "\tPicOrderCnt = " << value.PicOrderCnt << '\n';
+       s << "VkAccelerationStructureGeometryMotionTrianglesDataNV = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tvertexData = " << value.vertexData << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264ReferenceInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInfoNV& value)
 {
-       s << "StdVideoEncodeH264ReferenceInfo = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\tFrameNum = " << value.FrameNum << '\n';
-       s << "\tPicOrderCnt = " << value.PicOrderCnt << '\n';
-       s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
-       s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
+       s << "VkAccelerationStructureMotionInfoNV = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tmaxInstances = " << value.maxInstances << '\n';
+       s << "\tflags = " << getAccelerationStructureMotionInfoFlagsNVStr(value.flags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeader& value)
+std::ostream& operator<< (std::ostream& s, const VkSRTDataNV& value)
 {
-       s << "StdVideoEncodeH264SliceHeader = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\tfirst_mb_in_slice = " << value.first_mb_in_slice << '\n';
-       s << "\tslice_type = " << value.slice_type << '\n';
-       s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
-       s << "\tnum_ref_idx_l0_active_minus1 = " << value.num_ref_idx_l0_active_minus1 << '\n';
-       s << "\tnum_ref_idx_l1_active_minus1 = " << value.num_ref_idx_l1_active_minus1 << '\n';
-       s << "\tcabac_init_idc = " << value.cabac_init_idc << '\n';
-       s << "\tdisable_deblocking_filter_idc = " << value.disable_deblocking_filter_idc << '\n';
-       s << "\tslice_alpha_c0_offset_div2 = " << value.slice_alpha_c0_offset_div2 << '\n';
-       s << "\tslice_beta_offset_div2 = " << value.slice_beta_offset_div2 << '\n';
-       s << "\tpWeightTable = " << value.pWeightTable << '\n';
+       s << "VkSRTDataNV = {\n";
+       s << "\tsx = " << value.sx << '\n';
+       s << "\ta = " << value.a << '\n';
+       s << "\tb = " << value.b << '\n';
+       s << "\tpvx = " << value.pvx << '\n';
+       s << "\tsy = " << value.sy << '\n';
+       s << "\tc = " << value.c << '\n';
+       s << "\tpvy = " << value.pvy << '\n';
+       s << "\tsz = " << value.sz << '\n';
+       s << "\tpvz = " << value.pvz << '\n';
+       s << "\tqx = " << value.qx << '\n';
+       s << "\tqy = " << value.qy << '\n';
+       s << "\tqz = " << value.qz << '\n';
+       s << "\tqw = " << value.qw << '\n';
+       s << "\ttx = " << value.tx << '\n';
+       s << "\tty = " << value.ty << '\n';
+       s << "\ttz = " << value.tz << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264CapabilitiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureSRTMotionInstanceNV& value)
 {
-       s << "VkVideoEncodeH264CapabilitiesEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getVideoEncodeH264CapabilityFlagsEXTStr(value.flags) << '\n';
-       s << "\tinputModeFlags = " << getVideoEncodeH264InputModeFlagsEXTStr(value.inputModeFlags) << '\n';
-       s << "\toutputModeFlags = " << getVideoEncodeH264OutputModeFlagsEXTStr(value.outputModeFlags) << '\n';
-       s << "\tmaxPPictureL0ReferenceCount = " << value.maxPPictureL0ReferenceCount << '\n';
-       s << "\tmaxBPictureL0ReferenceCount = " << value.maxBPictureL0ReferenceCount << '\n';
-       s << "\tmaxL1ReferenceCount = " << value.maxL1ReferenceCount << '\n';
-       s << "\tmotionVectorsOverPicBoundariesFlag = " << value.motionVectorsOverPicBoundariesFlag << '\n';
-       s << "\tmaxBytesPerPicDenom = " << value.maxBytesPerPicDenom << '\n';
-       s << "\tmaxBitsPerMbDenom = " << value.maxBitsPerMbDenom << '\n';
-       s << "\tlog2MaxMvLengthHorizontal = " << value.log2MaxMvLengthHorizontal << '\n';
-       s << "\tlog2MaxMvLengthVertical = " << value.log2MaxMvLengthVertical << '\n';
+       s << "VkAccelerationStructureSRTMotionInstanceNV = {\n";
+       s << "\ttransformT0 = " << value.transformT0 << '\n';
+       s << "\ttransformT1 = " << value.transformT1 << '\n';
+       s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
+       s << "\tmask = " << value.mask << '\n';
+       s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
+       s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
+       s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersAddInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMatrixMotionInstanceNV& value)
 {
-       s << "VkVideoEncodeH264SessionParametersAddInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tspsStdCount = " << value.spsStdCount << '\n';
-       s << "\tpSpsStd = " << value.pSpsStd << '\n';
-       s << "\tppsStdCount = " << value.ppsStdCount << '\n';
-       s << "\tpPpsStd = " << value.pPpsStd << '\n';
+       s << "VkAccelerationStructureMatrixMotionInstanceNV = {\n";
+       s << "\ttransformT0 = " << value.transformT0 << '\n';
+       s << "\ttransformT1 = " << value.transformT1 << '\n';
+       s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
+       s << "\tmask = " << value.mask << '\n';
+       s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
+       s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
+       s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264SessionParametersCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInstanceDataNV& value)
 {
-       s << "VkVideoEncodeH264SessionParametersCreateInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
-       s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
-       s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
+       s << "VkAccelerationStructureMotionInstanceDataNV = {\n";
+       s << "\tstaticInstance = " << value.staticInstance << '\n';
+       s << "\tmatrixMotionInstance = " << value.matrixMotionInstance << '\n';
+       s << "\tsrtMotionInstance = " << value.srtMotionInstance << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264DpbSlotInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMotionInstanceNV& value)
 {
-       s << "VkVideoEncodeH264DpbSlotInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tslotIndex = " << value.slotIndex << '\n';
-       s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
+       s << "VkAccelerationStructureMotionInstanceNV = {\n";
+       s << "\ttype = " << value.type << '\n';
+       s << "\tflags = " << getAccelerationStructureMotionInstanceFlagsNVStr(value.flags) << '\n';
+       s << "\tdata = " << value.data << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264ReferenceListsEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryGetRemoteAddressInfoNV& value)
 {
-       s << "VkVideoEncodeH264ReferenceListsEXT = {\n";
+       s << "VkMemoryGetRemoteAddressInfoNV = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\treferenceList0EntryCount = " << value.referenceList0EntryCount << '\n';
-       s << "\tpReferenceList0Entries = " << value.pReferenceList0Entries << '\n';
-       s << "\treferenceList1EntryCount = " << value.referenceList1EntryCount << '\n';
-       s << "\tpReferenceList1Entries = " << value.pReferenceList1Entries << '\n';
-       s << "\tpMemMgmtCtrlOperations = " << value.pMemMgmtCtrlOperations << '\n';
+       s << "\tmemory = " << value.memory << '\n';
+       s << "\thandleType = " << value.handleType << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264NaluSliceEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkImportMemoryBufferCollectionFUCHSIA& value)
 {
-       s << "VkVideoEncodeH264NaluSliceEXT = {\n";
+       s << "VkImportMemoryBufferCollectionFUCHSIA = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmbCount = " << value.mbCount << '\n';
-       s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
-       s << "\tpSliceHeaderStd = " << value.pSliceHeaderStd << '\n';
+       s << "\tcollection = " << value.collection << '\n';
+       s << "\tindex = " << value.index << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264VclFrameInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkBufferCollectionImageCreateInfoFUCHSIA& value)
 {
-       s << "VkVideoEncodeH264VclFrameInfoEXT = {\n";
+       s << "VkBufferCollectionImageCreateInfoFUCHSIA = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
-       s << "\tnaluSliceEntryCount = " << value.naluSliceEntryCount << '\n';
-       s << "\tpNaluSliceEntries = " << value.pNaluSliceEntries << '\n';
-       s << "\tpCurrentPictureInfo = " << value.pCurrentPictureInfo << '\n';
+       s << "\tcollection = " << value.collection << '\n';
+       s << "\tindex = " << value.index << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264EmitPictureParametersEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkBufferCollectionBufferCreateInfoFUCHSIA& value)
 {
-       s << "VkVideoEncodeH264EmitPictureParametersEXT = {\n";
+       s << "VkBufferCollectionBufferCreateInfoFUCHSIA = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tspsId = " << value.spsId << '\n';
-       s << "\temitSpsEnable = " << value.emitSpsEnable << '\n';
-       s << "\tppsIdEntryCount = " << value.ppsIdEntryCount << '\n';
-       s << "\tppsIdEntries = " << value.ppsIdEntries << '\n';
+       s << "\tcollection = " << value.collection << '\n';
+       s << "\tindex = " << value.index << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264ProfileEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkBufferCollectionCreateInfoFUCHSIA& value)
 {
-       s << "VkVideoEncodeH264ProfileEXT = {\n";
+       s << "VkBufferCollectionCreateInfoFUCHSIA = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
+       s << "\tcollectionToken = " << value.collectionToken << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264RateControlInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkBufferCollectionPropertiesFUCHSIA& value)
 {
-       s << "VkVideoEncodeH264RateControlInfoEXT = {\n";
+       s << "VkBufferCollectionPropertiesFUCHSIA = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tgopFrameCount = " << value.gopFrameCount << '\n';
-       s << "\tidrPeriod = " << value.idrPeriod << '\n';
-       s << "\tconsecutiveBFrameCount = " << value.consecutiveBFrameCount << '\n';
-       s << "\trateControlStructure = " << value.rateControlStructure << '\n';
-       s << "\ttemporalLayerCount = " << value.temporalLayerCount << '\n';
+       s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
+       s << "\tbufferCount = " << value.bufferCount << '\n';
+       s << "\tcreateInfoIndex = " << value.createInfoIndex << '\n';
+       s << "\tsysmemPixelFormat = " << value.sysmemPixelFormat << '\n';
+       s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
+       s << "\tsysmemColorSpaceIndex = " << value.sysmemColorSpaceIndex << '\n';
+       s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
+       s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
+       s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
+       s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
+       s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264QpEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkBufferConstraintsInfoFUCHSIA& value)
 {
-       s << "VkVideoEncodeH264QpEXT = {\n";
-       s << "\tqpI = " << value.qpI << '\n';
-       s << "\tqpP = " << value.qpP << '\n';
-       s << "\tqpB = " << value.qpB << '\n';
+       s << "VkBufferConstraintsInfoFUCHSIA = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tcreateInfo = " << value.createInfo << '\n';
+       s << "\trequiredFormatFeatures = " << getFormatFeatureFlagsStr(value.requiredFormatFeatures) << '\n';
+       s << "\tbufferCollectionConstraints = " << value.bufferCollectionConstraints << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264FrameSizeEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkSysmemColorSpaceFUCHSIA& value)
 {
-       s << "VkVideoEncodeH264FrameSizeEXT = {\n";
-       s << "\tframeISize = " << value.frameISize << '\n';
-       s << "\tframePSize = " << value.framePSize << '\n';
-       s << "\tframeBSize = " << value.frameBSize << '\n';
+       s << "VkSysmemColorSpaceFUCHSIA = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tcolorSpace = " << value.colorSpace << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH264RateControlLayerInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkImageFormatConstraintsInfoFUCHSIA& value)
 {
-       s << "VkVideoEncodeH264RateControlLayerInfoEXT = {\n";
+       s << "VkImageFormatConstraintsInfoFUCHSIA = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttemporalLayerId = " << value.temporalLayerId << '\n';
-       s << "\tuseInitialRcQp = " << value.useInitialRcQp << '\n';
-       s << "\tinitialRcQp = " << value.initialRcQp << '\n';
-       s << "\tuseMinQp = " << value.useMinQp << '\n';
-       s << "\tminQp = " << value.minQp << '\n';
-       s << "\tuseMaxQp = " << value.useMaxQp << '\n';
-       s << "\tmaxQp = " << value.maxQp << '\n';
-       s << "\tuseMaxFrameSize = " << value.useMaxFrameSize << '\n';
-       s << "\tmaxFrameSize = " << value.maxFrameSize << '\n';
+       s << "\timageCreateInfo = " << value.imageCreateInfo << '\n';
+       s << "\trequiredFormatFeatures = " << getFormatFeatureFlagsStr(value.requiredFormatFeatures) << '\n';
+       s << "\tflags = " << getImageFormatConstraintsFlagsFUCHSIAStr(value.flags) << '\n';
+       s << "\tsysmemPixelFormat = " << value.sysmemPixelFormat << '\n';
+       s << "\tcolorSpaceCount = " << value.colorSpaceCount << '\n';
+       s << "\tpColorSpaces = " << value.pColorSpaces << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH265DecPicBufMgr& value)
+std::ostream& operator<< (std::ostream& s, const VkImageConstraintsInfoFUCHSIA& value)
 {
-       s << "StdVideoH265DecPicBufMgr = {\n";
-       s << "\tmax_latency_increase_plus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.max_latency_increase_plus1), DE_ARRAY_END(value.max_latency_increase_plus1)) << '\n';
-       s << "\tmax_dec_pic_buffering_minus1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.max_dec_pic_buffering_minus1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.max_dec_pic_buffering_minus1))) << '\n';
-       s << "\tmax_num_reorder_pics = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.max_num_reorder_pics)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.max_num_reorder_pics))) << '\n';
+       s << "VkImageConstraintsInfoFUCHSIA = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tformatConstraintsCount = " << value.formatConstraintsCount << '\n';
+       s << "\tpFormatConstraints = " << value.pFormatConstraints << '\n';
+       s << "\tbufferCollectionConstraints = " << value.bufferCollectionConstraints << '\n';
+       s << "\tflags = " << getImageConstraintsInfoFlagsFUCHSIAStr(value.flags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH265SubLayerHrdParameters& value)
+std::ostream& operator<< (std::ostream& s, const VkBufferCollectionConstraintsInfoFUCHSIA& value)
 {
-       s << "StdVideoH265SubLayerHrdParameters = {\n";
-       s << "\tbit_rate_value_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.bit_rate_value_minus1), DE_ARRAY_END(value.bit_rate_value_minus1)) << '\n';
-       s << "\tcpb_size_value_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.cpb_size_value_minus1), DE_ARRAY_END(value.cpb_size_value_minus1)) << '\n';
-       s << "\tcpb_size_du_value_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.cpb_size_du_value_minus1), DE_ARRAY_END(value.cpb_size_du_value_minus1)) << '\n';
-       s << "\tbit_rate_du_value_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.bit_rate_du_value_minus1), DE_ARRAY_END(value.bit_rate_du_value_minus1)) << '\n';
-       s << "\tcbr_flag = " << value.cbr_flag << '\n';
+       s << "VkBufferCollectionConstraintsInfoFUCHSIA = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tminBufferCount = " << value.minBufferCount << '\n';
+       s << "\tmaxBufferCount = " << value.maxBufferCount << '\n';
+       s << "\tminBufferCountForCamping = " << value.minBufferCountForCamping << '\n';
+       s << "\tminBufferCountForDedicatedSlack = " << value.minBufferCountForDedicatedSlack << '\n';
+       s << "\tminBufferCountForSharedSlack = " << value.minBufferCountForSharedSlack << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT& value)
 {
-       s << "StdVideoH265HrdFlags = {\n";
-       s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
-       s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
-       s << "\tsub_pic_hrd_params_present_flag = " << value.sub_pic_hrd_params_present_flag << '\n';
-       s << "\tsub_pic_cpb_params_in_pic_timing_sei_flag = " << value.sub_pic_cpb_params_in_pic_timing_sei_flag << '\n';
-       s << "\tfixed_pic_rate_general_flag = " << value.fixed_pic_rate_general_flag << '\n';
-       s << "\tfixed_pic_rate_within_cvs_flag = " << value.fixed_pic_rate_within_cvs_flag << '\n';
-       s << "\tlow_delay_hrd_flag = " << value.low_delay_hrd_flag << '\n';
+       s << "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tformatRgba10x6WithoutYCbCrSampler = " << value.formatRgba10x6WithoutYCbCrSampler << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdParameters& value)
+std::ostream& operator<< (std::ostream& s, const VkFormatProperties3& value)
 {
-       s << "StdVideoH265HrdParameters = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\ttick_divisor_minus2 = " << value.tick_divisor_minus2 << '\n';
-       s << "\tdu_cpb_removal_delay_increment_length_minus1 = " << value.du_cpb_removal_delay_increment_length_minus1 << '\n';
-       s << "\tdpb_output_delay_du_length_minus1 = " << value.dpb_output_delay_du_length_minus1 << '\n';
-       s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
-       s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
-       s << "\tcpb_size_du_scale = " << value.cpb_size_du_scale << '\n';
-       s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
-       s << "\tau_cpb_removal_delay_length_minus1 = " << value.au_cpb_removal_delay_length_minus1 << '\n';
-       s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
-       s << "\tcpb_cnt_minus1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.cpb_cnt_minus1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.cpb_cnt_minus1))) << '\n';
-       s << "\telemental_duration_in_tc_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.elemental_duration_in_tc_minus1), DE_ARRAY_END(value.elemental_duration_in_tc_minus1)) << '\n';
-       s << "\tpSubLayerHrdParametersNal = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.pSubLayerHrdParametersNal), DE_ARRAY_END(value.pSubLayerHrdParametersNal)) << '\n';
-       s << "\tpSubLayerHrdParametersVcl = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.pSubLayerHrdParametersVcl), DE_ARRAY_END(value.pSubLayerHrdParametersVcl)) << '\n';
+       s << "VkFormatProperties3 = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tlinearTilingFeatures = " << getFormatFeatureFlags2Str(value.linearTilingFeatures) << '\n';
+       s << "\toptimalTilingFeatures = " << getFormatFeatureFlags2Str(value.optimalTilingFeatures) << '\n';
+       s << "\tbufferFeatures = " << getFormatFeatureFlags2Str(value.bufferFeatures) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH265VpsFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesList2EXT& value)
 {
-       s << "StdVideoH265VpsFlags = {\n";
-       s << "\tvps_temporal_id_nesting_flag = " << value.vps_temporal_id_nesting_flag << '\n';
-       s << "\tvps_sub_layer_ordering_info_present_flag = " << value.vps_sub_layer_ordering_info_present_flag << '\n';
-       s << "\tvps_timing_info_present_flag = " << value.vps_timing_info_present_flag << '\n';
-       s << "\tvps_poc_proportional_to_timing_flag = " << value.vps_poc_proportional_to_timing_flag << '\n';
+       s << "VkDrmFormatModifierPropertiesList2EXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tdrmFormatModifierCount = " << value.drmFormatModifierCount << '\n';
+       s << "\tpDrmFormatModifierProperties = " << value.pDrmFormatModifierProperties << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH265VideoParameterSet& value)
+std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierProperties2EXT& value)
 {
-       s << "StdVideoH265VideoParameterSet = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\tvps_video_parameter_set_id = " << value.vps_video_parameter_set_id << '\n';
-       s << "\tvps_max_sub_layers_minus1 = " << value.vps_max_sub_layers_minus1 << '\n';
-       s << "\tvps_num_units_in_tick = " << value.vps_num_units_in_tick << '\n';
-       s << "\tvps_time_scale = " << value.vps_time_scale << '\n';
-       s << "\tvps_num_ticks_poc_diff_one_minus1 = " << value.vps_num_ticks_poc_diff_one_minus1 << '\n';
-       s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
-       s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
+       s << "VkDrmFormatModifierProperties2EXT = {\n";
+       s << "\tdrmFormatModifier = " << value.drmFormatModifier << '\n';
+       s << "\tdrmFormatModifierPlaneCount = " << value.drmFormatModifierPlaneCount << '\n';
+       s << "\tdrmFormatModifierTilingFeatures = " << getFormatFeatureFlags2Str(value.drmFormatModifierTilingFeatures) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH265ScalingLists& value)
+std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatProperties2ANDROID& value)
 {
-       s << "StdVideoH265ScalingLists = {\n";
-       s << "\tScalingList4x4 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4), DE_ARRAY_END(value.ScalingList4x4)) << '\n';
-       s << "\tScalingList8x8 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8), DE_ARRAY_END(value.ScalingList8x8)) << '\n';
-       s << "\tScalingList16x16 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList16x16), DE_ARRAY_END(value.ScalingList16x16)) << '\n';
-       s << "\tScalingList32x32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList32x32), DE_ARRAY_END(value.ScalingList32x32)) << '\n';
-       s << "\tScalingListDCCoef16x16 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.ScalingListDCCoef16x16)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.ScalingListDCCoef16x16))) << '\n';
-       s << "\tScalingListDCCoef32x32 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.ScalingListDCCoef32x32)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.ScalingListDCCoef32x32))) << '\n';
+       s << "VkAndroidHardwareBufferFormatProperties2ANDROID = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tformat = " << value.format << '\n';
+       s << "\texternalFormat = " << value.externalFormat << '\n';
+       s << "\tformatFeatures = " << getFormatFeatureFlags2Str(value.formatFeatures) << '\n';
+       s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
+       s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
+       s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
+       s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
+       s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsVuiFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineRenderingCreateInfo& value)
 {
-       s << "StdVideoH265SpsVuiFlags = {\n";
-       s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
-       s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
-       s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
-       s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
-       s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
-       s << "\tcolour_description_present_flag = " << value.colour_description_present_flag << '\n';
-       s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
-       s << "\tneutral_chroma_indication_flag = " << value.neutral_chroma_indication_flag << '\n';
-       s << "\tfield_seq_flag = " << value.field_seq_flag << '\n';
-       s << "\tframe_field_info_present_flag = " << value.frame_field_info_present_flag << '\n';
-       s << "\tdefault_display_window_flag = " << value.default_display_window_flag << '\n';
-       s << "\tvui_timing_info_present_flag = " << value.vui_timing_info_present_flag << '\n';
-       s << "\tvui_poc_proportional_to_timing_flag = " << value.vui_poc_proportional_to_timing_flag << '\n';
-       s << "\tvui_hrd_parameters_present_flag = " << value.vui_hrd_parameters_present_flag << '\n';
-       s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
-       s << "\ttiles_fixed_structure_flag = " << value.tiles_fixed_structure_flag << '\n';
-       s << "\tmotion_vectors_over_pic_boundaries_flag = " << value.motion_vectors_over_pic_boundaries_flag << '\n';
-       s << "\trestricted_ref_pic_lists_flag = " << value.restricted_ref_pic_lists_flag << '\n';
+       s << "VkPipelineRenderingCreateInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tviewMask = " << value.viewMask << '\n';
+       s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
+       s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
+       s << "\tdepthAttachmentFormat = " << value.depthAttachmentFormat << '\n';
+       s << "\tstencilAttachmentFormat = " << value.stencilAttachmentFormat << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSetVui& value)
+std::ostream& operator<< (std::ostream& s, const VkRenderingInfo& value)
 {
-       s << "StdVideoH265SequenceParameterSetVui = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
-       s << "\tsar_width = " << value.sar_width << '\n';
-       s << "\tsar_height = " << value.sar_height << '\n';
-       s << "\tvideo_format = " << value.video_format << '\n';
-       s << "\tcolour_primaries = " << value.colour_primaries << '\n';
-       s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
-       s << "\tmatrix_coeffs = " << value.matrix_coeffs << '\n';
-       s << "\tchroma_sample_loc_type_top_field = " << value.chroma_sample_loc_type_top_field << '\n';
-       s << "\tchroma_sample_loc_type_bottom_field = " << value.chroma_sample_loc_type_bottom_field << '\n';
-       s << "\tdef_disp_win_left_offset = " << value.def_disp_win_left_offset << '\n';
-       s << "\tdef_disp_win_right_offset = " << value.def_disp_win_right_offset << '\n';
-       s << "\tdef_disp_win_top_offset = " << value.def_disp_win_top_offset << '\n';
-       s << "\tdef_disp_win_bottom_offset = " << value.def_disp_win_bottom_offset << '\n';
-       s << "\tvui_num_units_in_tick = " << value.vui_num_units_in_tick << '\n';
-       s << "\tvui_time_scale = " << value.vui_time_scale << '\n';
-       s << "\tvui_num_ticks_poc_diff_one_minus1 = " << value.vui_num_ticks_poc_diff_one_minus1 << '\n';
-       s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
-       s << "\tmin_spatial_segmentation_idc = " << value.min_spatial_segmentation_idc << '\n';
-       s << "\tmax_bytes_per_pic_denom = " << value.max_bytes_per_pic_denom << '\n';
-       s << "\tmax_bits_per_min_cu_denom = " << value.max_bits_per_min_cu_denom << '\n';
-       s << "\tlog2_max_mv_length_horizontal = " << value.log2_max_mv_length_horizontal << '\n';
-       s << "\tlog2_max_mv_length_vertical = " << value.log2_max_mv_length_vertical << '\n';
+       s << "VkRenderingInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tflags = " << getRenderingFlagsStr(value.flags) << '\n';
+       s << "\trenderArea = " << value.renderArea << '\n';
+       s << "\tlayerCount = " << value.layerCount << '\n';
+       s << "\tviewMask = " << value.viewMask << '\n';
+       s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
+       s << "\tpColorAttachments = " << value.pColorAttachments << '\n';
+       s << "\tpDepthAttachment = " << value.pDepthAttachment << '\n';
+       s << "\tpStencilAttachment = " << value.pStencilAttachment << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH265PredictorPaletteEntries& value)
+std::ostream& operator<< (std::ostream& s, const VkRenderingAttachmentInfo& value)
 {
-       s << "StdVideoH265PredictorPaletteEntries = {\n";
-       s << "\tPredictorPaletteEntries = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PredictorPaletteEntries), DE_ARRAY_END(value.PredictorPaletteEntries)) << '\n';
+       s << "VkRenderingAttachmentInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\timageView = " << value.imageView << '\n';
+       s << "\timageLayout = " << value.imageLayout << '\n';
+       s << "\tresolveMode = " << value.resolveMode << '\n';
+       s << "\tresolveImageView = " << value.resolveImageView << '\n';
+       s << "\tresolveImageLayout = " << value.resolveImageLayout << '\n';
+       s << "\tloadOp = " << value.loadOp << '\n';
+       s << "\tstoreOp = " << value.storeOp << '\n';
+       s << "\tclearValue = " << value.clearValue << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkRenderingFragmentShadingRateAttachmentInfoKHR& value)
 {
-       s << "StdVideoH265SpsFlags = {\n";
-       s << "\tsps_temporal_id_nesting_flag = " << value.sps_temporal_id_nesting_flag << '\n';
-       s << "\tseparate_colour_plane_flag = " << value.separate_colour_plane_flag << '\n';
-       s << "\tscaling_list_enabled_flag = " << value.scaling_list_enabled_flag << '\n';
-       s << "\tsps_scaling_list_data_present_flag = " << value.sps_scaling_list_data_present_flag << '\n';
-       s << "\tamp_enabled_flag = " << value.amp_enabled_flag << '\n';
-       s << "\tsample_adaptive_offset_enabled_flag = " << value.sample_adaptive_offset_enabled_flag << '\n';
-       s << "\tpcm_enabled_flag = " << value.pcm_enabled_flag << '\n';
-       s << "\tpcm_loop_filter_disabled_flag = " << value.pcm_loop_filter_disabled_flag << '\n';
-       s << "\tlong_term_ref_pics_present_flag = " << value.long_term_ref_pics_present_flag << '\n';
-       s << "\tsps_temporal_mvp_enabled_flag = " << value.sps_temporal_mvp_enabled_flag << '\n';
-       s << "\tstrong_intra_smoothing_enabled_flag = " << value.strong_intra_smoothing_enabled_flag << '\n';
-       s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
-       s << "\tsps_extension_present_flag = " << value.sps_extension_present_flag << '\n';
-       s << "\tsps_range_extension_flag = " << value.sps_range_extension_flag << '\n';
-       s << "\ttransform_skip_rotation_enabled_flag = " << value.transform_skip_rotation_enabled_flag << '\n';
-       s << "\ttransform_skip_context_enabled_flag = " << value.transform_skip_context_enabled_flag << '\n';
-       s << "\timplicit_rdpcm_enabled_flag = " << value.implicit_rdpcm_enabled_flag << '\n';
-       s << "\texplicit_rdpcm_enabled_flag = " << value.explicit_rdpcm_enabled_flag << '\n';
-       s << "\textended_precision_processing_flag = " << value.extended_precision_processing_flag << '\n';
-       s << "\tintra_smoothing_disabled_flag = " << value.intra_smoothing_disabled_flag << '\n';
-       s << "\thigh_precision_offsets_enabled_flag = " << value.high_precision_offsets_enabled_flag << '\n';
-       s << "\tpersistent_rice_adaptation_enabled_flag = " << value.persistent_rice_adaptation_enabled_flag << '\n';
-       s << "\tcabac_bypass_alignment_enabled_flag = " << value.cabac_bypass_alignment_enabled_flag << '\n';
-       s << "\tsps_scc_extension_flag = " << value.sps_scc_extension_flag << '\n';
-       s << "\tsps_curr_pic_ref_enabled_flag = " << value.sps_curr_pic_ref_enabled_flag << '\n';
-       s << "\tpalette_mode_enabled_flag = " << value.palette_mode_enabled_flag << '\n';
-       s << "\tsps_palette_predictor_initializer_present_flag = " << value.sps_palette_predictor_initializer_present_flag << '\n';
-       s << "\tintra_boundary_filtering_disabled_flag = " << value.intra_boundary_filtering_disabled_flag << '\n';
+       s << "VkRenderingFragmentShadingRateAttachmentInfoKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\timageView = " << value.imageView << '\n';
+       s << "\timageLayout = " << value.imageLayout << '\n';
+       s << "\tshadingRateAttachmentTexelSize = " << value.shadingRateAttachmentTexelSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSet& value)
+std::ostream& operator<< (std::ostream& s, const VkRenderingFragmentDensityMapAttachmentInfoEXT& value)
 {
-       s << "StdVideoH265SequenceParameterSet = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\tprofile_idc = " << value.profile_idc << '\n';
-       s << "\tlevel_idc = " << value.level_idc << '\n';
-       s << "\tpic_width_in_luma_samples = " << value.pic_width_in_luma_samples << '\n';
-       s << "\tpic_height_in_luma_samples = " << value.pic_height_in_luma_samples << '\n';
-       s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
-       s << "\tsps_max_sub_layers_minus1 = " << value.sps_max_sub_layers_minus1 << '\n';
-       s << "\tsps_seq_parameter_set_id = " << value.sps_seq_parameter_set_id << '\n';
-       s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
-       s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
-       s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
-       s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
-       s << "\tlog2_min_luma_coding_block_size_minus3 = " << value.log2_min_luma_coding_block_size_minus3 << '\n';
-       s << "\tlog2_diff_max_min_luma_coding_block_size = " << value.log2_diff_max_min_luma_coding_block_size << '\n';
-       s << "\tlog2_min_luma_transform_block_size_minus2 = " << value.log2_min_luma_transform_block_size_minus2 << '\n';
-       s << "\tlog2_diff_max_min_luma_transform_block_size = " << value.log2_diff_max_min_luma_transform_block_size << '\n';
-       s << "\tmax_transform_hierarchy_depth_inter = " << value.max_transform_hierarchy_depth_inter << '\n';
-       s << "\tmax_transform_hierarchy_depth_intra = " << value.max_transform_hierarchy_depth_intra << '\n';
-       s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
-       s << "\tnum_long_term_ref_pics_sps = " << value.num_long_term_ref_pics_sps << '\n';
-       s << "\tpcm_sample_bit_depth_luma_minus1 = " << value.pcm_sample_bit_depth_luma_minus1 << '\n';
-       s << "\tpcm_sample_bit_depth_chroma_minus1 = " << value.pcm_sample_bit_depth_chroma_minus1 << '\n';
-       s << "\tlog2_min_pcm_luma_coding_block_size_minus3 = " << value.log2_min_pcm_luma_coding_block_size_minus3 << '\n';
-       s << "\tlog2_diff_max_min_pcm_luma_coding_block_size = " << value.log2_diff_max_min_pcm_luma_coding_block_size << '\n';
-       s << "\tconf_win_left_offset = " << value.conf_win_left_offset << '\n';
-       s << "\tconf_win_right_offset = " << value.conf_win_right_offset << '\n';
-       s << "\tconf_win_top_offset = " << value.conf_win_top_offset << '\n';
-       s << "\tconf_win_bottom_offset = " << value.conf_win_bottom_offset << '\n';
-       s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
-       s << "\tpScalingLists = " << value.pScalingLists << '\n';
-       s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
-       s << "\tpalette_max_size = " << value.palette_max_size << '\n';
-       s << "\tdelta_palette_max_predictor_size = " << value.delta_palette_max_predictor_size << '\n';
-       s << "\tmotion_vector_resolution_control_idc = " << value.motion_vector_resolution_control_idc << '\n';
-       s << "\tsps_num_palette_predictor_initializer_minus1 = " << value.sps_num_palette_predictor_initializer_minus1 << '\n';
-       s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
+       s << "VkRenderingFragmentDensityMapAttachmentInfoEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\timageView = " << value.imageView << '\n';
+       s << "\timageLayout = " << value.imageLayout << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH265PpsFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDynamicRenderingFeatures& value)
 {
-       s << "StdVideoH265PpsFlags = {\n";
-       s << "\tdependent_slice_segments_enabled_flag = " << value.dependent_slice_segments_enabled_flag << '\n';
-       s << "\toutput_flag_present_flag = " << value.output_flag_present_flag << '\n';
-       s << "\tsign_data_hiding_enabled_flag = " << value.sign_data_hiding_enabled_flag << '\n';
-       s << "\tcabac_init_present_flag = " << value.cabac_init_present_flag << '\n';
-       s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
-       s << "\ttransform_skip_enabled_flag = " << value.transform_skip_enabled_flag << '\n';
-       s << "\tcu_qp_delta_enabled_flag = " << value.cu_qp_delta_enabled_flag << '\n';
-       s << "\tpps_slice_chroma_qp_offsets_present_flag = " << value.pps_slice_chroma_qp_offsets_present_flag << '\n';
-       s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
-       s << "\tweighted_bipred_flag = " << value.weighted_bipred_flag << '\n';
-       s << "\ttransquant_bypass_enabled_flag = " << value.transquant_bypass_enabled_flag << '\n';
-       s << "\ttiles_enabled_flag = " << value.tiles_enabled_flag << '\n';
-       s << "\tentropy_coding_sync_enabled_flag = " << value.entropy_coding_sync_enabled_flag << '\n';
-       s << "\tuniform_spacing_flag = " << value.uniform_spacing_flag << '\n';
-       s << "\tloop_filter_across_tiles_enabled_flag = " << value.loop_filter_across_tiles_enabled_flag << '\n';
-       s << "\tpps_loop_filter_across_slices_enabled_flag = " << value.pps_loop_filter_across_slices_enabled_flag << '\n';
-       s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
-       s << "\tdeblocking_filter_override_enabled_flag = " << value.deblocking_filter_override_enabled_flag << '\n';
-       s << "\tpps_deblocking_filter_disabled_flag = " << value.pps_deblocking_filter_disabled_flag << '\n';
-       s << "\tpps_scaling_list_data_present_flag = " << value.pps_scaling_list_data_present_flag << '\n';
-       s << "\tlists_modification_present_flag = " << value.lists_modification_present_flag << '\n';
-       s << "\tslice_segment_header_extension_present_flag = " << value.slice_segment_header_extension_present_flag << '\n';
-       s << "\tpps_extension_present_flag = " << value.pps_extension_present_flag << '\n';
-       s << "\tcross_component_prediction_enabled_flag = " << value.cross_component_prediction_enabled_flag << '\n';
-       s << "\tchroma_qp_offset_list_enabled_flag = " << value.chroma_qp_offset_list_enabled_flag << '\n';
-       s << "\tpps_curr_pic_ref_enabled_flag = " << value.pps_curr_pic_ref_enabled_flag << '\n';
-       s << "\tresidual_adaptive_colour_transform_enabled_flag = " << value.residual_adaptive_colour_transform_enabled_flag << '\n';
-       s << "\tpps_slice_act_qp_offsets_present_flag = " << value.pps_slice_act_qp_offsets_present_flag << '\n';
-       s << "\tpps_palette_predictor_initializer_present_flag = " << value.pps_palette_predictor_initializer_present_flag << '\n';
-       s << "\tmonochrome_palette_flag = " << value.monochrome_palette_flag << '\n';
-       s << "\tpps_range_extension_flag = " << value.pps_range_extension_flag << '\n';
+       s << "VkPhysicalDeviceDynamicRenderingFeatures = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tdynamicRendering = " << value.dynamicRendering << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoH265PictureParameterSet& value)
+std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderingInfo& value)
 {
-       s << "StdVideoH265PictureParameterSet = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
-       s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
-       s << "\tnum_extra_slice_header_bits = " << value.num_extra_slice_header_bits << '\n';
-       s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
-       s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
-       s << "\tinit_qp_minus26 = " << value.init_qp_minus26 << '\n';
-       s << "\tdiff_cu_qp_delta_depth = " << value.diff_cu_qp_delta_depth << '\n';
-       s << "\tpps_cb_qp_offset = " << value.pps_cb_qp_offset << '\n';
-       s << "\tpps_cr_qp_offset = " << value.pps_cr_qp_offset << '\n';
-       s << "\tnum_tile_columns_minus1 = " << value.num_tile_columns_minus1 << '\n';
-       s << "\tnum_tile_rows_minus1 = " << value.num_tile_rows_minus1 << '\n';
-       s << "\tcolumn_width_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.column_width_minus1), DE_ARRAY_END(value.column_width_minus1)) << '\n';
-       s << "\trow_height_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.row_height_minus1), DE_ARRAY_END(value.row_height_minus1)) << '\n';
-       s << "\tpps_beta_offset_div2 = " << value.pps_beta_offset_div2 << '\n';
-       s << "\tpps_tc_offset_div2 = " << value.pps_tc_offset_div2 << '\n';
-       s << "\tlog2_parallel_merge_level_minus2 = " << value.log2_parallel_merge_level_minus2 << '\n';
-       s << "\tpScalingLists = " << value.pScalingLists << '\n';
-       s << "\tlog2_max_transform_skip_block_size_minus2 = " << value.log2_max_transform_skip_block_size_minus2 << '\n';
-       s << "\tdiff_cu_chroma_qp_offset_depth = " << value.diff_cu_chroma_qp_offset_depth << '\n';
-       s << "\tchroma_qp_offset_list_len_minus1 = " << value.chroma_qp_offset_list_len_minus1 << '\n';
-       s << "\tcb_qp_offset_list = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.cb_qp_offset_list), DE_ARRAY_END(value.cb_qp_offset_list)) << '\n';
-       s << "\tcr_qp_offset_list = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.cr_qp_offset_list), DE_ARRAY_END(value.cr_qp_offset_list)) << '\n';
-       s << "\tlog2_sao_offset_scale_luma = " << value.log2_sao_offset_scale_luma << '\n';
-       s << "\tlog2_sao_offset_scale_chroma = " << value.log2_sao_offset_scale_chroma << '\n';
-       s << "\tpps_act_y_qp_offset_plus5 = " << value.pps_act_y_qp_offset_plus5 << '\n';
-       s << "\tpps_act_cb_qp_offset_plus5 = " << value.pps_act_cb_qp_offset_plus5 << '\n';
-       s << "\tpps_act_cr_qp_offset_plus5 = " << value.pps_act_cr_qp_offset_plus5 << '\n';
-       s << "\tpps_num_palette_predictor_initializer = " << value.pps_num_palette_predictor_initializer << '\n';
-       s << "\tluma_bit_depth_entry_minus8 = " << value.luma_bit_depth_entry_minus8 << '\n';
-       s << "\tchroma_bit_depth_entry_minus8 = " << value.chroma_bit_depth_entry_minus8 << '\n';
-       s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
+       s << "VkCommandBufferInheritanceRenderingInfo = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tflags = " << getRenderingFlagsStr(value.flags) << '\n';
+       s << "\tviewMask = " << value.viewMask << '\n';
+       s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
+       s << "\tpColorAttachmentFormats = " << value.pColorAttachmentFormats << '\n';
+       s << "\tdepthAttachmentFormat = " << value.depthAttachmentFormat << '\n';
+       s << "\tstencilAttachmentFormat = " << value.stencilAttachmentFormat << '\n';
+       s << "\trasterizationSamples = " << value.rasterizationSamples << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265WeightTableFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkAttachmentSampleCountInfoAMD& value)
 {
-       s << "StdVideoEncodeH265WeightTableFlags = {\n";
-       s << "\tluma_weight_l0_flag = " << value.luma_weight_l0_flag << '\n';
-       s << "\tchroma_weight_l0_flag = " << value.chroma_weight_l0_flag << '\n';
-       s << "\tluma_weight_l1_flag = " << value.luma_weight_l1_flag << '\n';
-       s << "\tchroma_weight_l1_flag = " << value.chroma_weight_l1_flag << '\n';
+       s << "VkAttachmentSampleCountInfoAMD = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tcolorAttachmentCount = " << value.colorAttachmentCount << '\n';
+       s << "\tpColorAttachmentSamples = " << value.pColorAttachmentSamples << '\n';
+       s << "\tdepthStencilAttachmentSamples = " << value.depthStencilAttachmentSamples << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265WeightTable& value)
+std::ostream& operator<< (std::ostream& s, const VkMultiviewPerViewAttributesInfoNVX& value)
 {
-       s << "StdVideoEncodeH265WeightTable = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\tluma_log2_weight_denom = " << value.luma_log2_weight_denom << '\n';
-       s << "\tdelta_chroma_log2_weight_denom = " << value.delta_chroma_log2_weight_denom << '\n';
-       s << "\tdelta_luma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_luma_weight_l0), DE_ARRAY_END(value.delta_luma_weight_l0)) << '\n';
-       s << "\tluma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l0), DE_ARRAY_END(value.luma_offset_l0)) << '\n';
-       s << "\tdelta_chroma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_weight_l0), DE_ARRAY_END(value.delta_chroma_weight_l0)) << '\n';
-       s << "\tdelta_chroma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_offset_l0), DE_ARRAY_END(value.delta_chroma_offset_l0)) << '\n';
-       s << "\tdelta_luma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_luma_weight_l1), DE_ARRAY_END(value.delta_luma_weight_l1)) << '\n';
-       s << "\tluma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l1), DE_ARRAY_END(value.luma_offset_l1)) << '\n';
-       s << "\tdelta_chroma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_weight_l1), DE_ARRAY_END(value.delta_chroma_weight_l1)) << '\n';
-       s << "\tdelta_chroma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_offset_l1), DE_ARRAY_END(value.delta_chroma_offset_l1)) << '\n';
+       s << "VkMultiviewPerViewAttributesInfoNVX = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tperViewAttributes = " << value.perViewAttributes << '\n';
+       s << "\tperViewAttributesPositionXOnly = " << value.perViewAttributesPositionXOnly << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageViewMinLodFeaturesEXT& value)
+{
+       s << "VkPhysicalDeviceImageViewMinLodFeaturesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tminLod = " << value.minLod << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265SliceSegmentHeaderFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkImageViewMinLodCreateInfoEXT& value)
 {
-       s << "StdVideoEncodeH265SliceSegmentHeaderFlags = {\n";
-       s << "\tfirst_slice_segment_in_pic_flag = " << value.first_slice_segment_in_pic_flag << '\n';
-       s << "\tno_output_of_prior_pics_flag = " << value.no_output_of_prior_pics_flag << '\n';
-       s << "\tdependent_slice_segment_flag = " << value.dependent_slice_segment_flag << '\n';
-       s << "\tpic_output_flag = " << value.pic_output_flag << '\n';
-       s << "\tshort_term_ref_pic_set_sps_flag = " << value.short_term_ref_pic_set_sps_flag << '\n';
-       s << "\tslice_temporal_mvp_enable_flag = " << value.slice_temporal_mvp_enable_flag << '\n';
-       s << "\tslice_sao_luma_flag = " << value.slice_sao_luma_flag << '\n';
-       s << "\tslice_sao_chroma_flag = " << value.slice_sao_chroma_flag << '\n';
-       s << "\tnum_ref_idx_active_override_flag = " << value.num_ref_idx_active_override_flag << '\n';
-       s << "\tmvd_l1_zero_flag = " << value.mvd_l1_zero_flag << '\n';
-       s << "\tcabac_init_flag = " << value.cabac_init_flag << '\n';
-       s << "\tslice_deblocking_filter_disable_flag = " << value.slice_deblocking_filter_disable_flag << '\n';
-       s << "\tcollocated_from_l0_flag = " << value.collocated_from_l0_flag << '\n';
-       s << "\tslice_loop_filter_across_slices_enabled_flag = " << value.slice_loop_filter_across_slices_enabled_flag << '\n';
+       s << "VkImageViewMinLodCreateInfoEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tminLod = " << value.minLod << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265SliceSegmentHeader& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM& value)
 {
-       s << "StdVideoEncodeH265SliceSegmentHeader = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\tslice_type = " << value.slice_type << '\n';
-       s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
-       s << "\tslice_segment_address = " << value.slice_segment_address << '\n';
-       s << "\tshort_term_ref_pic_set_idx = " << value.short_term_ref_pic_set_idx << '\n';
-       s << "\tnum_long_term_sps = " << value.num_long_term_sps << '\n';
-       s << "\tnum_long_term_pics = " << value.num_long_term_pics << '\n';
-       s << "\tcollocated_ref_idx = " << value.collocated_ref_idx << '\n';
-       s << "\tnum_ref_idx_l0_active_minus1 = " << value.num_ref_idx_l0_active_minus1 << '\n';
-       s << "\tnum_ref_idx_l1_active_minus1 = " << value.num_ref_idx_l1_active_minus1 << '\n';
-       s << "\tMaxNumMergeCand = " << value.MaxNumMergeCand << '\n';
-       s << "\tslice_cb_qp_offset = " << value.slice_cb_qp_offset << '\n';
-       s << "\tslice_cr_qp_offset = " << value.slice_cr_qp_offset << '\n';
-       s << "\tslice_beta_offset_div2 = " << value.slice_beta_offset_div2 << '\n';
-       s << "\tslice_tc_offset_div2 = " << value.slice_tc_offset_div2 << '\n';
-       s << "\tslice_act_y_qp_offset = " << value.slice_act_y_qp_offset << '\n';
-       s << "\tslice_act_cb_qp_offset = " << value.slice_act_cb_qp_offset << '\n';
-       s << "\tslice_act_cr_qp_offset = " << value.slice_act_cr_qp_offset << '\n';
-       s << "\tpWeightTable = " << value.pWeightTable << '\n';
+       s << "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\trasterizationOrderColorAttachmentAccess = " << value.rasterizationOrderColorAttachmentAccess << '\n';
+       s << "\trasterizationOrderDepthAttachmentAccess = " << value.rasterizationOrderDepthAttachmentAccess << '\n';
+       s << "\trasterizationOrderStencilAttachmentAccess = " << value.rasterizationOrderStencilAttachmentAccess << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceModificationFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLinearColorAttachmentFeaturesNV& value)
 {
-       s << "StdVideoEncodeH265ReferenceModificationFlags = {\n";
-       s << "\tref_pic_list_modification_flag_l0 = " << value.ref_pic_list_modification_flag_l0 << '\n';
-       s << "\tref_pic_list_modification_flag_l1 = " << value.ref_pic_list_modification_flag_l1 << '\n';
+       s << "VkPhysicalDeviceLinearColorAttachmentFeaturesNV = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tlinearColorAttachment = " << value.linearColorAttachment << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceModifications& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT& value)
 {
-       s << "StdVideoEncodeH265ReferenceModifications = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\treferenceList0ModificationsCount = " << value.referenceList0ModificationsCount << '\n';
-       s << "\tpReferenceList0Modifications = " << value.pReferenceList0Modifications << '\n';
-       s << "\treferenceList1ModificationsCount = " << value.referenceList1ModificationsCount << '\n';
-       s << "\tpReferenceList1Modifications = " << value.pReferenceList1Modifications << '\n';
+       s << "VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tgraphicsPipelineLibrary = " << value.graphicsPipelineLibrary << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265PictureInfoFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT& value)
 {
-       s << "StdVideoEncodeH265PictureInfoFlags = {\n";
-       s << "\tis_reference_flag = " << value.is_reference_flag << '\n';
-       s << "\tIrapPicFlag = " << value.IrapPicFlag << '\n';
-       s << "\tlong_term_flag = " << value.long_term_flag << '\n';
-       s << "\tdiscardable_flag = " << value.discardable_flag << '\n';
-       s << "\tcross_layer_bla_flag = " << value.cross_layer_bla_flag << '\n';
+       s << "VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tgraphicsPipelineLibraryFastLinking = " << value.graphicsPipelineLibraryFastLinking << '\n';
+       s << "\tgraphicsPipelineLibraryIndependentInterpolationDecoration = " << value.graphicsPipelineLibraryIndependentInterpolationDecoration << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265PictureInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineLibraryCreateInfoEXT& value)
 {
-       s << "StdVideoEncodeH265PictureInfo = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\tPictureType = " << value.PictureType << '\n';
-       s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
-       s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
-       s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
-       s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
-       s << "\tTemporalId = " << value.TemporalId << '\n';
+       s << "VkGraphicsPipelineLibraryCreateInfoEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tflags = " << getGraphicsPipelineLibraryFlagsEXTStr(value.flags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceInfoFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE& value)
 {
-       s << "StdVideoEncodeH265ReferenceInfoFlags = {\n";
-       s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
-       s << "\tunused_for_reference = " << value.unused_for_reference << '\n';
+       s << "VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tdescriptorSetHostMapping = " << value.descriptorSetHostMapping << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDescriptorSetBindingReferenceVALVE& value)
 {
-       s << "StdVideoEncodeH265ReferenceInfo = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
-       s << "\tTemporalId = " << value.TemporalId << '\n';
+       s << "VkDescriptorSetBindingReferenceVALVE = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tdescriptorSetLayout = " << value.descriptorSetLayout << '\n';
+       s << "\tbinding = " << value.binding << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265CapabilitiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutHostMappingInfoVALVE& value)
 {
-       s << "VkVideoEncodeH265CapabilitiesEXT = {\n";
+       s << "VkDescriptorSetLayoutHostMappingInfoVALVE = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getVideoEncodeH265CapabilityFlagsEXTStr(value.flags) << '\n';
-       s << "\tinputModeFlags = " << getVideoEncodeH265InputModeFlagsEXTStr(value.inputModeFlags) << '\n';
-       s << "\toutputModeFlags = " << getVideoEncodeH265OutputModeFlagsEXTStr(value.outputModeFlags) << '\n';
-       s << "\tctbSizes = " << getVideoEncodeH265CtbSizeFlagsEXTStr(value.ctbSizes) << '\n';
-       s << "\ttransformBlockSizes = " << getVideoEncodeH265TransformBlockSizeFlagsEXTStr(value.transformBlockSizes) << '\n';
-       s << "\tmaxPPictureL0ReferenceCount = " << value.maxPPictureL0ReferenceCount << '\n';
-       s << "\tmaxBPictureL0ReferenceCount = " << value.maxBPictureL0ReferenceCount << '\n';
-       s << "\tmaxL1ReferenceCount = " << value.maxL1ReferenceCount << '\n';
-       s << "\tmaxSubLayersCount = " << value.maxSubLayersCount << '\n';
-       s << "\tminLog2MinLumaCodingBlockSizeMinus3 = " << value.minLog2MinLumaCodingBlockSizeMinus3 << '\n';
-       s << "\tmaxLog2MinLumaCodingBlockSizeMinus3 = " << value.maxLog2MinLumaCodingBlockSizeMinus3 << '\n';
-       s << "\tminLog2MinLumaTransformBlockSizeMinus2 = " << value.minLog2MinLumaTransformBlockSizeMinus2 << '\n';
-       s << "\tmaxLog2MinLumaTransformBlockSizeMinus2 = " << value.maxLog2MinLumaTransformBlockSizeMinus2 << '\n';
-       s << "\tminMaxTransformHierarchyDepthInter = " << value.minMaxTransformHierarchyDepthInter << '\n';
-       s << "\tmaxMaxTransformHierarchyDepthInter = " << value.maxMaxTransformHierarchyDepthInter << '\n';
-       s << "\tminMaxTransformHierarchyDepthIntra = " << value.minMaxTransformHierarchyDepthIntra << '\n';
-       s << "\tmaxMaxTransformHierarchyDepthIntra = " << value.maxMaxTransformHierarchyDepthIntra << '\n';
-       s << "\tmaxDiffCuQpDeltaDepth = " << value.maxDiffCuQpDeltaDepth << '\n';
-       s << "\tminMaxNumMergeCand = " << value.minMaxNumMergeCand << '\n';
-       s << "\tmaxMaxNumMergeCand = " << value.maxMaxNumMergeCand << '\n';
+       s << "\tdescriptorOffset = " << value.descriptorOffset << '\n';
+       s << "\tdescriptorSize = " << value.descriptorSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersAddInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT& value)
 {
-       s << "VkVideoEncodeH265SessionParametersAddInfoEXT = {\n";
+       s << "VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tvpsStdCount = " << value.vpsStdCount << '\n';
-       s << "\tpVpsStd = " << value.pVpsStd << '\n';
-       s << "\tspsStdCount = " << value.spsStdCount << '\n';
-       s << "\tpSpsStd = " << value.pSpsStd << '\n';
-       s << "\tppsStdCount = " << value.ppsStdCount << '\n';
-       s << "\tpPpsStd = " << value.pPpsStd << '\n';
+       s << "\tshaderModuleIdentifier = " << value.shaderModuleIdentifier << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265SessionParametersCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT& value)
 {
-       s << "VkVideoEncodeH265SessionParametersCreateInfoEXT = {\n";
+       s << "VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxVpsStdCount = " << value.maxVpsStdCount << '\n';
-       s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
-       s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
-       s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
+       s << "\tshaderModuleIdentifierAlgorithmUUID = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.shaderModuleIdentifierAlgorithmUUID)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.shaderModuleIdentifierAlgorithmUUID))) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265DpbSlotInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineShaderStageModuleIdentifierCreateInfoEXT& value)
 {
-       s << "VkVideoEncodeH265DpbSlotInfoEXT = {\n";
+       s << "VkPipelineShaderStageModuleIdentifierCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tslotIndex = " << value.slotIndex << '\n';
-       s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
+       s << "\tidentifierSize = " << value.identifierSize << '\n';
+       s << "\tpIdentifier = " << value.pIdentifier << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265ReferenceListsEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkShaderModuleIdentifierEXT& value)
 {
-       s << "VkVideoEncodeH265ReferenceListsEXT = {\n";
+       s << "VkShaderModuleIdentifierEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\treferenceList0EntryCount = " << value.referenceList0EntryCount << '\n';
-       s << "\tpReferenceList0Entries = " << value.pReferenceList0Entries << '\n';
-       s << "\treferenceList1EntryCount = " << value.referenceList1EntryCount << '\n';
-       s << "\tpReferenceList1Entries = " << value.pReferenceList1Entries << '\n';
-       s << "\tpReferenceModifications = " << value.pReferenceModifications << '\n';
+       s << "\tidentifierSize = " << value.identifierSize << '\n';
+       s << "\tidentifier = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.identifier)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.identifier))) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265NaluSliceSegmentEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkImageCompressionControlEXT& value)
 {
-       s << "VkVideoEncodeH265NaluSliceSegmentEXT = {\n";
+       s << "VkImageCompressionControlEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tctbCount = " << value.ctbCount << '\n';
-       s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
-       s << "\tpSliceSegmentHeaderStd = " << value.pSliceSegmentHeaderStd << '\n';
+       s << "\tflags = " << getImageCompressionFlagsEXTStr(value.flags) << '\n';
+       s << "\tcompressionControlPlaneCount = " << value.compressionControlPlaneCount << '\n';
+       s << "\tpFixedRateFlags = " << getImageCompressionFixedRateFlagsEXTStr(*value.pFixedRateFlags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265VclFrameInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageCompressionControlFeaturesEXT& value)
 {
-       s << "VkVideoEncodeH265VclFrameInfoEXT = {\n";
+       s << "VkPhysicalDeviceImageCompressionControlFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpReferenceFinalLists = " << value.pReferenceFinalLists << '\n';
-       s << "\tnaluSliceSegmentEntryCount = " << value.naluSliceSegmentEntryCount << '\n';
-       s << "\tpNaluSliceSegmentEntries = " << value.pNaluSliceSegmentEntries << '\n';
-       s << "\tpCurrentPictureInfo = " << value.pCurrentPictureInfo << '\n';
+       s << "\timageCompressionControl = " << value.imageCompressionControl << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265EmitPictureParametersEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkImageCompressionPropertiesEXT& value)
 {
-       s << "VkVideoEncodeH265EmitPictureParametersEXT = {\n";
+       s << "VkImageCompressionPropertiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tvpsId = " << value.vpsId << '\n';
-       s << "\tspsId = " << value.spsId << '\n';
-       s << "\temitVpsEnable = " << value.emitVpsEnable << '\n';
-       s << "\temitSpsEnable = " << value.emitSpsEnable << '\n';
-       s << "\tppsIdEntryCount = " << value.ppsIdEntryCount << '\n';
-       s << "\tppsIdEntries = " << value.ppsIdEntries << '\n';
+       s << "\timageCompressionFlags = " << getImageCompressionFlagsEXTStr(value.imageCompressionFlags) << '\n';
+       s << "\timageCompressionFixedRateFlags = " << getImageCompressionFixedRateFlagsEXTStr(value.imageCompressionFixedRateFlags) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265ProfileEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT& value)
 {
-       s << "VkVideoEncodeH265ProfileEXT = {\n";
+       s << "VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
+       s << "\timageCompressionControlSwapchain = " << value.imageCompressionControlSwapchain << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265RateControlInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkImageSubresource2EXT& value)
 {
-       s << "VkVideoEncodeH265RateControlInfoEXT = {\n";
+       s << "VkImageSubresource2EXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tgopFrameCount = " << value.gopFrameCount << '\n';
-       s << "\tidrPeriod = " << value.idrPeriod << '\n';
-       s << "\tconsecutiveBFrameCount = " << value.consecutiveBFrameCount << '\n';
-       s << "\trateControlStructure = " << value.rateControlStructure << '\n';
-       s << "\tsubLayerCount = " << value.subLayerCount << '\n';
+       s << "\timageSubresource = " << value.imageSubresource << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265QpEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkSubresourceLayout2EXT& value)
 {
-       s << "VkVideoEncodeH265QpEXT = {\n";
-       s << "\tqpI = " << value.qpI << '\n';
-       s << "\tqpP = " << value.qpP << '\n';
-       s << "\tqpB = " << value.qpB << '\n';
+       s << "VkSubresourceLayout2EXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tsubresourceLayout = " << value.subresourceLayout << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265FrameSizeEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationControlEXT& value)
 {
-       s << "VkVideoEncodeH265FrameSizeEXT = {\n";
-       s << "\tframeISize = " << value.frameISize << '\n';
-       s << "\tframePSize = " << value.framePSize << '\n';
-       s << "\tframeBSize = " << value.frameBSize << '\n';
+       s << "VkRenderPassCreationControlEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tdisallowMerging = " << value.disallowMerging << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationFeedbackInfoEXT& value)
+{
+       s << "VkRenderPassCreationFeedbackInfoEXT = {\n";
+       s << "\tpostMergeSubpassCount = " << value.postMergeSubpassCount << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoEncodeH265RateControlLayerInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkRenderPassCreationFeedbackCreateInfoEXT& value)
 {
-       s << "VkVideoEncodeH265RateControlLayerInfoEXT = {\n";
+       s << "VkRenderPassCreationFeedbackCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\ttemporalId = " << value.temporalId << '\n';
-       s << "\tuseInitialRcQp = " << value.useInitialRcQp << '\n';
-       s << "\tinitialRcQp = " << value.initialRcQp << '\n';
-       s << "\tuseMinQp = " << value.useMinQp << '\n';
-       s << "\tminQp = " << value.minQp << '\n';
-       s << "\tuseMaxQp = " << value.useMaxQp << '\n';
-       s << "\tmaxQp = " << value.maxQp << '\n';
-       s << "\tuseMaxFrameSize = " << value.useMaxFrameSize << '\n';
-       s << "\tmaxFrameSize = " << value.maxFrameSize << '\n';
+       s << "\tpRenderPassFeedback = " << value.pRenderPassFeedback << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfoFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkRenderPassSubpassFeedbackInfoEXT& value)
 {
-       s << "StdVideoDecodeH264PictureInfoFlags = {\n";
-       s << "\tfield_pic_flag = " << value.field_pic_flag << '\n';
-       s << "\tis_intra = " << value.is_intra << '\n';
-       s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
-       s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
-       s << "\tis_reference = " << value.is_reference << '\n';
-       s << "\tcomplementary_field_pair = " << value.complementary_field_pair << '\n';
+       s << "VkRenderPassSubpassFeedbackInfoEXT = {\n";
+       s << "\tsubpassMergeStatus = " << value.subpassMergeStatus << '\n';
+       s << "\tdescription = " << (const char*)value.description << '\n';
+       s << "\tpostMergeIndex = " << value.postMergeIndex << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkRenderPassSubpassFeedbackCreateInfoEXT& value)
 {
-       s << "StdVideoDecodeH264PictureInfo = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
-       s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
-       s << "\treserved = " << value.reserved << '\n';
-       s << "\tframe_num = " << value.frame_num << '\n';
-       s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
-       s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
+       s << "VkRenderPassSubpassFeedbackCreateInfoEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tpSubpassFeedback = " << value.pSubpassFeedback << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfoFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT& value)
 {
-       s << "StdVideoDecodeH264ReferenceInfoFlags = {\n";
-       s << "\ttop_field_flag = " << value.top_field_flag << '\n';
-       s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
-       s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
-       s << "\tis_non_existing = " << value.is_non_existing << '\n';
+       s << "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tsubpassMergeFeedback = " << value.subpassMergeFeedback << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelinePropertiesIdentifierEXT& value)
 {
-       s << "StdVideoDecodeH264ReferenceInfo = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\tFrameNum = " << value.FrameNum << '\n';
-       s << "\treserved = " << value.reserved << '\n';
-       s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
+       s << "VkPipelinePropertiesIdentifierEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tpipelineIdentifier = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.pipelineIdentifier)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.pipelineIdentifier))) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264MvcElementFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelinePropertiesFeaturesEXT& value)
 {
-       s << "StdVideoDecodeH264MvcElementFlags = {\n";
-       s << "\tnon_idr = " << value.non_idr << '\n';
-       s << "\tanchor_pic = " << value.anchor_pic << '\n';
-       s << "\tinter_view = " << value.inter_view << '\n';
+       s << "VkPhysicalDevicePipelinePropertiesFeaturesEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tpipelinePropertiesIdentifier = " << value.pipelinePropertiesIdentifier << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264MvcElement& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD& value)
 {
-       s << "StdVideoDecodeH264MvcElement = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\tviewOrderIndex = " << value.viewOrderIndex << '\n';
-       s << "\tviewId = " << value.viewId << '\n';
-       s << "\ttemporalId = " << value.temporalId << '\n';
-       s << "\tpriorityId = " << value.priorityId << '\n';
-       s << "\tnumOfAnchorRefsInL0 = " << value.numOfAnchorRefsInL0 << '\n';
-       s << "\tviewIdOfAnchorRefsInL0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfAnchorRefsInL0), DE_ARRAY_END(value.viewIdOfAnchorRefsInL0)) << '\n';
-       s << "\tnumOfAnchorRefsInL1 = " << value.numOfAnchorRefsInL1 << '\n';
-       s << "\tviewIdOfAnchorRefsInL1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfAnchorRefsInL1), DE_ARRAY_END(value.viewIdOfAnchorRefsInL1)) << '\n';
-       s << "\tnumOfNonAnchorRefsInL0 = " << value.numOfNonAnchorRefsInL0 << '\n';
-       s << "\tviewIdOfNonAnchorRefsInL0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfNonAnchorRefsInL0), DE_ARRAY_END(value.viewIdOfNonAnchorRefsInL0)) << '\n';
-       s << "\tnumOfNonAnchorRefsInL1 = " << value.numOfNonAnchorRefsInL1 << '\n';
-       s << "\tviewIdOfNonAnchorRefsInL1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfNonAnchorRefsInL1), DE_ARRAY_END(value.viewIdOfNonAnchorRefsInL1)) << '\n';
+       s << "VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tshaderEarlyAndLateFragmentTests = " << value.shaderEarlyAndLateFragmentTests << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264Mvc& value)
+std::ostream& operator<< (std::ostream& s, const VkExportMetalObjectCreateInfoEXT& value)
 {
-       s << "StdVideoDecodeH264Mvc = {\n";
-       s << "\tviewId0 = " << value.viewId0 << '\n';
-       s << "\tmvcElementCount = " << value.mvcElementCount << '\n';
-       s << "\tpMvcElements = " << value.pMvcElements << '\n';
+       s << "VkExportMetalObjectCreateInfoEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\texportObjectType = " << value.exportObjectType << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264ProfileEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkExportMetalObjectsInfoEXT& value)
 {
-       s << "VkVideoDecodeH264ProfileEXT = {\n";
+       s << "VkExportMetalObjectsInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
-       s << "\tpictureLayout = " << getVideoDecodeH264PictureLayoutFlagsEXTStr(value.pictureLayout) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264CapabilitiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkExportMetalDeviceInfoEXT& value)
 {
-       s << "VkVideoDecodeH264CapabilitiesEXT = {\n";
+       s << "VkExportMetalDeviceInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxLevel = " << value.maxLevel << '\n';
-       s << "\tfieldOffsetGranularity = " << value.fieldOffsetGranularity << '\n';
+       s << "\tmtlDevice = " << value.mtlDevice << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersAddInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkExportMetalCommandQueueInfoEXT& value)
 {
-       s << "VkVideoDecodeH264SessionParametersAddInfoEXT = {\n";
+       s << "VkExportMetalCommandQueueInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tspsStdCount = " << value.spsStdCount << '\n';
-       s << "\tpSpsStd = " << value.pSpsStd << '\n';
-       s << "\tppsStdCount = " << value.ppsStdCount << '\n';
-       s << "\tpPpsStd = " << value.pPpsStd << '\n';
+       s << "\tqueue = " << value.queue << '\n';
+       s << "\tmtlCommandQueue = " << value.mtlCommandQueue << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264SessionParametersCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkExportMetalBufferInfoEXT& value)
 {
-       s << "VkVideoDecodeH264SessionParametersCreateInfoEXT = {\n";
+       s << "VkExportMetalBufferInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
-       s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
-       s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
+       s << "\tmemory = " << value.memory << '\n';
+       s << "\tmtlBuffer = " << value.mtlBuffer << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264PictureInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkImportMetalBufferInfoEXT& value)
 {
-       s << "VkVideoDecodeH264PictureInfoEXT = {\n";
+       s << "VkImportMetalBufferInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
-       s << "\tslicesCount = " << value.slicesCount << '\n';
-       s << "\tpSlicesDataOffsets = " << value.pSlicesDataOffsets << '\n';
+       s << "\tmtlBuffer = " << value.mtlBuffer << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264MvcEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkExportMetalTextureInfoEXT& value)
 {
-       s << "VkVideoDecodeH264MvcEXT = {\n";
+       s << "VkExportMetalTextureInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpStdMvc = " << value.pStdMvc << '\n';
+       s << "\timage = " << value.image << '\n';
+       s << "\timageView = " << value.imageView << '\n';
+       s << "\tbufferView = " << value.bufferView << '\n';
+       s << "\tplane = " << value.plane << '\n';
+       s << "\tmtlTexture = " << value.mtlTexture << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH264DpbSlotInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkImportMetalTextureInfoEXT& value)
 {
-       s << "VkVideoDecodeH264DpbSlotInfoEXT = {\n";
+       s << "VkImportMetalTextureInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
+       s << "\tplane = " << value.plane << '\n';
+       s << "\tmtlTexture = " << value.mtlTexture << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfoFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkExportMetalIOSurfaceInfoEXT& value)
 {
-       s << "StdVideoDecodeH265PictureInfoFlags = {\n";
-       s << "\tIrapPicFlag = " << value.IrapPicFlag << '\n';
-       s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
-       s << "\tIsReference = " << value.IsReference << '\n';
-       s << "\tshort_term_ref_pic_set_sps_flag = " << value.short_term_ref_pic_set_sps_flag << '\n';
+       s << "VkExportMetalIOSurfaceInfoEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\timage = " << value.image << '\n';
+       s << "\tioSurface = " << value.ioSurface << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkImportMetalIOSurfaceInfoEXT& value)
 {
-       s << "StdVideoDecodeH265PictureInfo = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
-       s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
-       s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
-       s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
-       s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
-       s << "\tNumBitsForSTRefPicSetInSlice = " << value.NumBitsForSTRefPicSetInSlice << '\n';
-       s << "\tNumDeltaPocsOfRefRpsIdx = " << value.NumDeltaPocsOfRefRpsIdx << '\n';
-       s << "\tRefPicSetStCurrBefore = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.RefPicSetStCurrBefore)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.RefPicSetStCurrBefore))) << '\n';
-       s << "\tRefPicSetStCurrAfter = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.RefPicSetStCurrAfter)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.RefPicSetStCurrAfter))) << '\n';
-       s << "\tRefPicSetLtCurr = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.RefPicSetLtCurr)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.RefPicSetLtCurr))) << '\n';
+       s << "VkImportMetalIOSurfaceInfoEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tioSurface = " << value.ioSurface << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfoFlags& value)
+std::ostream& operator<< (std::ostream& s, const VkExportMetalSharedEventInfoEXT& value)
 {
-       s << "StdVideoDecodeH265ReferenceInfoFlags = {\n";
-       s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
-       s << "\tunused_for_reference = " << value.unused_for_reference << '\n';
-       s << "\tis_non_existing = " << value.is_non_existing << '\n';
+       s << "VkExportMetalSharedEventInfoEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tsemaphore = " << value.semaphore << '\n';
+       s << "\tevent = " << value.event << '\n';
+       s << "\tmtlSharedEvent = " << value.mtlSharedEvent << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkImportMetalSharedEventInfoEXT& value)
 {
-       s << "StdVideoDecodeH265ReferenceInfo = {\n";
-       s << "\tflags = " << value.flags << '\n';
-       s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
+       s << "VkImportMetalSharedEventInfoEXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tmtlSharedEvent = " << value.mtlSharedEvent << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265ProfileEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT& value)
 {
-       s << "VkVideoDecodeH265ProfileEXT = {\n";
+       s << "VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tstdProfileIdc = " << value.stdProfileIdc << '\n';
+       s << "\tnonSeamlessCubeMap = " << value.nonSeamlessCubeMap << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265CapabilitiesEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineRobustnessFeaturesEXT& value)
 {
-       s << "VkVideoDecodeH265CapabilitiesEXT = {\n";
+       s << "VkPhysicalDevicePipelineRobustnessFeaturesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxLevel = " << value.maxLevel << '\n';
+       s << "\tpipelineRobustness = " << value.pipelineRobustness << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersAddInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPipelineRobustnessCreateInfoEXT& value)
 {
-       s << "VkVideoDecodeH265SessionParametersAddInfoEXT = {\n";
+       s << "VkPipelineRobustnessCreateInfoEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tvpsStdCount = " << value.vpsStdCount << '\n';
-       s << "\tpVpsStd = " << value.pVpsStd << '\n';
-       s << "\tspsStdCount = " << value.spsStdCount << '\n';
-       s << "\tpSpsStd = " << value.pSpsStd << '\n';
-       s << "\tppsStdCount = " << value.ppsStdCount << '\n';
-       s << "\tpPpsStd = " << value.pPpsStd << '\n';
+       s << "\tstorageBuffers = " << value.storageBuffers << '\n';
+       s << "\tuniformBuffers = " << value.uniformBuffers << '\n';
+       s << "\tvertexInputs = " << value.vertexInputs << '\n';
+       s << "\timages = " << value.images << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265SessionParametersCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineRobustnessPropertiesEXT& value)
 {
-       s << "VkVideoDecodeH265SessionParametersCreateInfoEXT = {\n";
+       s << "VkPhysicalDevicePipelineRobustnessPropertiesEXT = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmaxVpsStdCount = " << value.maxVpsStdCount << '\n';
-       s << "\tmaxSpsStdCount = " << value.maxSpsStdCount << '\n';
-       s << "\tmaxPpsStdCount = " << value.maxPpsStdCount << '\n';
-       s << "\tpParametersAddInfo = " << value.pParametersAddInfo << '\n';
+       s << "\tdefaultRobustnessStorageBuffers = " << value.defaultRobustnessStorageBuffers << '\n';
+       s << "\tdefaultRobustnessUniformBuffers = " << value.defaultRobustnessUniformBuffers << '\n';
+       s << "\tdefaultRobustnessVertexInputs = " << value.defaultRobustnessVertexInputs << '\n';
+       s << "\tdefaultRobustnessImages = " << value.defaultRobustnessImages << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265PictureInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkImageViewSampleWeightCreateInfoQCOM& value)
 {
-       s << "VkVideoDecodeH265PictureInfoEXT = {\n";
+       s << "VkImageViewSampleWeightCreateInfoQCOM = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpStdPictureInfo = " << value.pStdPictureInfo << '\n';
-       s << "\tslicesCount = " << value.slicesCount << '\n';
-       s << "\tpSlicesDataOffsets = " << value.pSlicesDataOffsets << '\n';
+       s << "\tfilterCenter = " << value.filterCenter << '\n';
+       s << "\tfilterSize = " << value.filterSize << '\n';
+       s << "\tnumPhases = " << value.numPhases << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkVideoDecodeH265DpbSlotInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageProcessingFeaturesQCOM& value)
 {
-       s << "VkVideoDecodeH265DpbSlotInfoEXT = {\n";
+       s << "VkPhysicalDeviceImageProcessingFeaturesQCOM = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpStdReferenceInfo = " << value.pStdReferenceInfo << '\n';
+       s << "\ttextureSampleWeighted = " << value.textureSampleWeighted << '\n';
+       s << "\ttextureBoxFilter = " << value.textureBoxFilter << '\n';
+       s << "\ttextureBlockMatch = " << value.textureBlockMatch << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImagePipeSurfaceCreateInfoFUCHSIA& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceImageProcessingPropertiesQCOM& value)
 {
-       s << "VkImagePipeSurfaceCreateInfoFUCHSIA = {\n";
+       s << "VkPhysicalDeviceImageProcessingPropertiesQCOM = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getImagePipeSurfaceCreateFlagsFUCHSIAStr(value.flags) << '\n';
-       s << "\timagePipeHandle = " << value.imagePipeHandle << '\n';
+       s << "\tmaxWeightFilterPhases = " << value.maxWeightFilterPhases << '\n';
+       s << "\tmaxWeightFilterDimension = " << value.maxWeightFilterDimension << '\n';
+       s << "\tmaxBlockMatchRegion = " << value.maxBlockMatchRegion << '\n';
+       s << "\tmaxBoxFilterBlockSize = " << value.maxBoxFilterBlockSize << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportMemoryZirconHandleInfoFUCHSIA& value)
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTilePropertiesFeaturesQCOM& value)
 {
-       s << "VkImportMemoryZirconHandleInfoFUCHSIA = {\n";
+       s << "VkPhysicalDeviceTilePropertiesFeaturesQCOM = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
-       s << "\thandle = " << value.handle << '\n';
+       s << "\ttileProperties = " << value.tileProperties << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryZirconHandlePropertiesFUCHSIA& value)
+std::ostream& operator<< (std::ostream& s, const VkTilePropertiesQCOM& value)
 {
-       s << "VkMemoryZirconHandlePropertiesFUCHSIA = {\n";
+       s << "VkTilePropertiesQCOM = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
+       s << "\ttileSize = " << value.tileSize << '\n';
+       s << "\tapronSize = " << value.apronSize << '\n';
+       s << "\torigin = " << value.origin << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryGetZirconHandleInfoFUCHSIA& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsVuiFlags& value)
 {
-       s << "VkMemoryGetZirconHandleInfoFUCHSIA = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemory = " << value.memory << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
+       s << "StdVideoH264SpsVuiFlags = {\n";
+       s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
+       s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
+       s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
+       s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
+       s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
+       s << "\tcolor_description_present_flag = " << value.color_description_present_flag << '\n';
+       s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
+       s << "\ttiming_info_present_flag = " << value.timing_info_present_flag << '\n';
+       s << "\tfixed_frame_rate_flag = " << value.fixed_frame_rate_flag << '\n';
+       s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
+       s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
+       s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreZirconHandleInfoFUCHSIA& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoH264HrdParameters& value)
 {
-       s << "VkImportSemaphoreZirconHandleInfoFUCHSIA = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsemaphore = " << value.semaphore << '\n';
-       s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
-       s << "\tzirconHandle = " << value.zirconHandle << '\n';
+       s << "StdVideoH264HrdParameters = {\n";
+       s << "\tcpb_cnt_minus1 = " << value.cpb_cnt_minus1 << '\n';
+       s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
+       s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
+       s << "\tbit_rate_value_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.bit_rate_value_minus1), DE_ARRAY_END(value.bit_rate_value_minus1)) << '\n';
+       s << "\tcpb_size_value_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.cpb_size_value_minus1), DE_ARRAY_END(value.cpb_size_value_minus1)) << '\n';
+       s << "\tcbr_flag = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.cbr_flag)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.cbr_flag))) << '\n';
+       s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
+       s << "\tcpb_removal_delay_length_minus1 = " << value.cpb_removal_delay_length_minus1 << '\n';
+       s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
+       s << "\ttime_offset_length = " << value.time_offset_length << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetZirconHandleInfoFUCHSIA& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSetVui& value)
 {
-       s << "VkSemaphoreGetZirconHandleInfoFUCHSIA = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsemaphore = " << value.semaphore << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
+       s << "StdVideoH264SequenceParameterSetVui = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
+       s << "\tsar_width = " << value.sar_width << '\n';
+       s << "\tsar_height = " << value.sar_height << '\n';
+       s << "\tvideo_format = " << value.video_format << '\n';
+       s << "\tcolor_primaries = " << value.color_primaries << '\n';
+       s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
+       s << "\tmatrix_coefficients = " << value.matrix_coefficients << '\n';
+       s << "\tnum_units_in_tick = " << value.num_units_in_tick << '\n';
+       s << "\ttime_scale = " << value.time_scale << '\n';
+       s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
+       s << "\tmax_num_reorder_frames = " << value.max_num_reorder_frames << '\n';
+       s << "\tmax_dec_frame_buffering = " << value.max_dec_frame_buffering << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBufferCollectionCreateInfoFUCHSIA& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoH264SpsFlags& value)
 {
-       s << "VkBufferCollectionCreateInfoFUCHSIA = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcollectionToken = " << value.collectionToken << '\n';
+       s << "StdVideoH264SpsFlags = {\n";
+       s << "\tconstraint_set0_flag = " << value.constraint_set0_flag << '\n';
+       s << "\tconstraint_set1_flag = " << value.constraint_set1_flag << '\n';
+       s << "\tconstraint_set2_flag = " << value.constraint_set2_flag << '\n';
+       s << "\tconstraint_set3_flag = " << value.constraint_set3_flag << '\n';
+       s << "\tconstraint_set4_flag = " << value.constraint_set4_flag << '\n';
+       s << "\tconstraint_set5_flag = " << value.constraint_set5_flag << '\n';
+       s << "\tdirect_8x8_inference_flag = " << value.direct_8x8_inference_flag << '\n';
+       s << "\tmb_adaptive_frame_field_flag = " << value.mb_adaptive_frame_field_flag << '\n';
+       s << "\tframe_mbs_only_flag = " << value.frame_mbs_only_flag << '\n';
+       s << "\tdelta_pic_order_always_zero_flag = " << value.delta_pic_order_always_zero_flag << '\n';
+       s << "\tseparate_colour_plane_flag = " << value.separate_colour_plane_flag << '\n';
+       s << "\tgaps_in_frame_num_value_allowed_flag = " << value.gaps_in_frame_num_value_allowed_flag << '\n';
+       s << "\tqpprime_y_zero_transform_bypass_flag = " << value.qpprime_y_zero_transform_bypass_flag << '\n';
+       s << "\tframe_cropping_flag = " << value.frame_cropping_flag << '\n';
+       s << "\tseq_scaling_matrix_present_flag = " << value.seq_scaling_matrix_present_flag << '\n';
+       s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportMemoryBufferCollectionFUCHSIA& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoH264ScalingLists& value)
 {
-       s << "VkImportMemoryBufferCollectionFUCHSIA = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcollection = " << value.collection << '\n';
-       s << "\tindex = " << value.index << '\n';
+       s << "StdVideoH264ScalingLists = {\n";
+       s << "\tscaling_list_present_mask = " << value.scaling_list_present_mask << '\n';
+       s << "\tuse_default_scaling_matrix_mask = " << value.use_default_scaling_matrix_mask << '\n';
+       s << "\tScalingList4x4 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4), DE_ARRAY_END(value.ScalingList4x4)) << '\n';
+       s << "\tScalingList8x8 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8), DE_ARRAY_END(value.ScalingList8x8)) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBufferCollectionImageCreateInfoFUCHSIA& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoH264SequenceParameterSet& value)
 {
-       s << "VkBufferCollectionImageCreateInfoFUCHSIA = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcollection = " << value.collection << '\n';
-       s << "\tindex = " << value.index << '\n';
+       s << "StdVideoH264SequenceParameterSet = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\tprofile_idc = " << value.profile_idc << '\n';
+       s << "\tlevel_idc = " << value.level_idc << '\n';
+       s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
+       s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
+       s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
+       s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
+       s << "\tlog2_max_frame_num_minus4 = " << value.log2_max_frame_num_minus4 << '\n';
+       s << "\tpic_order_cnt_type = " << value.pic_order_cnt_type << '\n';
+       s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
+       s << "\toffset_for_non_ref_pic = " << value.offset_for_non_ref_pic << '\n';
+       s << "\toffset_for_top_to_bottom_field = " << value.offset_for_top_to_bottom_field << '\n';
+       s << "\tnum_ref_frames_in_pic_order_cnt_cycle = " << value.num_ref_frames_in_pic_order_cnt_cycle << '\n';
+       s << "\tmax_num_ref_frames = " << value.max_num_ref_frames << '\n';
+       s << "\tpic_width_in_mbs_minus1 = " << value.pic_width_in_mbs_minus1 << '\n';
+       s << "\tpic_height_in_map_units_minus1 = " << value.pic_height_in_map_units_minus1 << '\n';
+       s << "\tframe_crop_left_offset = " << value.frame_crop_left_offset << '\n';
+       s << "\tframe_crop_right_offset = " << value.frame_crop_right_offset << '\n';
+       s << "\tframe_crop_top_offset = " << value.frame_crop_top_offset << '\n';
+       s << "\tframe_crop_bottom_offset = " << value.frame_crop_bottom_offset << '\n';
+       s << "\tpOffsetForRefFrame = " << value.pOffsetForRefFrame << '\n';
+       s << "\tpScalingLists = " << value.pScalingLists << '\n';
+       s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBufferCollectionConstraintsInfoFUCHSIA& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoH264PpsFlags& value)
 {
-       s << "VkBufferCollectionConstraintsInfoFUCHSIA = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tminBufferCount = " << value.minBufferCount << '\n';
-       s << "\tmaxBufferCount = " << value.maxBufferCount << '\n';
-       s << "\tminBufferCountForCamping = " << value.minBufferCountForCamping << '\n';
-       s << "\tminBufferCountForDedicatedSlack = " << value.minBufferCountForDedicatedSlack << '\n';
-       s << "\tminBufferCountForSharedSlack = " << value.minBufferCountForSharedSlack << '\n';
+       s << "StdVideoH264PpsFlags = {\n";
+       s << "\ttransform_8x8_mode_flag = " << value.transform_8x8_mode_flag << '\n';
+       s << "\tredundant_pic_cnt_present_flag = " << value.redundant_pic_cnt_present_flag << '\n';
+       s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
+       s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
+       s << "\tweighted_bipred_idc_flag = " << value.weighted_bipred_idc_flag << '\n';
+       s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
+       s << "\tpic_order_present_flag = " << value.pic_order_present_flag << '\n';
+       s << "\tentropy_coding_mode_flag = " << value.entropy_coding_mode_flag << '\n';
+       s << "\tpic_scaling_matrix_present_flag = " << value.pic_scaling_matrix_present_flag << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBufferConstraintsInfoFUCHSIA& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoH264PictureParameterSet& value)
 {
-       s << "VkBufferConstraintsInfoFUCHSIA = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcreateInfo = " << value.createInfo << '\n';
-       s << "\trequiredFormatFeatures = " << getFormatFeatureFlagsStr(value.requiredFormatFeatures) << '\n';
-       s << "\tbufferCollectionConstraints = " << value.bufferCollectionConstraints << '\n';
+       s << "StdVideoH264PictureParameterSet = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
+       s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
+       s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
+       s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
+       s << "\tweighted_bipred_idc = " << value.weighted_bipred_idc << '\n';
+       s << "\tpic_init_qp_minus26 = " << value.pic_init_qp_minus26 << '\n';
+       s << "\tpic_init_qs_minus26 = " << value.pic_init_qs_minus26 << '\n';
+       s << "\tchroma_qp_index_offset = " << value.chroma_qp_index_offset << '\n';
+       s << "\tsecond_chroma_qp_index_offset = " << value.second_chroma_qp_index_offset << '\n';
+       s << "\tpScalingLists = " << value.pScalingLists << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBufferCollectionBufferCreateInfoFUCHSIA& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfoFlags& value)
 {
-       s << "VkBufferCollectionBufferCreateInfoFUCHSIA = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcollection = " << value.collection << '\n';
-       s << "\tindex = " << value.index << '\n';
+       s << "StdVideoDecodeH264PictureInfoFlags = {\n";
+       s << "\tfield_pic_flag = " << value.field_pic_flag << '\n';
+       s << "\tis_intra = " << value.is_intra << '\n';
+       s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
+       s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
+       s << "\tis_reference = " << value.is_reference << '\n';
+       s << "\tcomplementary_field_pair = " << value.complementary_field_pair << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSysmemColorSpaceFUCHSIA& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264PictureInfo& value)
 {
-       s << "VkSysmemColorSpaceFUCHSIA = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tcolorSpace = " << value.colorSpace << '\n';
+       s << "StdVideoDecodeH264PictureInfo = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
+       s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
+       s << "\treserved = " << value.reserved << '\n';
+       s << "\tframe_num = " << value.frame_num << '\n';
+       s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
+       s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBufferCollectionPropertiesFUCHSIA& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfoFlags& value)
 {
-       s << "VkBufferCollectionPropertiesFUCHSIA = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
-       s << "\tbufferCount = " << value.bufferCount << '\n';
-       s << "\tcreateInfoIndex = " << value.createInfoIndex << '\n';
-       s << "\tsysmemPixelFormat = " << value.sysmemPixelFormat << '\n';
-       s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
-       s << "\tsysmemColorSpaceIndex = " << value.sysmemColorSpaceIndex << '\n';
-       s << "\tsamplerYcbcrConversionComponents = " << value.samplerYcbcrConversionComponents << '\n';
-       s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
-       s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
-       s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
-       s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
+       s << "StdVideoDecodeH264ReferenceInfoFlags = {\n";
+       s << "\ttop_field_flag = " << value.top_field_flag << '\n';
+       s << "\tbottom_field_flag = " << value.bottom_field_flag << '\n';
+       s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
+       s << "\tis_non_existing = " << value.is_non_existing << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageFormatConstraintsInfoFUCHSIA& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264ReferenceInfo& value)
 {
-       s << "VkImageFormatConstraintsInfoFUCHSIA = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\timageCreateInfo = " << value.imageCreateInfo << '\n';
-       s << "\trequiredFormatFeatures = " << getFormatFeatureFlagsStr(value.requiredFormatFeatures) << '\n';
-       s << "\tflags = " << getImageFormatConstraintsFlagsFUCHSIAStr(value.flags) << '\n';
-       s << "\tsysmemPixelFormat = " << value.sysmemPixelFormat << '\n';
-       s << "\tcolorSpaceCount = " << value.colorSpaceCount << '\n';
-       s << "\tpColorSpaces = " << value.pColorSpaces << '\n';
+       s << "StdVideoDecodeH264ReferenceInfo = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\tFrameNum = " << value.FrameNum << '\n';
+       s << "\treserved = " << value.reserved << '\n';
+       s << "\tPicOrderCnt = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PicOrderCnt), DE_ARRAY_END(value.PicOrderCnt)) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageConstraintsInfoFUCHSIA& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264MvcElementFlags& value)
 {
-       s << "VkImageConstraintsInfoFUCHSIA = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tformatConstraintsCount = " << value.formatConstraintsCount << '\n';
-       s << "\tpFormatConstraints = " << value.pFormatConstraints << '\n';
-       s << "\tbufferCollectionConstraints = " << value.bufferCollectionConstraints << '\n';
-       s << "\tflags = " << getImageConstraintsInfoFlagsFUCHSIAStr(value.flags) << '\n';
+       s << "StdVideoDecodeH264MvcElementFlags = {\n";
+       s << "\tnon_idr = " << value.non_idr << '\n';
+       s << "\tanchor_pic = " << value.anchor_pic << '\n';
+       s << "\tinter_view = " << value.inter_view << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkStreamDescriptorSurfaceCreateInfoGGP& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264MvcElement& value)
 {
-       s << "VkStreamDescriptorSurfaceCreateInfoGGP = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getStreamDescriptorSurfaceCreateFlagsGGPStr(value.flags) << '\n';
-       s << "\tstreamDescriptor = " << value.streamDescriptor << '\n';
+       s << "StdVideoDecodeH264MvcElement = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\tviewOrderIndex = " << value.viewOrderIndex << '\n';
+       s << "\tviewId = " << value.viewId << '\n';
+       s << "\ttemporalId = " << value.temporalId << '\n';
+       s << "\tpriorityId = " << value.priorityId << '\n';
+       s << "\tnumOfAnchorRefsInL0 = " << value.numOfAnchorRefsInL0 << '\n';
+       s << "\tviewIdOfAnchorRefsInL0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfAnchorRefsInL0), DE_ARRAY_END(value.viewIdOfAnchorRefsInL0)) << '\n';
+       s << "\tnumOfAnchorRefsInL1 = " << value.numOfAnchorRefsInL1 << '\n';
+       s << "\tviewIdOfAnchorRefsInL1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfAnchorRefsInL1), DE_ARRAY_END(value.viewIdOfAnchorRefsInL1)) << '\n';
+       s << "\tnumOfNonAnchorRefsInL0 = " << value.numOfNonAnchorRefsInL0 << '\n';
+       s << "\tviewIdOfNonAnchorRefsInL0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfNonAnchorRefsInL0), DE_ARRAY_END(value.viewIdOfNonAnchorRefsInL0)) << '\n';
+       s << "\tnumOfNonAnchorRefsInL1 = " << value.numOfNonAnchorRefsInL1 << '\n';
+       s << "\tviewIdOfNonAnchorRefsInL1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.viewIdOfNonAnchorRefsInL1), DE_ARRAY_END(value.viewIdOfNonAnchorRefsInL1)) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPresentFrameTokenGGP& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH264Mvc& value)
 {
-       s << "VkPresentFrameTokenGGP = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tframeToken = " << value.frameToken << '\n';
+       s << "StdVideoDecodeH264Mvc = {\n";
+       s << "\tviewId0 = " << value.viewId0 << '\n';
+       s << "\tmvcElementCount = " << value.mvcElementCount << '\n';
+       s << "\tpMvcElements = " << value.pMvcElements << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkIOSSurfaceCreateInfoMVK& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264WeightTableFlags& value)
 {
-       s << "VkIOSSurfaceCreateInfoMVK = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getIOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
-       s << "\tpView = " << value.pView << '\n';
+       s << "StdVideoEncodeH264WeightTableFlags = {\n";
+       s << "\tluma_weight_l0_flag = " << value.luma_weight_l0_flag << '\n';
+       s << "\tchroma_weight_l0_flag = " << value.chroma_weight_l0_flag << '\n';
+       s << "\tluma_weight_l1_flag = " << value.luma_weight_l1_flag << '\n';
+       s << "\tchroma_weight_l1_flag = " << value.chroma_weight_l1_flag << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMacOSSurfaceCreateInfoMVK& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264WeightTable& value)
 {
-       s << "VkMacOSSurfaceCreateInfoMVK = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getMacOSSurfaceCreateFlagsMVKStr(value.flags) << '\n';
-       s << "\tpView = " << value.pView << '\n';
+       s << "StdVideoEncodeH264WeightTable = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\tluma_log2_weight_denom = " << value.luma_log2_weight_denom << '\n';
+       s << "\tchroma_log2_weight_denom = " << value.chroma_log2_weight_denom << '\n';
+       s << "\tluma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_weight_l0), DE_ARRAY_END(value.luma_weight_l0)) << '\n';
+       s << "\tluma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l0), DE_ARRAY_END(value.luma_offset_l0)) << '\n';
+       s << "\tchroma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_weight_l0), DE_ARRAY_END(value.chroma_weight_l0)) << '\n';
+       s << "\tchroma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_offset_l0), DE_ARRAY_END(value.chroma_offset_l0)) << '\n';
+       s << "\tluma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_weight_l1), DE_ARRAY_END(value.luma_weight_l1)) << '\n';
+       s << "\tluma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l1), DE_ARRAY_END(value.luma_offset_l1)) << '\n';
+       s << "\tchroma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_weight_l1), DE_ARRAY_END(value.chroma_weight_l1)) << '\n';
+       s << "\tchroma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.chroma_offset_l1), DE_ARRAY_END(value.chroma_offset_l1)) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMetalSurfaceCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeaderFlags& value)
 {
-       s << "VkMetalSurfaceCreateInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getMetalSurfaceCreateFlagsEXTStr(value.flags) << '\n';
-       s << "\tpLayer = " << value.pLayer << '\n';
+       s << "StdVideoEncodeH264SliceHeaderFlags = {\n";
+       s << "\tdirect_spatial_mv_pred_flag = " << value.direct_spatial_mv_pred_flag << '\n';
+       s << "\tnum_ref_idx_active_override_flag = " << value.num_ref_idx_active_override_flag << '\n';
+       s << "\tno_output_of_prior_pics_flag = " << value.no_output_of_prior_pics_flag << '\n';
+       s << "\tadaptive_ref_pic_marking_mode_flag = " << value.adaptive_ref_pic_marking_mode_flag << '\n';
+       s << "\tno_prior_references_available_flag = " << value.no_prior_references_available_flag << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExportMetalObjectCreateInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfoFlags& value)
 {
-       s << "VkExportMetalObjectCreateInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\texportObjectType = " << value.exportObjectType << '\n';
+       s << "StdVideoEncodeH264PictureInfoFlags = {\n";
+       s << "\tidr_flag = " << value.idr_flag << '\n';
+       s << "\tis_reference_flag = " << value.is_reference_flag << '\n';
+       s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExportMetalObjectsInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264ReferenceInfoFlags& value)
 {
-       s << "VkExportMetalObjectsInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
+       s << "StdVideoEncodeH264ReferenceInfoFlags = {\n";
+       s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExportMetalDeviceInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefMgmtFlags& value)
 {
-       s << "VkExportMetalDeviceInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmtlDevice = " << value.mtlDevice << '\n';
+       s << "StdVideoEncodeH264RefMgmtFlags = {\n";
+       s << "\tref_pic_list_modification_l0_flag = " << value.ref_pic_list_modification_l0_flag << '\n';
+       s << "\tref_pic_list_modification_l1_flag = " << value.ref_pic_list_modification_l1_flag << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExportMetalCommandQueueInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefListModEntry& value)
 {
-       s << "VkExportMetalCommandQueueInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tqueue = " << value.queue << '\n';
-       s << "\tmtlCommandQueue = " << value.mtlCommandQueue << '\n';
+       s << "StdVideoEncodeH264RefListModEntry = {\n";
+       s << "\tmodification_of_pic_nums_idc = " << value.modification_of_pic_nums_idc << '\n';
+       s << "\tabs_diff_pic_num_minus1 = " << value.abs_diff_pic_num_minus1 << '\n';
+       s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExportMetalBufferInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefPicMarkingEntry& value)
 {
-       s << "VkExportMetalBufferInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemory = " << value.memory << '\n';
-       s << "\tmtlBuffer = " << value.mtlBuffer << '\n';
+       s << "StdVideoEncodeH264RefPicMarkingEntry = {\n";
+       s << "\toperation = " << value.operation << '\n';
+       s << "\tdifference_of_pic_nums_minus1 = " << value.difference_of_pic_nums_minus1 << '\n';
+       s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
+       s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
+       s << "\tmax_long_term_frame_idx_plus1 = " << value.max_long_term_frame_idx_plus1 << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportMetalBufferInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264RefMemMgmtCtrlOperations& value)
 {
-       s << "VkImportMetalBufferInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmtlBuffer = " << value.mtlBuffer << '\n';
+       s << "StdVideoEncodeH264RefMemMgmtCtrlOperations = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\trefList0ModOpCount = " << value.refList0ModOpCount << '\n';
+       s << "\tpRefList0ModOperations = " << value.pRefList0ModOperations << '\n';
+       s << "\trefList1ModOpCount = " << value.refList1ModOpCount << '\n';
+       s << "\tpRefList1ModOperations = " << value.pRefList1ModOperations << '\n';
+       s << "\trefPicMarkingOpCount = " << value.refPicMarkingOpCount << '\n';
+       s << "\tpRefPicMarkingOperations = " << value.pRefPicMarkingOperations << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExportMetalTextureInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264PictureInfo& value)
 {
-       s << "VkExportMetalTextureInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\timage = " << value.image << '\n';
-       s << "\timageView = " << value.imageView << '\n';
-       s << "\tbufferView = " << value.bufferView << '\n';
-       s << "\tplane = " << value.plane << '\n';
-       s << "\tmtlTexture = " << value.mtlTexture << '\n';
+       s << "StdVideoEncodeH264PictureInfo = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\tseq_parameter_set_id = " << value.seq_parameter_set_id << '\n';
+       s << "\tpic_parameter_set_id = " << value.pic_parameter_set_id << '\n';
+       s << "\tpictureType = " << value.pictureType << '\n';
+       s << "\tframe_num = " << value.frame_num << '\n';
+       s << "\tPicOrderCnt = " << value.PicOrderCnt << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportMetalTextureInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264ReferenceInfo& value)
 {
-       s << "VkImportMetalTextureInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tplane = " << value.plane << '\n';
-       s << "\tmtlTexture = " << value.mtlTexture << '\n';
+       s << "StdVideoEncodeH264ReferenceInfo = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\tFrameNum = " << value.FrameNum << '\n';
+       s << "\tPicOrderCnt = " << value.PicOrderCnt << '\n';
+       s << "\tlong_term_pic_num = " << value.long_term_pic_num << '\n';
+       s << "\tlong_term_frame_idx = " << value.long_term_frame_idx << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExportMetalIOSurfaceInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH264SliceHeader& value)
 {
-       s << "VkExportMetalIOSurfaceInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\timage = " << value.image << '\n';
-       s << "\tioSurface = " << value.ioSurface << '\n';
+       s << "StdVideoEncodeH264SliceHeader = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\tfirst_mb_in_slice = " << value.first_mb_in_slice << '\n';
+       s << "\tslice_type = " << value.slice_type << '\n';
+       s << "\tidr_pic_id = " << value.idr_pic_id << '\n';
+       s << "\tnum_ref_idx_l0_active_minus1 = " << value.num_ref_idx_l0_active_minus1 << '\n';
+       s << "\tnum_ref_idx_l1_active_minus1 = " << value.num_ref_idx_l1_active_minus1 << '\n';
+       s << "\tcabac_init_idc = " << value.cabac_init_idc << '\n';
+       s << "\tdisable_deblocking_filter_idc = " << value.disable_deblocking_filter_idc << '\n';
+       s << "\tslice_alpha_c0_offset_div2 = " << value.slice_alpha_c0_offset_div2 << '\n';
+       s << "\tslice_beta_offset_div2 = " << value.slice_beta_offset_div2 << '\n';
+       s << "\tpWeightTable = " << value.pWeightTable << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportMetalIOSurfaceInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoH265DecPicBufMgr& value)
 {
-       s << "VkImportMetalIOSurfaceInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tioSurface = " << value.ioSurface << '\n';
+       s << "StdVideoH265DecPicBufMgr = {\n";
+       s << "\tmax_latency_increase_plus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.max_latency_increase_plus1), DE_ARRAY_END(value.max_latency_increase_plus1)) << '\n';
+       s << "\tmax_dec_pic_buffering_minus1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.max_dec_pic_buffering_minus1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.max_dec_pic_buffering_minus1))) << '\n';
+       s << "\tmax_num_reorder_pics = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.max_num_reorder_pics)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.max_num_reorder_pics))) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExportMetalSharedEventInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoH265SubLayerHrdParameters& value)
 {
-       s << "VkExportMetalSharedEventInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsemaphore = " << value.semaphore << '\n';
-       s << "\tevent = " << value.event << '\n';
-       s << "\tmtlSharedEvent = " << value.mtlSharedEvent << '\n';
+       s << "StdVideoH265SubLayerHrdParameters = {\n";
+       s << "\tbit_rate_value_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.bit_rate_value_minus1), DE_ARRAY_END(value.bit_rate_value_minus1)) << '\n';
+       s << "\tcpb_size_value_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.cpb_size_value_minus1), DE_ARRAY_END(value.cpb_size_value_minus1)) << '\n';
+       s << "\tcpb_size_du_value_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.cpb_size_du_value_minus1), DE_ARRAY_END(value.cpb_size_du_value_minus1)) << '\n';
+       s << "\tbit_rate_du_value_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.bit_rate_du_value_minus1), DE_ARRAY_END(value.bit_rate_du_value_minus1)) << '\n';
+       s << "\tcbr_flag = " << value.cbr_flag << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdFlags& value)
+{
+       s << "StdVideoH265HrdFlags = {\n";
+       s << "\tnal_hrd_parameters_present_flag = " << value.nal_hrd_parameters_present_flag << '\n';
+       s << "\tvcl_hrd_parameters_present_flag = " << value.vcl_hrd_parameters_present_flag << '\n';
+       s << "\tsub_pic_hrd_params_present_flag = " << value.sub_pic_hrd_params_present_flag << '\n';
+       s << "\tsub_pic_cpb_params_in_pic_timing_sei_flag = " << value.sub_pic_cpb_params_in_pic_timing_sei_flag << '\n';
+       s << "\tfixed_pic_rate_general_flag = " << value.fixed_pic_rate_general_flag << '\n';
+       s << "\tfixed_pic_rate_within_cvs_flag = " << value.fixed_pic_rate_within_cvs_flag << '\n';
+       s << "\tlow_delay_hrd_flag = " << value.low_delay_hrd_flag << '\n';
+       s << '}';
+       return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const StdVideoH265HrdParameters& value)
+{
+       s << "StdVideoH265HrdParameters = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\ttick_divisor_minus2 = " << value.tick_divisor_minus2 << '\n';
+       s << "\tdu_cpb_removal_delay_increment_length_minus1 = " << value.du_cpb_removal_delay_increment_length_minus1 << '\n';
+       s << "\tdpb_output_delay_du_length_minus1 = " << value.dpb_output_delay_du_length_minus1 << '\n';
+       s << "\tbit_rate_scale = " << value.bit_rate_scale << '\n';
+       s << "\tcpb_size_scale = " << value.cpb_size_scale << '\n';
+       s << "\tcpb_size_du_scale = " << value.cpb_size_du_scale << '\n';
+       s << "\tinitial_cpb_removal_delay_length_minus1 = " << value.initial_cpb_removal_delay_length_minus1 << '\n';
+       s << "\tau_cpb_removal_delay_length_minus1 = " << value.au_cpb_removal_delay_length_minus1 << '\n';
+       s << "\tdpb_output_delay_length_minus1 = " << value.dpb_output_delay_length_minus1 << '\n';
+       s << "\tcpb_cnt_minus1 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.cpb_cnt_minus1)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.cpb_cnt_minus1))) << '\n';
+       s << "\telemental_duration_in_tc_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.elemental_duration_in_tc_minus1), DE_ARRAY_END(value.elemental_duration_in_tc_minus1)) << '\n';
+       s << "\tpSubLayerHrdParametersNal = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.pSubLayerHrdParametersNal), DE_ARRAY_END(value.pSubLayerHrdParametersNal)) << '\n';
+       s << "\tpSubLayerHrdParametersVcl = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.pSubLayerHrdParametersVcl), DE_ARRAY_END(value.pSubLayerHrdParametersVcl)) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportMetalSharedEventInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoH265VpsFlags& value)
 {
-       s << "VkImportMetalSharedEventInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmtlSharedEvent = " << value.mtlSharedEvent << '\n';
+       s << "StdVideoH265VpsFlags = {\n";
+       s << "\tvps_temporal_id_nesting_flag = " << value.vps_temporal_id_nesting_flag << '\n';
+       s << "\tvps_sub_layer_ordering_info_present_flag = " << value.vps_sub_layer_ordering_info_present_flag << '\n';
+       s << "\tvps_timing_info_present_flag = " << value.vps_timing_info_present_flag << '\n';
+       s << "\tvps_poc_proportional_to_timing_flag = " << value.vps_poc_proportional_to_timing_flag << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkViSurfaceCreateInfoNN& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoH265VideoParameterSet& value)
 {
-       s << "VkViSurfaceCreateInfoNN = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getViSurfaceCreateFlagsNNStr(value.flags) << '\n';
-       s << "\twindow = " << value.window << '\n';
+       s << "StdVideoH265VideoParameterSet = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\tvps_video_parameter_set_id = " << value.vps_video_parameter_set_id << '\n';
+       s << "\tvps_max_sub_layers_minus1 = " << value.vps_max_sub_layers_minus1 << '\n';
+       s << "\tvps_num_units_in_tick = " << value.vps_num_units_in_tick << '\n';
+       s << "\tvps_time_scale = " << value.vps_time_scale << '\n';
+       s << "\tvps_num_ticks_poc_diff_one_minus1 = " << value.vps_num_ticks_poc_diff_one_minus1 << '\n';
+       s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
+       s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkWaylandSurfaceCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoH265ScalingLists& value)
 {
-       s << "VkWaylandSurfaceCreateInfoKHR = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getWaylandSurfaceCreateFlagsKHRStr(value.flags) << '\n';
-       s << "\tdisplay = " << value.display << '\n';
-       s << "\tsurface = " << value.surface << '\n';
+       s << "StdVideoH265ScalingLists = {\n";
+       s << "\tScalingList4x4 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList4x4), DE_ARRAY_END(value.ScalingList4x4)) << '\n';
+       s << "\tScalingList8x8 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList8x8), DE_ARRAY_END(value.ScalingList8x8)) << '\n';
+       s << "\tScalingList16x16 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList16x16), DE_ARRAY_END(value.ScalingList16x16)) << '\n';
+       s << "\tScalingList32x32 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.ScalingList32x32), DE_ARRAY_END(value.ScalingList32x32)) << '\n';
+       s << "\tScalingListDCCoef16x16 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.ScalingListDCCoef16x16)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.ScalingListDCCoef16x16))) << '\n';
+       s << "\tScalingListDCCoef32x32 = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.ScalingListDCCoef32x32)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.ScalingListDCCoef32x32))) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkWin32SurfaceCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsVuiFlags& value)
 {
-       s << "VkWin32SurfaceCreateInfoKHR = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getWin32SurfaceCreateFlagsKHRStr(value.flags) << '\n';
-       s << "\thinstance = " << value.hinstance << '\n';
-       s << "\thwnd = " << value.hwnd << '\n';
+       s << "StdVideoH265SpsVuiFlags = {\n";
+       s << "\taspect_ratio_info_present_flag = " << value.aspect_ratio_info_present_flag << '\n';
+       s << "\toverscan_info_present_flag = " << value.overscan_info_present_flag << '\n';
+       s << "\toverscan_appropriate_flag = " << value.overscan_appropriate_flag << '\n';
+       s << "\tvideo_signal_type_present_flag = " << value.video_signal_type_present_flag << '\n';
+       s << "\tvideo_full_range_flag = " << value.video_full_range_flag << '\n';
+       s << "\tcolour_description_present_flag = " << value.colour_description_present_flag << '\n';
+       s << "\tchroma_loc_info_present_flag = " << value.chroma_loc_info_present_flag << '\n';
+       s << "\tneutral_chroma_indication_flag = " << value.neutral_chroma_indication_flag << '\n';
+       s << "\tfield_seq_flag = " << value.field_seq_flag << '\n';
+       s << "\tframe_field_info_present_flag = " << value.frame_field_info_present_flag << '\n';
+       s << "\tdefault_display_window_flag = " << value.default_display_window_flag << '\n';
+       s << "\tvui_timing_info_present_flag = " << value.vui_timing_info_present_flag << '\n';
+       s << "\tvui_poc_proportional_to_timing_flag = " << value.vui_poc_proportional_to_timing_flag << '\n';
+       s << "\tvui_hrd_parameters_present_flag = " << value.vui_hrd_parameters_present_flag << '\n';
+       s << "\tbitstream_restriction_flag = " << value.bitstream_restriction_flag << '\n';
+       s << "\ttiles_fixed_structure_flag = " << value.tiles_fixed_structure_flag << '\n';
+       s << "\tmotion_vectors_over_pic_boundaries_flag = " << value.motion_vectors_over_pic_boundaries_flag << '\n';
+       s << "\trestricted_ref_pic_lists_flag = " << value.restricted_ref_pic_lists_flag << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSetVui& 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 = " << getWStr(value.name) << '\n';
+       s << "StdVideoH265SequenceParameterSetVui = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\taspect_ratio_idc = " << value.aspect_ratio_idc << '\n';
+       s << "\tsar_width = " << value.sar_width << '\n';
+       s << "\tsar_height = " << value.sar_height << '\n';
+       s << "\tvideo_format = " << value.video_format << '\n';
+       s << "\tcolour_primaries = " << value.colour_primaries << '\n';
+       s << "\ttransfer_characteristics = " << value.transfer_characteristics << '\n';
+       s << "\tmatrix_coeffs = " << value.matrix_coeffs << '\n';
+       s << "\tchroma_sample_loc_type_top_field = " << value.chroma_sample_loc_type_top_field << '\n';
+       s << "\tchroma_sample_loc_type_bottom_field = " << value.chroma_sample_loc_type_bottom_field << '\n';
+       s << "\tdef_disp_win_left_offset = " << value.def_disp_win_left_offset << '\n';
+       s << "\tdef_disp_win_right_offset = " << value.def_disp_win_right_offset << '\n';
+       s << "\tdef_disp_win_top_offset = " << value.def_disp_win_top_offset << '\n';
+       s << "\tdef_disp_win_bottom_offset = " << value.def_disp_win_bottom_offset << '\n';
+       s << "\tvui_num_units_in_tick = " << value.vui_num_units_in_tick << '\n';
+       s << "\tvui_time_scale = " << value.vui_time_scale << '\n';
+       s << "\tvui_num_ticks_poc_diff_one_minus1 = " << value.vui_num_ticks_poc_diff_one_minus1 << '\n';
+       s << "\tpHrdParameters = " << value.pHrdParameters << '\n';
+       s << "\tmin_spatial_segmentation_idc = " << value.min_spatial_segmentation_idc << '\n';
+       s << "\tmax_bytes_per_pic_denom = " << value.max_bytes_per_pic_denom << '\n';
+       s << "\tmax_bits_per_min_cu_denom = " << value.max_bits_per_min_cu_denom << '\n';
+       s << "\tlog2_max_mv_length_horizontal = " << value.log2_max_mv_length_horizontal << '\n';
+       s << "\tlog2_max_mv_length_vertical = " << value.log2_max_mv_length_vertical << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoH265PredictorPaletteEntries& 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 = " << getWStr(value.name) << '\n';
+       s << "StdVideoH265PredictorPaletteEntries = {\n";
+       s << "\tPredictorPaletteEntries = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.PredictorPaletteEntries), DE_ARRAY_END(value.PredictorPaletteEntries)) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryWin32HandlePropertiesKHR& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoH265SpsFlags& value)
 {
-       s << "VkMemoryWin32HandlePropertiesKHR = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
+       s << "StdVideoH265SpsFlags = {\n";
+       s << "\tsps_temporal_id_nesting_flag = " << value.sps_temporal_id_nesting_flag << '\n';
+       s << "\tseparate_colour_plane_flag = " << value.separate_colour_plane_flag << '\n';
+       s << "\tscaling_list_enabled_flag = " << value.scaling_list_enabled_flag << '\n';
+       s << "\tsps_scaling_list_data_present_flag = " << value.sps_scaling_list_data_present_flag << '\n';
+       s << "\tamp_enabled_flag = " << value.amp_enabled_flag << '\n';
+       s << "\tsample_adaptive_offset_enabled_flag = " << value.sample_adaptive_offset_enabled_flag << '\n';
+       s << "\tpcm_enabled_flag = " << value.pcm_enabled_flag << '\n';
+       s << "\tpcm_loop_filter_disabled_flag = " << value.pcm_loop_filter_disabled_flag << '\n';
+       s << "\tlong_term_ref_pics_present_flag = " << value.long_term_ref_pics_present_flag << '\n';
+       s << "\tsps_temporal_mvp_enabled_flag = " << value.sps_temporal_mvp_enabled_flag << '\n';
+       s << "\tstrong_intra_smoothing_enabled_flag = " << value.strong_intra_smoothing_enabled_flag << '\n';
+       s << "\tvui_parameters_present_flag = " << value.vui_parameters_present_flag << '\n';
+       s << "\tsps_extension_present_flag = " << value.sps_extension_present_flag << '\n';
+       s << "\tsps_range_extension_flag = " << value.sps_range_extension_flag << '\n';
+       s << "\ttransform_skip_rotation_enabled_flag = " << value.transform_skip_rotation_enabled_flag << '\n';
+       s << "\ttransform_skip_context_enabled_flag = " << value.transform_skip_context_enabled_flag << '\n';
+       s << "\timplicit_rdpcm_enabled_flag = " << value.implicit_rdpcm_enabled_flag << '\n';
+       s << "\texplicit_rdpcm_enabled_flag = " << value.explicit_rdpcm_enabled_flag << '\n';
+       s << "\textended_precision_processing_flag = " << value.extended_precision_processing_flag << '\n';
+       s << "\tintra_smoothing_disabled_flag = " << value.intra_smoothing_disabled_flag << '\n';
+       s << "\thigh_precision_offsets_enabled_flag = " << value.high_precision_offsets_enabled_flag << '\n';
+       s << "\tpersistent_rice_adaptation_enabled_flag = " << value.persistent_rice_adaptation_enabled_flag << '\n';
+       s << "\tcabac_bypass_alignment_enabled_flag = " << value.cabac_bypass_alignment_enabled_flag << '\n';
+       s << "\tsps_scc_extension_flag = " << value.sps_scc_extension_flag << '\n';
+       s << "\tsps_curr_pic_ref_enabled_flag = " << value.sps_curr_pic_ref_enabled_flag << '\n';
+       s << "\tpalette_mode_enabled_flag = " << value.palette_mode_enabled_flag << '\n';
+       s << "\tsps_palette_predictor_initializer_present_flag = " << value.sps_palette_predictor_initializer_present_flag << '\n';
+       s << "\tintra_boundary_filtering_disabled_flag = " << value.intra_boundary_filtering_disabled_flag << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryGetWin32HandleInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoH265SequenceParameterSet& 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 << "StdVideoH265SequenceParameterSet = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\tprofile_idc = " << value.profile_idc << '\n';
+       s << "\tlevel_idc = " << value.level_idc << '\n';
+       s << "\tpic_width_in_luma_samples = " << value.pic_width_in_luma_samples << '\n';
+       s << "\tpic_height_in_luma_samples = " << value.pic_height_in_luma_samples << '\n';
+       s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
+       s << "\tsps_max_sub_layers_minus1 = " << value.sps_max_sub_layers_minus1 << '\n';
+       s << "\tsps_seq_parameter_set_id = " << value.sps_seq_parameter_set_id << '\n';
+       s << "\tchroma_format_idc = " << value.chroma_format_idc << '\n';
+       s << "\tbit_depth_luma_minus8 = " << value.bit_depth_luma_minus8 << '\n';
+       s << "\tbit_depth_chroma_minus8 = " << value.bit_depth_chroma_minus8 << '\n';
+       s << "\tlog2_max_pic_order_cnt_lsb_minus4 = " << value.log2_max_pic_order_cnt_lsb_minus4 << '\n';
+       s << "\tlog2_min_luma_coding_block_size_minus3 = " << value.log2_min_luma_coding_block_size_minus3 << '\n';
+       s << "\tlog2_diff_max_min_luma_coding_block_size = " << value.log2_diff_max_min_luma_coding_block_size << '\n';
+       s << "\tlog2_min_luma_transform_block_size_minus2 = " << value.log2_min_luma_transform_block_size_minus2 << '\n';
+       s << "\tlog2_diff_max_min_luma_transform_block_size = " << value.log2_diff_max_min_luma_transform_block_size << '\n';
+       s << "\tmax_transform_hierarchy_depth_inter = " << value.max_transform_hierarchy_depth_inter << '\n';
+       s << "\tmax_transform_hierarchy_depth_intra = " << value.max_transform_hierarchy_depth_intra << '\n';
+       s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
+       s << "\tnum_long_term_ref_pics_sps = " << value.num_long_term_ref_pics_sps << '\n';
+       s << "\tpcm_sample_bit_depth_luma_minus1 = " << value.pcm_sample_bit_depth_luma_minus1 << '\n';
+       s << "\tpcm_sample_bit_depth_chroma_minus1 = " << value.pcm_sample_bit_depth_chroma_minus1 << '\n';
+       s << "\tlog2_min_pcm_luma_coding_block_size_minus3 = " << value.log2_min_pcm_luma_coding_block_size_minus3 << '\n';
+       s << "\tlog2_diff_max_min_pcm_luma_coding_block_size = " << value.log2_diff_max_min_pcm_luma_coding_block_size << '\n';
+       s << "\tconf_win_left_offset = " << value.conf_win_left_offset << '\n';
+       s << "\tconf_win_right_offset = " << value.conf_win_right_offset << '\n';
+       s << "\tconf_win_top_offset = " << value.conf_win_top_offset << '\n';
+       s << "\tconf_win_bottom_offset = " << value.conf_win_bottom_offset << '\n';
+       s << "\tpDecPicBufMgr = " << value.pDecPicBufMgr << '\n';
+       s << "\tpScalingLists = " << value.pScalingLists << '\n';
+       s << "\tpSequenceParameterSetVui = " << value.pSequenceParameterSetVui << '\n';
+       s << "\tpalette_max_size = " << value.palette_max_size << '\n';
+       s << "\tdelta_palette_max_predictor_size = " << value.delta_palette_max_predictor_size << '\n';
+       s << "\tmotion_vector_resolution_control_idc = " << value.motion_vector_resolution_control_idc << '\n';
+       s << "\tsps_num_palette_predictor_initializer_minus1 = " << value.sps_num_palette_predictor_initializer_minus1 << '\n';
+       s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoH265PpsFlags& 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 << "StdVideoH265PpsFlags = {\n";
+       s << "\tdependent_slice_segments_enabled_flag = " << value.dependent_slice_segments_enabled_flag << '\n';
+       s << "\toutput_flag_present_flag = " << value.output_flag_present_flag << '\n';
+       s << "\tsign_data_hiding_enabled_flag = " << value.sign_data_hiding_enabled_flag << '\n';
+       s << "\tcabac_init_present_flag = " << value.cabac_init_present_flag << '\n';
+       s << "\tconstrained_intra_pred_flag = " << value.constrained_intra_pred_flag << '\n';
+       s << "\ttransform_skip_enabled_flag = " << value.transform_skip_enabled_flag << '\n';
+       s << "\tcu_qp_delta_enabled_flag = " << value.cu_qp_delta_enabled_flag << '\n';
+       s << "\tpps_slice_chroma_qp_offsets_present_flag = " << value.pps_slice_chroma_qp_offsets_present_flag << '\n';
+       s << "\tweighted_pred_flag = " << value.weighted_pred_flag << '\n';
+       s << "\tweighted_bipred_flag = " << value.weighted_bipred_flag << '\n';
+       s << "\ttransquant_bypass_enabled_flag = " << value.transquant_bypass_enabled_flag << '\n';
+       s << "\ttiles_enabled_flag = " << value.tiles_enabled_flag << '\n';
+       s << "\tentropy_coding_sync_enabled_flag = " << value.entropy_coding_sync_enabled_flag << '\n';
+       s << "\tuniform_spacing_flag = " << value.uniform_spacing_flag << '\n';
+       s << "\tloop_filter_across_tiles_enabled_flag = " << value.loop_filter_across_tiles_enabled_flag << '\n';
+       s << "\tpps_loop_filter_across_slices_enabled_flag = " << value.pps_loop_filter_across_slices_enabled_flag << '\n';
+       s << "\tdeblocking_filter_control_present_flag = " << value.deblocking_filter_control_present_flag << '\n';
+       s << "\tdeblocking_filter_override_enabled_flag = " << value.deblocking_filter_override_enabled_flag << '\n';
+       s << "\tpps_deblocking_filter_disabled_flag = " << value.pps_deblocking_filter_disabled_flag << '\n';
+       s << "\tpps_scaling_list_data_present_flag = " << value.pps_scaling_list_data_present_flag << '\n';
+       s << "\tlists_modification_present_flag = " << value.lists_modification_present_flag << '\n';
+       s << "\tslice_segment_header_extension_present_flag = " << value.slice_segment_header_extension_present_flag << '\n';
+       s << "\tpps_extension_present_flag = " << value.pps_extension_present_flag << '\n';
+       s << "\tcross_component_prediction_enabled_flag = " << value.cross_component_prediction_enabled_flag << '\n';
+       s << "\tchroma_qp_offset_list_enabled_flag = " << value.chroma_qp_offset_list_enabled_flag << '\n';
+       s << "\tpps_curr_pic_ref_enabled_flag = " << value.pps_curr_pic_ref_enabled_flag << '\n';
+       s << "\tresidual_adaptive_colour_transform_enabled_flag = " << value.residual_adaptive_colour_transform_enabled_flag << '\n';
+       s << "\tpps_slice_act_qp_offsets_present_flag = " << value.pps_slice_act_qp_offsets_present_flag << '\n';
+       s << "\tpps_palette_predictor_initializer_present_flag = " << value.pps_palette_predictor_initializer_present_flag << '\n';
+       s << "\tmonochrome_palette_flag = " << value.monochrome_palette_flag << '\n';
+       s << "\tpps_range_extension_flag = " << value.pps_range_extension_flag << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportSemaphoreWin32HandleInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoH265PictureParameterSet& value)
 {
-       s << "VkImportSemaphoreWin32HandleInfoKHR = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tsemaphore = " << value.semaphore << '\n';
-       s << "\tflags = " << getSemaphoreImportFlagsStr(value.flags) << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
-       s << "\thandle = " << value.handle << '\n';
-       s << "\tname = " << getWStr(value.name) << '\n';
+       s << "StdVideoH265PictureParameterSet = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
+       s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
+       s << "\tnum_extra_slice_header_bits = " << value.num_extra_slice_header_bits << '\n';
+       s << "\tnum_ref_idx_l0_default_active_minus1 = " << value.num_ref_idx_l0_default_active_minus1 << '\n';
+       s << "\tnum_ref_idx_l1_default_active_minus1 = " << value.num_ref_idx_l1_default_active_minus1 << '\n';
+       s << "\tinit_qp_minus26 = " << value.init_qp_minus26 << '\n';
+       s << "\tdiff_cu_qp_delta_depth = " << value.diff_cu_qp_delta_depth << '\n';
+       s << "\tpps_cb_qp_offset = " << value.pps_cb_qp_offset << '\n';
+       s << "\tpps_cr_qp_offset = " << value.pps_cr_qp_offset << '\n';
+       s << "\tnum_tile_columns_minus1 = " << value.num_tile_columns_minus1 << '\n';
+       s << "\tnum_tile_rows_minus1 = " << value.num_tile_rows_minus1 << '\n';
+       s << "\tcolumn_width_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.column_width_minus1), DE_ARRAY_END(value.column_width_minus1)) << '\n';
+       s << "\trow_height_minus1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.row_height_minus1), DE_ARRAY_END(value.row_height_minus1)) << '\n';
+       s << "\tpps_beta_offset_div2 = " << value.pps_beta_offset_div2 << '\n';
+       s << "\tpps_tc_offset_div2 = " << value.pps_tc_offset_div2 << '\n';
+       s << "\tlog2_parallel_merge_level_minus2 = " << value.log2_parallel_merge_level_minus2 << '\n';
+       s << "\tpScalingLists = " << value.pScalingLists << '\n';
+       s << "\tlog2_max_transform_skip_block_size_minus2 = " << value.log2_max_transform_skip_block_size_minus2 << '\n';
+       s << "\tdiff_cu_chroma_qp_offset_depth = " << value.diff_cu_chroma_qp_offset_depth << '\n';
+       s << "\tchroma_qp_offset_list_len_minus1 = " << value.chroma_qp_offset_list_len_minus1 << '\n';
+       s << "\tcb_qp_offset_list = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.cb_qp_offset_list), DE_ARRAY_END(value.cb_qp_offset_list)) << '\n';
+       s << "\tcr_qp_offset_list = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.cr_qp_offset_list), DE_ARRAY_END(value.cr_qp_offset_list)) << '\n';
+       s << "\tlog2_sao_offset_scale_luma = " << value.log2_sao_offset_scale_luma << '\n';
+       s << "\tlog2_sao_offset_scale_chroma = " << value.log2_sao_offset_scale_chroma << '\n';
+       s << "\tpps_act_y_qp_offset_plus5 = " << value.pps_act_y_qp_offset_plus5 << '\n';
+       s << "\tpps_act_cb_qp_offset_plus5 = " << value.pps_act_cb_qp_offset_plus5 << '\n';
+       s << "\tpps_act_cr_qp_offset_plus5 = " << value.pps_act_cr_qp_offset_plus5 << '\n';
+       s << "\tpps_num_palette_predictor_initializer = " << value.pps_num_palette_predictor_initializer << '\n';
+       s << "\tluma_bit_depth_entry_minus8 = " << value.luma_bit_depth_entry_minus8 << '\n';
+       s << "\tchroma_bit_depth_entry_minus8 = " << value.chroma_bit_depth_entry_minus8 << '\n';
+       s << "\tpPredictorPaletteEntries = " << value.pPredictorPaletteEntries << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExportSemaphoreWin32HandleInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfoFlags& 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 = " << getWStr(value.name) << '\n';
+       s << "StdVideoDecodeH265PictureInfoFlags = {\n";
+       s << "\tIrapPicFlag = " << value.IrapPicFlag << '\n';
+       s << "\tIdrPicFlag = " << value.IdrPicFlag << '\n';
+       s << "\tIsReference = " << value.IsReference << '\n';
+       s << "\tshort_term_ref_pic_set_sps_flag = " << value.short_term_ref_pic_set_sps_flag << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkD3D12FenceSubmitInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265PictureInfo& 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 << "StdVideoDecodeH265PictureInfo = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
+       s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
+       s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
+       s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
+       s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
+       s << "\tNumBitsForSTRefPicSetInSlice = " << value.NumBitsForSTRefPicSetInSlice << '\n';
+       s << "\tNumDeltaPocsOfRefRpsIdx = " << value.NumDeltaPocsOfRefRpsIdx << '\n';
+       s << "\tRefPicSetStCurrBefore = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.RefPicSetStCurrBefore)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.RefPicSetStCurrBefore))) << '\n';
+       s << "\tRefPicSetStCurrAfter = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.RefPicSetStCurrAfter)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.RefPicSetStCurrAfter))) << '\n';
+       s << "\tRefPicSetLtCurr = " << '\n' << tcu::formatArray(tcu::Format::HexIterator<uint8_t>(DE_ARRAY_BEGIN(value.RefPicSetLtCurr)), tcu::Format::HexIterator<uint8_t>(DE_ARRAY_END(value.RefPicSetLtCurr))) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSemaphoreGetWin32HandleInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfoFlags& 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 << "StdVideoDecodeH265ReferenceInfoFlags = {\n";
+       s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
+       s << "\tunused_for_reference = " << value.unused_for_reference << '\n';
+       s << "\tis_non_existing = " << value.is_non_existing << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportFenceWin32HandleInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoDecodeH265ReferenceInfo& value)
 {
-       s << "VkImportFenceWin32HandleInfoKHR = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfence = " << value.fence << '\n';
-       s << "\tflags = " << getFenceImportFlagsStr(value.flags) << '\n';
-       s << "\thandleType = " << value.handleType << '\n';
-       s << "\thandle = " << value.handle << '\n';
-       s << "\tname = " << getWStr(value.name) << '\n';
+       s << "StdVideoDecodeH265ReferenceInfo = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExportFenceWin32HandleInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265WeightTableFlags& 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 = " << getWStr(value.name) << '\n';
+       s << "StdVideoEncodeH265WeightTableFlags = {\n";
+       s << "\tluma_weight_l0_flag = " << value.luma_weight_l0_flag << '\n';
+       s << "\tchroma_weight_l0_flag = " << value.chroma_weight_l0_flag << '\n';
+       s << "\tluma_weight_l1_flag = " << value.luma_weight_l1_flag << '\n';
+       s << "\tchroma_weight_l1_flag = " << value.chroma_weight_l1_flag << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkFenceGetWin32HandleInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265WeightTable& 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 << "StdVideoEncodeH265WeightTable = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\tluma_log2_weight_denom = " << value.luma_log2_weight_denom << '\n';
+       s << "\tdelta_chroma_log2_weight_denom = " << value.delta_chroma_log2_weight_denom << '\n';
+       s << "\tdelta_luma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_luma_weight_l0), DE_ARRAY_END(value.delta_luma_weight_l0)) << '\n';
+       s << "\tluma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l0), DE_ARRAY_END(value.luma_offset_l0)) << '\n';
+       s << "\tdelta_chroma_weight_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_weight_l0), DE_ARRAY_END(value.delta_chroma_weight_l0)) << '\n';
+       s << "\tdelta_chroma_offset_l0 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_offset_l0), DE_ARRAY_END(value.delta_chroma_offset_l0)) << '\n';
+       s << "\tdelta_luma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_luma_weight_l1), DE_ARRAY_END(value.delta_luma_weight_l1)) << '\n';
+       s << "\tluma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.luma_offset_l1), DE_ARRAY_END(value.luma_offset_l1)) << '\n';
+       s << "\tdelta_chroma_weight_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_weight_l1), DE_ARRAY_END(value.delta_chroma_weight_l1)) << '\n';
+       s << "\tdelta_chroma_offset_l1 = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.delta_chroma_offset_l1), DE_ARRAY_END(value.delta_chroma_offset_l1)) << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImportMemoryWin32HandleInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265SliceSegmentHeaderFlags& value)
 {
-       s << "VkImportMemoryWin32HandleInfoNV = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\thandleType = " << getExternalMemoryHandleTypeFlagsNVStr(value.handleType) << '\n';
-       s << "\thandle = " << value.handle << '\n';
+       s << "StdVideoEncodeH265SliceSegmentHeaderFlags = {\n";
+       s << "\tfirst_slice_segment_in_pic_flag = " << value.first_slice_segment_in_pic_flag << '\n';
+       s << "\tno_output_of_prior_pics_flag = " << value.no_output_of_prior_pics_flag << '\n';
+       s << "\tdependent_slice_segment_flag = " << value.dependent_slice_segment_flag << '\n';
+       s << "\tpic_output_flag = " << value.pic_output_flag << '\n';
+       s << "\tshort_term_ref_pic_set_sps_flag = " << value.short_term_ref_pic_set_sps_flag << '\n';
+       s << "\tslice_temporal_mvp_enable_flag = " << value.slice_temporal_mvp_enable_flag << '\n';
+       s << "\tslice_sao_luma_flag = " << value.slice_sao_luma_flag << '\n';
+       s << "\tslice_sao_chroma_flag = " << value.slice_sao_chroma_flag << '\n';
+       s << "\tnum_ref_idx_active_override_flag = " << value.num_ref_idx_active_override_flag << '\n';
+       s << "\tmvd_l1_zero_flag = " << value.mvd_l1_zero_flag << '\n';
+       s << "\tcabac_init_flag = " << value.cabac_init_flag << '\n';
+       s << "\tslice_deblocking_filter_disable_flag = " << value.slice_deblocking_filter_disable_flag << '\n';
+       s << "\tcollocated_from_l0_flag = " << value.collocated_from_l0_flag << '\n';
+       s << "\tslice_loop_filter_across_slices_enabled_flag = " << value.slice_loop_filter_across_slices_enabled_flag << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkExportMemoryWin32HandleInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265SliceSegmentHeader& value)
 {
-       s << "VkExportMemoryWin32HandleInfoNV = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tpAttributes = " << value.pAttributes << '\n';
-       s << "\tdwAccess = " << value.dwAccess << '\n';
+       s << "StdVideoEncodeH265SliceSegmentHeader = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\tslice_type = " << value.slice_type << '\n';
+       s << "\tnum_short_term_ref_pic_sets = " << value.num_short_term_ref_pic_sets << '\n';
+       s << "\tslice_segment_address = " << value.slice_segment_address << '\n';
+       s << "\tshort_term_ref_pic_set_idx = " << value.short_term_ref_pic_set_idx << '\n';
+       s << "\tnum_long_term_sps = " << value.num_long_term_sps << '\n';
+       s << "\tnum_long_term_pics = " << value.num_long_term_pics << '\n';
+       s << "\tcollocated_ref_idx = " << value.collocated_ref_idx << '\n';
+       s << "\tnum_ref_idx_l0_active_minus1 = " << value.num_ref_idx_l0_active_minus1 << '\n';
+       s << "\tnum_ref_idx_l1_active_minus1 = " << value.num_ref_idx_l1_active_minus1 << '\n';
+       s << "\tMaxNumMergeCand = " << value.MaxNumMergeCand << '\n';
+       s << "\tslice_cb_qp_offset = " << value.slice_cb_qp_offset << '\n';
+       s << "\tslice_cr_qp_offset = " << value.slice_cr_qp_offset << '\n';
+       s << "\tslice_beta_offset_div2 = " << value.slice_beta_offset_div2 << '\n';
+       s << "\tslice_tc_offset_div2 = " << value.slice_tc_offset_div2 << '\n';
+       s << "\tslice_act_y_qp_offset = " << value.slice_act_y_qp_offset << '\n';
+       s << "\tslice_act_cb_qp_offset = " << value.slice_act_cb_qp_offset << '\n';
+       s << "\tslice_act_cr_qp_offset = " << value.slice_act_cr_qp_offset << '\n';
+       s << "\tpWeightTable = " << value.pWeightTable << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkWin32KeyedMutexAcquireReleaseInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceModificationFlags& value)
 {
-       s << "VkWin32KeyedMutexAcquireReleaseInfoNV = {\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 << "\tpAcquireTimeoutMilliseconds = " << value.pAcquireTimeoutMilliseconds << '\n';
-       s << "\treleaseCount = " << value.releaseCount << '\n';
-       s << "\tpReleaseSyncs = " << value.pReleaseSyncs << '\n';
-       s << "\tpReleaseKeys = " << value.pReleaseKeys << '\n';
+       s << "StdVideoEncodeH265ReferenceModificationFlags = {\n";
+       s << "\tref_pic_list_modification_flag_l0 = " << value.ref_pic_list_modification_flag_l0 << '\n';
+       s << "\tref_pic_list_modification_flag_l1 = " << value.ref_pic_list_modification_flag_l1 << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveInfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceModifications& value)
 {
-       s << "VkSurfaceFullScreenExclusiveInfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfullScreenExclusive = " << value.fullScreenExclusive << '\n';
+       s << "StdVideoEncodeH265ReferenceModifications = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\treferenceList0ModificationsCount = " << value.referenceList0ModificationsCount << '\n';
+       s << "\tpReferenceList0Modifications = " << value.pReferenceList0Modifications << '\n';
+       s << "\treferenceList1ModificationsCount = " << value.referenceList1ModificationsCount << '\n';
+       s << "\tpReferenceList1Modifications = " << value.pReferenceList1Modifications << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSurfaceCapabilitiesFullScreenExclusiveEXT& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265PictureInfoFlags& value)
 {
-       s << "VkSurfaceCapabilitiesFullScreenExclusiveEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tfullScreenExclusiveSupported = " << value.fullScreenExclusiveSupported << '\n';
+       s << "StdVideoEncodeH265PictureInfoFlags = {\n";
+       s << "\tis_reference_flag = " << value.is_reference_flag << '\n';
+       s << "\tIrapPicFlag = " << value.IrapPicFlag << '\n';
+       s << "\tlong_term_flag = " << value.long_term_flag << '\n';
+       s << "\tdiscardable_flag = " << value.discardable_flag << '\n';
+       s << "\tcross_layer_bla_flag = " << value.cross_layer_bla_flag << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSurfaceFullScreenExclusiveWin32InfoEXT& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265PictureInfo& value)
 {
-       s << "VkSurfaceFullScreenExclusiveWin32InfoEXT = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\thmonitor = " << value.hmonitor << '\n';
+       s << "StdVideoEncodeH265PictureInfo = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\tPictureType = " << value.PictureType << '\n';
+       s << "\tsps_video_parameter_set_id = " << value.sps_video_parameter_set_id << '\n';
+       s << "\tpps_seq_parameter_set_id = " << value.pps_seq_parameter_set_id << '\n';
+       s << "\tpps_pic_parameter_set_id = " << value.pps_pic_parameter_set_id << '\n';
+       s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
+       s << "\tTemporalId = " << value.TemporalId << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkXcbSurfaceCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceInfoFlags& value)
 {
-       s << "VkXcbSurfaceCreateInfoKHR = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getXcbSurfaceCreateFlagsKHRStr(value.flags) << '\n';
-       s << "\tconnection = " << value.connection << '\n';
-       s << "\twindow = " << value.window << '\n';
+       s << "StdVideoEncodeH265ReferenceInfoFlags = {\n";
+       s << "\tused_for_long_term_reference = " << value.used_for_long_term_reference << '\n';
+       s << "\tunused_for_reference = " << value.unused_for_reference << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkXlibSurfaceCreateInfoKHR& value)
+std::ostream& operator<< (std::ostream& s, const StdVideoEncodeH265ReferenceInfo& value)
 {
-       s << "VkXlibSurfaceCreateInfoKHR = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\tflags = " << getXlibSurfaceCreateFlagsKHRStr(value.flags) << '\n';
-       s << "\tdpy = " << value.dpy << '\n';
-       s << "\twindow = " << value.window << '\n';
+       s << "StdVideoEncodeH265ReferenceInfo = {\n";
+       s << "\tflags = " << value.flags << '\n';
+       s << "\tPicOrderCntVal = " << value.PicOrderCntVal << '\n';
+       s << "\tTemporalId = " << value.TemporalId << '\n';
        s << '}';
        return s;
 }
index dd92d80..b64c3d6 100644 (file)
@@ -3,17 +3,16 @@
  * This file was generated by /scripts/gen_framework.py
  */
 
-struct VkExtent2D
+struct VkBaseOutStructure
 {
-       uint32_t        width;
-       uint32_t        height;
+       VkStructureType                         sType;
+       struct VkBaseOutStructure*      pNext;
 };
 
-struct VkExtent3D
+struct VkBaseInStructure
 {
-       uint32_t        width;
-       uint32_t        height;
-       uint32_t        depth;
+       VkStructureType                                 sType;
+       const struct VkBaseInStructure* pNext;
 };
 
 struct VkOffset2D
@@ -29,120 +28,173 @@ struct VkOffset3D
        int32_t z;
 };
 
+struct VkExtent2D
+{
+       uint32_t        width;
+       uint32_t        height;
+};
+
+struct VkExtent3D
+{
+       uint32_t        width;
+       uint32_t        height;
+       uint32_t        depth;
+};
+
+struct VkViewport
+{
+       float   x;
+       float   y;
+       float   width;
+       float   height;
+       float   minDepth;
+       float   maxDepth;
+};
+
 struct VkRect2D
 {
        VkOffset2D      offset;
        VkExtent2D      extent;
 };
 
-struct VkBaseInStructure
+struct VkClearRect
 {
-       VkStructureType                                 sType;
-       const struct VkBaseInStructure* pNext;
+       VkRect2D        rect;
+       uint32_t        baseArrayLayer;
+       uint32_t        layerCount;
 };
 
-struct VkBaseOutStructure
+struct VkComponentMapping
 {
-       VkStructureType                         sType;
-       struct VkBaseOutStructure*      pNext;
+       VkComponentSwizzle      r;
+       VkComponentSwizzle      g;
+       VkComponentSwizzle      b;
+       VkComponentSwizzle      a;
 };
 
-struct VkBufferMemoryBarrier
+struct VkExtensionProperties
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkAccessFlags   srcAccessMask;
-       VkAccessFlags   dstAccessMask;
-       uint32_t                srcQueueFamilyIndex;
-       uint32_t                dstQueueFamilyIndex;
-       VkBuffer                buffer;
-       VkDeviceSize    offset;
-       VkDeviceSize    size;
+       char            extensionName[VK_MAX_EXTENSION_NAME_SIZE];
+       uint32_t        specVersion;
 };
 
-struct VkDispatchIndirectCommand
+struct VkLayerProperties
 {
-       uint32_t        x;
-       uint32_t        y;
-       uint32_t        z;
+       char            layerName[VK_MAX_EXTENSION_NAME_SIZE];
+       uint32_t        specVersion;
+       uint32_t        implementationVersion;
+       char            description[VK_MAX_DESCRIPTION_SIZE];
 };
 
-struct VkDrawIndexedIndirectCommand
+struct VkApplicationInfo
 {
-       uint32_t        indexCount;
-       uint32_t        instanceCount;
-       uint32_t        firstIndex;
-       int32_t         vertexOffset;
-       uint32_t        firstInstance;
+       VkStructureType sType;
+       const void*             pNext;
+       const char*             pApplicationName;
+       uint32_t                applicationVersion;
+       const char*             pEngineName;
+       uint32_t                engineVersion;
+       uint32_t                apiVersion;
 };
 
-struct VkDrawIndirectCommand
+struct VkAllocationCallbacks
 {
-       uint32_t        vertexCount;
-       uint32_t        instanceCount;
-       uint32_t        firstVertex;
-       uint32_t        firstInstance;
+       void*                                                                   pUserData;
+       PFN_vkAllocationFunction                                pfnAllocation;
+       PFN_vkReallocationFunction                              pfnReallocation;
+       PFN_vkFreeFunction                                              pfnFree;
+       PFN_vkInternalAllocationNotification    pfnInternalAllocation;
+       PFN_vkInternalFreeNotification                  pfnInternalFree;
 };
 
-struct VkImageSubresourceRange
+struct VkDeviceQueueCreateInfo
 {
-       VkImageAspectFlags      aspectMask;
-       uint32_t                        baseMipLevel;
-       uint32_t                        levelCount;
-       uint32_t                        baseArrayLayer;
-       uint32_t                        layerCount;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkDeviceQueueCreateFlags        flags;
+       uint32_t                                        queueFamilyIndex;
+       uint32_t                                        queueCount;
+       const float*                            pQueuePriorities;
 };
 
-struct VkImageMemoryBarrier
+struct VkInstanceCreateInfo
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkAccessFlags                   srcAccessMask;
-       VkAccessFlags                   dstAccessMask;
-       VkImageLayout                   oldLayout;
-       VkImageLayout                   newLayout;
-       uint32_t                                srcQueueFamilyIndex;
-       uint32_t                                dstQueueFamilyIndex;
-       VkImage                                 image;
-       VkImageSubresourceRange subresourceRange;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkInstanceCreateFlags           flags;
+       const VkApplicationInfo*        pApplicationInfo;
+       uint32_t                                        enabledLayerCount;
+       const char* const*                      ppEnabledLayerNames;
+       uint32_t                                        enabledExtensionCount;
+       const char* const*                      ppEnabledExtensionNames;
 };
 
-struct VkMemoryBarrier
+struct VkQueueFamilyProperties
+{
+       VkQueueFlags    queueFlags;
+       uint32_t                queueCount;
+       uint32_t                timestampValidBits;
+       VkExtent3D              minImageTransferGranularity;
+};
+
+struct VkMemoryAllocateInfo
 {
        VkStructureType sType;
        const void*             pNext;
-       VkAccessFlags   srcAccessMask;
-       VkAccessFlags   dstAccessMask;
+       VkDeviceSize    allocationSize;
+       uint32_t                memoryTypeIndex;
 };
 
-struct VkPipelineCacheHeaderVersionOne
+struct VkMemoryRequirements
 {
-       uint32_t                                                headerSize;
-       VkPipelineCacheHeaderVersion    headerVersion;
-       uint32_t                                                vendorID;
-       uint32_t                                                deviceID;
-       uint8_t                                                 pipelineCacheUUID[VK_UUID_SIZE];
+       VkDeviceSize    size;
+       VkDeviceSize    alignment;
+       uint32_t                memoryTypeBits;
 };
 
-struct VkAllocationCallbacks
+struct VkSparseImageFormatProperties
 {
-       void*                                                                   pUserData;
-       PFN_vkAllocationFunction                                pfnAllocation;
-       PFN_vkReallocationFunction                              pfnReallocation;
-       PFN_vkFreeFunction                                              pfnFree;
-       PFN_vkInternalAllocationNotification    pfnInternalAllocation;
-       PFN_vkInternalFreeNotification                  pfnInternalFree;
+       VkImageAspectFlags                      aspectMask;
+       VkExtent3D                                      imageGranularity;
+       VkSparseImageFormatFlags        flags;
 };
 
-struct VkApplicationInfo
+struct VkSparseImageMemoryRequirements
+{
+       VkSparseImageFormatProperties   formatProperties;
+       uint32_t                                                imageMipTailFirstLod;
+       VkDeviceSize                                    imageMipTailSize;
+       VkDeviceSize                                    imageMipTailOffset;
+       VkDeviceSize                                    imageMipTailStride;
+};
+
+struct VkMemoryType
+{
+       VkMemoryPropertyFlags   propertyFlags;
+       uint32_t                                heapIndex;
+};
+
+struct VkMemoryHeap
+{
+       VkDeviceSize            size;
+       VkMemoryHeapFlags       flags;
+};
+
+struct VkPhysicalDeviceMemoryProperties
+{
+       uint32_t                memoryTypeCount;
+       VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
+       uint32_t                memoryHeapCount;
+       VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
+};
+
+struct VkMappedMemoryRange
 {
        VkStructureType sType;
        const void*             pNext;
-       const char*             pApplicationName;
-       uint32_t                applicationVersion;
-       const char*             pEngineName;
-       uint32_t                engineVersion;
-       uint32_t                apiVersion;
+       VkDeviceMemory  memory;
+       VkDeviceSize    offset;
+       VkDeviceSize    size;
 };
 
 struct VkFormatProperties
@@ -161,766 +213,35 @@ struct VkImageFormatProperties
        VkDeviceSize            maxResourceSize;
 };
 
-struct VkInstanceCreateInfo
+struct VkDescriptorBufferInfo
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkInstanceCreateFlags           flags;
-       const VkApplicationInfo*        pApplicationInfo;
-       uint32_t                                        enabledLayerCount;
-       const char* const*                      ppEnabledLayerNames;
-       uint32_t                                        enabledExtensionCount;
-       const char* const*                      ppEnabledExtensionNames;
+       VkBuffer                buffer;
+       VkDeviceSize    offset;
+       VkDeviceSize    range;
 };
 
-struct VkMemoryHeap
+struct VkDescriptorImageInfo
 {
-       VkDeviceSize            size;
-       VkMemoryHeapFlags       flags;
+       VkSampler               sampler;
+       VkImageView             imageView;
+       VkImageLayout   imageLayout;
 };
 
-struct VkMemoryType
+struct VkWriteDescriptorSet
 {
-       VkMemoryPropertyFlags   propertyFlags;
-       uint32_t                                heapIndex;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkDescriptorSet                                 dstSet;
+       uint32_t                                                dstBinding;
+       uint32_t                                                dstArrayElement;
+       uint32_t                                                descriptorCount;
+       VkDescriptorType                                descriptorType;
+       const VkDescriptorImageInfo*    pImageInfo;
+       const VkDescriptorBufferInfo*   pBufferInfo;
+       const VkBufferView*                             pTexelBufferView;
 };
 
-struct VkPhysicalDeviceFeatures
-{
-       VkBool32        robustBufferAccess;
-       VkBool32        fullDrawIndexUint32;
-       VkBool32        imageCubeArray;
-       VkBool32        independentBlend;
-       VkBool32        geometryShader;
-       VkBool32        tessellationShader;
-       VkBool32        sampleRateShading;
-       VkBool32        dualSrcBlend;
-       VkBool32        logicOp;
-       VkBool32        multiDrawIndirect;
-       VkBool32        drawIndirectFirstInstance;
-       VkBool32        depthClamp;
-       VkBool32        depthBiasClamp;
-       VkBool32        fillModeNonSolid;
-       VkBool32        depthBounds;
-       VkBool32        wideLines;
-       VkBool32        largePoints;
-       VkBool32        alphaToOne;
-       VkBool32        multiViewport;
-       VkBool32        samplerAnisotropy;
-       VkBool32        textureCompressionETC2;
-       VkBool32        textureCompressionASTC_LDR;
-       VkBool32        textureCompressionBC;
-       VkBool32        occlusionQueryPrecise;
-       VkBool32        pipelineStatisticsQuery;
-       VkBool32        vertexPipelineStoresAndAtomics;
-       VkBool32        fragmentStoresAndAtomics;
-       VkBool32        shaderTessellationAndGeometryPointSize;
-       VkBool32        shaderImageGatherExtended;
-       VkBool32        shaderStorageImageExtendedFormats;
-       VkBool32        shaderStorageImageMultisample;
-       VkBool32        shaderStorageImageReadWithoutFormat;
-       VkBool32        shaderStorageImageWriteWithoutFormat;
-       VkBool32        shaderUniformBufferArrayDynamicIndexing;
-       VkBool32        shaderSampledImageArrayDynamicIndexing;
-       VkBool32        shaderStorageBufferArrayDynamicIndexing;
-       VkBool32        shaderStorageImageArrayDynamicIndexing;
-       VkBool32        shaderClipDistance;
-       VkBool32        shaderCullDistance;
-       VkBool32        shaderFloat64;
-       VkBool32        shaderInt64;
-       VkBool32        shaderInt16;
-       VkBool32        shaderResourceResidency;
-       VkBool32        shaderResourceMinLod;
-       VkBool32        sparseBinding;
-       VkBool32        sparseResidencyBuffer;
-       VkBool32        sparseResidencyImage2D;
-       VkBool32        sparseResidencyImage3D;
-       VkBool32        sparseResidency2Samples;
-       VkBool32        sparseResidency4Samples;
-       VkBool32        sparseResidency8Samples;
-       VkBool32        sparseResidency16Samples;
-       VkBool32        sparseResidencyAliased;
-       VkBool32        variableMultisampleRate;
-       VkBool32        inheritedQueries;
-};
-
-struct VkPhysicalDeviceLimits
-{
-       uint32_t                        maxImageDimension1D;
-       uint32_t                        maxImageDimension2D;
-       uint32_t                        maxImageDimension3D;
-       uint32_t                        maxImageDimensionCube;
-       uint32_t                        maxImageArrayLayers;
-       uint32_t                        maxTexelBufferElements;
-       uint32_t                        maxUniformBufferRange;
-       uint32_t                        maxStorageBufferRange;
-       uint32_t                        maxPushConstantsSize;
-       uint32_t                        maxMemoryAllocationCount;
-       uint32_t                        maxSamplerAllocationCount;
-       VkDeviceSize            bufferImageGranularity;
-       VkDeviceSize            sparseAddressSpaceSize;
-       uint32_t                        maxBoundDescriptorSets;
-       uint32_t                        maxPerStageDescriptorSamplers;
-       uint32_t                        maxPerStageDescriptorUniformBuffers;
-       uint32_t                        maxPerStageDescriptorStorageBuffers;
-       uint32_t                        maxPerStageDescriptorSampledImages;
-       uint32_t                        maxPerStageDescriptorStorageImages;
-       uint32_t                        maxPerStageDescriptorInputAttachments;
-       uint32_t                        maxPerStageResources;
-       uint32_t                        maxDescriptorSetSamplers;
-       uint32_t                        maxDescriptorSetUniformBuffers;
-       uint32_t                        maxDescriptorSetUniformBuffersDynamic;
-       uint32_t                        maxDescriptorSetStorageBuffers;
-       uint32_t                        maxDescriptorSetStorageBuffersDynamic;
-       uint32_t                        maxDescriptorSetSampledImages;
-       uint32_t                        maxDescriptorSetStorageImages;
-       uint32_t                        maxDescriptorSetInputAttachments;
-       uint32_t                        maxVertexInputAttributes;
-       uint32_t                        maxVertexInputBindings;
-       uint32_t                        maxVertexInputAttributeOffset;
-       uint32_t                        maxVertexInputBindingStride;
-       uint32_t                        maxVertexOutputComponents;
-       uint32_t                        maxTessellationGenerationLevel;
-       uint32_t                        maxTessellationPatchSize;
-       uint32_t                        maxTessellationControlPerVertexInputComponents;
-       uint32_t                        maxTessellationControlPerVertexOutputComponents;
-       uint32_t                        maxTessellationControlPerPatchOutputComponents;
-       uint32_t                        maxTessellationControlTotalOutputComponents;
-       uint32_t                        maxTessellationEvaluationInputComponents;
-       uint32_t                        maxTessellationEvaluationOutputComponents;
-       uint32_t                        maxGeometryShaderInvocations;
-       uint32_t                        maxGeometryInputComponents;
-       uint32_t                        maxGeometryOutputComponents;
-       uint32_t                        maxGeometryOutputVertices;
-       uint32_t                        maxGeometryTotalOutputComponents;
-       uint32_t                        maxFragmentInputComponents;
-       uint32_t                        maxFragmentOutputAttachments;
-       uint32_t                        maxFragmentDualSrcAttachments;
-       uint32_t                        maxFragmentCombinedOutputResources;
-       uint32_t                        maxComputeSharedMemorySize;
-       uint32_t                        maxComputeWorkGroupCount[3];
-       uint32_t                        maxComputeWorkGroupInvocations;
-       uint32_t                        maxComputeWorkGroupSize[3];
-       uint32_t                        subPixelPrecisionBits;
-       uint32_t                        subTexelPrecisionBits;
-       uint32_t                        mipmapPrecisionBits;
-       uint32_t                        maxDrawIndexedIndexValue;
-       uint32_t                        maxDrawIndirectCount;
-       float                           maxSamplerLodBias;
-       float                           maxSamplerAnisotropy;
-       uint32_t                        maxViewports;
-       uint32_t                        maxViewportDimensions[2];
-       float                           viewportBoundsRange[2];
-       uint32_t                        viewportSubPixelBits;
-       size_t                          minMemoryMapAlignment;
-       VkDeviceSize            minTexelBufferOffsetAlignment;
-       VkDeviceSize            minUniformBufferOffsetAlignment;
-       VkDeviceSize            minStorageBufferOffsetAlignment;
-       int32_t                         minTexelOffset;
-       uint32_t                        maxTexelOffset;
-       int32_t                         minTexelGatherOffset;
-       uint32_t                        maxTexelGatherOffset;
-       float                           minInterpolationOffset;
-       float                           maxInterpolationOffset;
-       uint32_t                        subPixelInterpolationOffsetBits;
-       uint32_t                        maxFramebufferWidth;
-       uint32_t                        maxFramebufferHeight;
-       uint32_t                        maxFramebufferLayers;
-       VkSampleCountFlags      framebufferColorSampleCounts;
-       VkSampleCountFlags      framebufferDepthSampleCounts;
-       VkSampleCountFlags      framebufferStencilSampleCounts;
-       VkSampleCountFlags      framebufferNoAttachmentsSampleCounts;
-       uint32_t                        maxColorAttachments;
-       VkSampleCountFlags      sampledImageColorSampleCounts;
-       VkSampleCountFlags      sampledImageIntegerSampleCounts;
-       VkSampleCountFlags      sampledImageDepthSampleCounts;
-       VkSampleCountFlags      sampledImageStencilSampleCounts;
-       VkSampleCountFlags      storageImageSampleCounts;
-       uint32_t                        maxSampleMaskWords;
-       VkBool32                        timestampComputeAndGraphics;
-       float                           timestampPeriod;
-       uint32_t                        maxClipDistances;
-       uint32_t                        maxCullDistances;
-       uint32_t                        maxCombinedClipAndCullDistances;
-       uint32_t                        discreteQueuePriorities;
-       float                           pointSizeRange[2];
-       float                           lineWidthRange[2];
-       float                           pointSizeGranularity;
-       float                           lineWidthGranularity;
-       VkBool32                        strictLines;
-       VkBool32                        standardSampleLocations;
-       VkDeviceSize            optimalBufferCopyOffsetAlignment;
-       VkDeviceSize            optimalBufferCopyRowPitchAlignment;
-       VkDeviceSize            nonCoherentAtomSize;
-};
-
-struct VkPhysicalDeviceMemoryProperties
-{
-       uint32_t                memoryTypeCount;
-       VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
-       uint32_t                memoryHeapCount;
-       VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
-};
-
-struct VkPhysicalDeviceSparseProperties
-{
-       VkBool32        residencyStandard2DBlockShape;
-       VkBool32        residencyStandard2DMultisampleBlockShape;
-       VkBool32        residencyStandard3DBlockShape;
-       VkBool32        residencyAlignedMipSize;
-       VkBool32        residencyNonResidentStrict;
-};
-
-struct VkPhysicalDeviceProperties
-{
-       uint32_t                                                        apiVersion;
-       uint32_t                                                        driverVersion;
-       uint32_t                                                        vendorID;
-       uint32_t                                                        deviceID;
-       VkPhysicalDeviceType                            deviceType;
-       char                                                            deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
-       uint8_t                                                         pipelineCacheUUID[VK_UUID_SIZE];
-       VkPhysicalDeviceLimits                          limits;
-       VkPhysicalDeviceSparseProperties        sparseProperties;
-};
-
-struct VkQueueFamilyProperties
-{
-       VkQueueFlags    queueFlags;
-       uint32_t                queueCount;
-       uint32_t                timestampValidBits;
-       VkExtent3D              minImageTransferGranularity;
-};
-
-struct VkDeviceQueueCreateInfo
-{
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkDeviceQueueCreateFlags        flags;
-       uint32_t                                        queueFamilyIndex;
-       uint32_t                                        queueCount;
-       const float*                            pQueuePriorities;
-};
-
-struct VkDeviceCreateInfo
-{
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkDeviceCreateFlags                             flags;
-       uint32_t                                                queueCreateInfoCount;
-       const VkDeviceQueueCreateInfo*  pQueueCreateInfos;
-       uint32_t                                                enabledLayerCount;
-       const char* const*                              ppEnabledLayerNames;
-       uint32_t                                                enabledExtensionCount;
-       const char* const*                              ppEnabledExtensionNames;
-       const VkPhysicalDeviceFeatures* pEnabledFeatures;
-};
-
-struct VkExtensionProperties
-{
-       char            extensionName[VK_MAX_EXTENSION_NAME_SIZE];
-       uint32_t        specVersion;
-};
-
-struct VkLayerProperties
-{
-       char            layerName[VK_MAX_EXTENSION_NAME_SIZE];
-       uint32_t        specVersion;
-       uint32_t        implementationVersion;
-       char            description[VK_MAX_DESCRIPTION_SIZE];
-};
-
-struct VkSubmitInfo
-{
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       uint32_t                                        waitSemaphoreCount;
-       const VkSemaphore*                      pWaitSemaphores;
-       const VkPipelineStageFlags*     pWaitDstStageMask;
-       uint32_t                                        commandBufferCount;
-       const VkCommandBuffer*          pCommandBuffers;
-       uint32_t                                        signalSemaphoreCount;
-       const VkSemaphore*                      pSignalSemaphores;
-};
-
-struct VkMappedMemoryRange
-{
-       VkStructureType sType;
-       const void*             pNext;
-       VkDeviceMemory  memory;
-       VkDeviceSize    offset;
-       VkDeviceSize    size;
-};
-
-struct VkMemoryAllocateInfo
-{
-       VkStructureType sType;
-       const void*             pNext;
-       VkDeviceSize    allocationSize;
-       uint32_t                memoryTypeIndex;
-};
-
-struct VkMemoryRequirements
-{
-       VkDeviceSize    size;
-       VkDeviceSize    alignment;
-       uint32_t                memoryTypeBits;
-};
-
-struct VkSparseMemoryBind
-{
-       VkDeviceSize                    resourceOffset;
-       VkDeviceSize                    size;
-       VkDeviceMemory                  memory;
-       VkDeviceSize                    memoryOffset;
-       VkSparseMemoryBindFlags flags;
-};
-
-struct VkSparseBufferMemoryBindInfo
-{
-       VkBuffer                                        buffer;
-       uint32_t                                        bindCount;
-       const VkSparseMemoryBind*       pBinds;
-};
-
-struct VkSparseImageOpaqueMemoryBindInfo
-{
-       VkImage                                         image;
-       uint32_t                                        bindCount;
-       const VkSparseMemoryBind*       pBinds;
-};
-
-struct VkImageSubresource
-{
-       VkImageAspectFlags      aspectMask;
-       uint32_t                        mipLevel;
-       uint32_t                        arrayLayer;
-};
-
-struct VkSparseImageMemoryBind
-{
-       VkImageSubresource              subresource;
-       VkOffset3D                              offset;
-       VkExtent3D                              extent;
-       VkDeviceMemory                  memory;
-       VkDeviceSize                    memoryOffset;
-       VkSparseMemoryBindFlags flags;
-};
-
-struct VkSparseImageMemoryBindInfo
-{
-       VkImage                                                 image;
-       uint32_t                                                bindCount;
-       const VkSparseImageMemoryBind*  pBinds;
-};
-
-struct VkBindSparseInfo
-{
-       VkStructureType                                                         sType;
-       const void*                                                                     pNext;
-       uint32_t                                                                        waitSemaphoreCount;
-       const VkSemaphore*                                                      pWaitSemaphores;
-       uint32_t                                                                        bufferBindCount;
-       const VkSparseBufferMemoryBindInfo*                     pBufferBinds;
-       uint32_t                                                                        imageOpaqueBindCount;
-       const VkSparseImageOpaqueMemoryBindInfo*        pImageOpaqueBinds;
-       uint32_t                                                                        imageBindCount;
-       const VkSparseImageMemoryBindInfo*                      pImageBinds;
-       uint32_t                                                                        signalSemaphoreCount;
-       const VkSemaphore*                                                      pSignalSemaphores;
-};
-
-struct VkSparseImageFormatProperties
-{
-       VkImageAspectFlags                      aspectMask;
-       VkExtent3D                                      imageGranularity;
-       VkSparseImageFormatFlags        flags;
-};
-
-struct VkSparseImageMemoryRequirements
-{
-       VkSparseImageFormatProperties   formatProperties;
-       uint32_t                                                imageMipTailFirstLod;
-       VkDeviceSize                                    imageMipTailSize;
-       VkDeviceSize                                    imageMipTailOffset;
-       VkDeviceSize                                    imageMipTailStride;
-};
-
-struct VkFenceCreateInfo
-{
-       VkStructureType         sType;
-       const void*                     pNext;
-       VkFenceCreateFlags      flags;
-};
-
-struct VkSemaphoreCreateInfo
-{
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkSemaphoreCreateFlags  flags;
-};
-
-struct VkEventCreateInfo
-{
-       VkStructureType         sType;
-       const void*                     pNext;
-       VkEventCreateFlags      flags;
-};
-
-struct VkQueryPoolCreateInfo
-{
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkQueryPoolCreateFlags                  flags;
-       VkQueryType                                             queryType;
-       uint32_t                                                queryCount;
-       VkQueryPipelineStatisticFlags   pipelineStatistics;
-};
-
-struct VkBufferCreateInfo
-{
-       VkStructureType         sType;
-       const void*                     pNext;
-       VkBufferCreateFlags     flags;
-       VkDeviceSize            size;
-       VkBufferUsageFlags      usage;
-       VkSharingMode           sharingMode;
-       uint32_t                        queueFamilyIndexCount;
-       const uint32_t*         pQueueFamilyIndices;
-};
-
-struct VkBufferViewCreateInfo
-{
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkBufferViewCreateFlags flags;
-       VkBuffer                                buffer;
-       VkFormat                                format;
-       VkDeviceSize                    offset;
-       VkDeviceSize                    range;
-};
-
-struct VkImageCreateInfo
-{
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkImageCreateFlags              flags;
-       VkImageType                             imageType;
-       VkFormat                                format;
-       VkExtent3D                              extent;
-       uint32_t                                mipLevels;
-       uint32_t                                arrayLayers;
-       VkSampleCountFlagBits   samples;
-       VkImageTiling                   tiling;
-       VkImageUsageFlags               usage;
-       VkSharingMode                   sharingMode;
-       uint32_t                                queueFamilyIndexCount;
-       const uint32_t*                 pQueueFamilyIndices;
-       VkImageLayout                   initialLayout;
-};
-
-struct VkSubresourceLayout
-{
-       VkDeviceSize    offset;
-       VkDeviceSize    size;
-       VkDeviceSize    rowPitch;
-       VkDeviceSize    arrayPitch;
-       VkDeviceSize    depthPitch;
-};
-
-struct VkComponentMapping
-{
-       VkComponentSwizzle      r;
-       VkComponentSwizzle      g;
-       VkComponentSwizzle      b;
-       VkComponentSwizzle      a;
-};
-
-struct VkImageViewCreateInfo
-{
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkImageViewCreateFlags  flags;
-       VkImage                                 image;
-       VkImageViewType                 viewType;
-       VkFormat                                format;
-       VkComponentMapping              components;
-       VkImageSubresourceRange subresourceRange;
-};
-
-struct VkShaderModuleCreateInfo
-{
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkShaderModuleCreateFlags       flags;
-       size_t                                          codeSize;
-       const uint32_t*                         pCode;
-};
-
-struct VkPipelineCacheCreateInfo
-{
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkPipelineCacheCreateFlags      flags;
-       size_t                                          initialDataSize;
-       const void*                                     pInitialData;
-};
-
-struct VkSpecializationMapEntry
-{
-       uint32_t        constantID;
-       uint32_t        offset;
-       size_t          size;
-};
-
-struct VkSpecializationInfo
-{
-       uint32_t                                                mapEntryCount;
-       const VkSpecializationMapEntry* pMapEntries;
-       size_t                                                  dataSize;
-       const void*                                             pData;
-};
-
-struct VkPipelineShaderStageCreateInfo
-{
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkPipelineShaderStageCreateFlags        flags;
-       VkShaderStageFlagBits                           stage;
-       VkShaderModule                                          module;
-       const char*                                                     pName;
-       const VkSpecializationInfo*                     pSpecializationInfo;
-};
-
-struct VkComputePipelineCreateInfo
-{
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkPipelineCreateFlags                   flags;
-       VkPipelineShaderStageCreateInfo stage;
-       VkPipelineLayout                                layout;
-       VkPipeline                                              basePipelineHandle;
-       int32_t                                                 basePipelineIndex;
-};
-
-struct VkVertexInputBindingDescription
-{
-       uint32_t                        binding;
-       uint32_t                        stride;
-       VkVertexInputRate       inputRate;
-};
-
-struct VkVertexInputAttributeDescription
-{
-       uint32_t        location;
-       uint32_t        binding;
-       VkFormat        format;
-       uint32_t        offset;
-};
-
-struct VkPipelineVertexInputStateCreateInfo
-{
-       VkStructureType                                                         sType;
-       const void*                                                                     pNext;
-       VkPipelineVertexInputStateCreateFlags           flags;
-       uint32_t                                                                        vertexBindingDescriptionCount;
-       const VkVertexInputBindingDescription*          pVertexBindingDescriptions;
-       uint32_t                                                                        vertexAttributeDescriptionCount;
-       const VkVertexInputAttributeDescription*        pVertexAttributeDescriptions;
-};
-
-struct VkPipelineInputAssemblyStateCreateInfo
-{
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkPipelineInputAssemblyStateCreateFlags flags;
-       VkPrimitiveTopology                                             topology;
-       VkBool32                                                                primitiveRestartEnable;
-};
-
-struct VkPipelineTessellationStateCreateInfo
-{
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkPipelineTessellationStateCreateFlags  flags;
-       uint32_t                                                                patchControlPoints;
-};
-
-struct VkViewport
-{
-       float   x;
-       float   y;
-       float   width;
-       float   height;
-       float   minDepth;
-       float   maxDepth;
-};
-
-struct VkPipelineViewportStateCreateInfo
-{
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkPipelineViewportStateCreateFlags      flags;
-       uint32_t                                                        viewportCount;
-       const VkViewport*                                       pViewports;
-       uint32_t                                                        scissorCount;
-       const VkRect2D*                                         pScissors;
-};
-
-struct VkPipelineRasterizationStateCreateInfo
-{
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkPipelineRasterizationStateCreateFlags flags;
-       VkBool32                                                                depthClampEnable;
-       VkBool32                                                                rasterizerDiscardEnable;
-       VkPolygonMode                                                   polygonMode;
-       VkCullModeFlags                                                 cullMode;
-       VkFrontFace                                                             frontFace;
-       VkBool32                                                                depthBiasEnable;
-       float                                                                   depthBiasConstantFactor;
-       float                                                                   depthBiasClamp;
-       float                                                                   depthBiasSlopeFactor;
-       float                                                                   lineWidth;
-};
-
-struct VkPipelineMultisampleStateCreateInfo
-{
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkPipelineMultisampleStateCreateFlags   flags;
-       VkSampleCountFlagBits                                   rasterizationSamples;
-       VkBool32                                                                sampleShadingEnable;
-       float                                                                   minSampleShading;
-       const VkSampleMask*                                             pSampleMask;
-       VkBool32                                                                alphaToCoverageEnable;
-       VkBool32                                                                alphaToOneEnable;
-};
-
-struct VkStencilOpState
-{
-       VkStencilOp     failOp;
-       VkStencilOp     passOp;
-       VkStencilOp     depthFailOp;
-       VkCompareOp     compareOp;
-       uint32_t        compareMask;
-       uint32_t        writeMask;
-       uint32_t        reference;
-};
-
-struct VkPipelineDepthStencilStateCreateInfo
-{
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkPipelineDepthStencilStateCreateFlags  flags;
-       VkBool32                                                                depthTestEnable;
-       VkBool32                                                                depthWriteEnable;
-       VkCompareOp                                                             depthCompareOp;
-       VkBool32                                                                depthBoundsTestEnable;
-       VkBool32                                                                stencilTestEnable;
-       VkStencilOpState                                                front;
-       VkStencilOpState                                                back;
-       float                                                                   minDepthBounds;
-       float                                                                   maxDepthBounds;
-};
-
-struct VkPipelineColorBlendAttachmentState
-{
-       VkBool32                                blendEnable;
-       VkBlendFactor                   srcColorBlendFactor;
-       VkBlendFactor                   dstColorBlendFactor;
-       VkBlendOp                               colorBlendOp;
-       VkBlendFactor                   srcAlphaBlendFactor;
-       VkBlendFactor                   dstAlphaBlendFactor;
-       VkBlendOp                               alphaBlendOp;
-       VkColorComponentFlags   colorWriteMask;
-};
-
-struct VkPipelineColorBlendStateCreateInfo
-{
-       VkStructureType                                                         sType;
-       const void*                                                                     pNext;
-       VkPipelineColorBlendStateCreateFlags            flags;
-       VkBool32                                                                        logicOpEnable;
-       VkLogicOp                                                                       logicOp;
-       uint32_t                                                                        attachmentCount;
-       const VkPipelineColorBlendAttachmentState*      pAttachments;
-       float                                                                           blendConstants[4];
-};
-
-struct VkPipelineDynamicStateCreateInfo
-{
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkPipelineDynamicStateCreateFlags       flags;
-       uint32_t                                                        dynamicStateCount;
-       const VkDynamicState*                           pDynamicStates;
-};
-
-struct VkGraphicsPipelineCreateInfo
-{
-       VkStructureType                                                                 sType;
-       const void*                                                                             pNext;
-       VkPipelineCreateFlags                                                   flags;
-       uint32_t                                                                                stageCount;
-       const VkPipelineShaderStageCreateInfo*                  pStages;
-       const VkPipelineVertexInputStateCreateInfo*             pVertexInputState;
-       const VkPipelineInputAssemblyStateCreateInfo*   pInputAssemblyState;
-       const VkPipelineTessellationStateCreateInfo*    pTessellationState;
-       const VkPipelineViewportStateCreateInfo*                pViewportState;
-       const VkPipelineRasterizationStateCreateInfo*   pRasterizationState;
-       const VkPipelineMultisampleStateCreateInfo*             pMultisampleState;
-       const VkPipelineDepthStencilStateCreateInfo*    pDepthStencilState;
-       const VkPipelineColorBlendStateCreateInfo*              pColorBlendState;
-       const VkPipelineDynamicStateCreateInfo*                 pDynamicState;
-       VkPipelineLayout                                                                layout;
-       VkRenderPass                                                                    renderPass;
-       uint32_t                                                                                subpass;
-       VkPipeline                                                                              basePipelineHandle;
-       int32_t                                                                                 basePipelineIndex;
-};
-
-struct VkPushConstantRange
-{
-       VkShaderStageFlags      stageFlags;
-       uint32_t                        offset;
-       uint32_t                        size;
-};
-
-struct VkPipelineLayoutCreateInfo
-{
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkPipelineLayoutCreateFlags             flags;
-       uint32_t                                                setLayoutCount;
-       const VkDescriptorSetLayout*    pSetLayouts;
-       uint32_t                                                pushConstantRangeCount;
-       const VkPushConstantRange*              pPushConstantRanges;
-};
-
-struct VkSamplerCreateInfo
-{
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkSamplerCreateFlags    flags;
-       VkFilter                                magFilter;
-       VkFilter                                minFilter;
-       VkSamplerMipmapMode             mipmapMode;
-       VkSamplerAddressMode    addressModeU;
-       VkSamplerAddressMode    addressModeV;
-       VkSamplerAddressMode    addressModeW;
-       float                                   mipLodBias;
-       VkBool32                                anisotropyEnable;
-       float                                   maxAnisotropy;
-       VkBool32                                compareEnable;
-       VkCompareOp                             compareOp;
-       float                                   minLod;
-       float                                   maxLod;
-       VkBorderColor                   borderColor;
-       VkBool32                                unnormalizedCoordinates;
-};
-
-struct VkCopyDescriptorSet
+struct VkCopyDescriptorSet
 {
        VkStructureType sType;
        const void*             pNext;
@@ -933,197 +254,206 @@ struct VkCopyDescriptorSet
        uint32_t                descriptorCount;
 };
 
-struct VkDescriptorBufferInfo
+struct VkBufferCreateInfo
 {
-       VkBuffer                buffer;
-       VkDeviceSize    offset;
-       VkDeviceSize    range;
+       VkStructureType         sType;
+       const void*                     pNext;
+       VkBufferCreateFlags     flags;
+       VkDeviceSize            size;
+       VkBufferUsageFlags      usage;
+       VkSharingMode           sharingMode;
+       uint32_t                        queueFamilyIndexCount;
+       const uint32_t*         pQueueFamilyIndices;
 };
 
-struct VkDescriptorImageInfo
+struct VkBufferViewCreateInfo
 {
-       VkSampler               sampler;
-       VkImageView             imageView;
-       VkImageLayout   imageLayout;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkBufferViewCreateFlags flags;
+       VkBuffer                                buffer;
+       VkFormat                                format;
+       VkDeviceSize                    offset;
+       VkDeviceSize                    range;
 };
 
-struct VkDescriptorPoolSize
+struct VkImageSubresource
 {
-       VkDescriptorType        type;
-       uint32_t                        descriptorCount;
+       VkImageAspectFlags      aspectMask;
+       uint32_t                        mipLevel;
+       uint32_t                        arrayLayer;
 };
 
-struct VkDescriptorPoolCreateInfo
+struct VkImageSubresourceLayers
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkDescriptorPoolCreateFlags     flags;
-       uint32_t                                        maxSets;
-       uint32_t                                        poolSizeCount;
-       const VkDescriptorPoolSize*     pPoolSizes;
+       VkImageAspectFlags      aspectMask;
+       uint32_t                        mipLevel;
+       uint32_t                        baseArrayLayer;
+       uint32_t                        layerCount;
 };
 
-struct VkDescriptorSetAllocateInfo
+struct VkImageSubresourceRange
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkDescriptorPool                                descriptorPool;
-       uint32_t                                                descriptorSetCount;
-       const VkDescriptorSetLayout*    pSetLayouts;
+       VkImageAspectFlags      aspectMask;
+       uint32_t                        baseMipLevel;
+       uint32_t                        levelCount;
+       uint32_t                        baseArrayLayer;
+       uint32_t                        layerCount;
 };
 
-struct VkDescriptorSetLayoutBinding
+struct VkMemoryBarrier
 {
-       uint32_t                        binding;
-       VkDescriptorType        descriptorType;
-       uint32_t                        descriptorCount;
-       VkShaderStageFlags      stageFlags;
-       const VkSampler*        pImmutableSamplers;
+       VkStructureType sType;
+       const void*             pNext;
+       VkAccessFlags   srcAccessMask;
+       VkAccessFlags   dstAccessMask;
 };
 
-struct VkDescriptorSetLayoutCreateInfo
+struct VkBufferMemoryBarrier
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkDescriptorSetLayoutCreateFlags        flags;
-       uint32_t                                                        bindingCount;
-       const VkDescriptorSetLayoutBinding*     pBindings;
+       VkStructureType sType;
+       const void*             pNext;
+       VkAccessFlags   srcAccessMask;
+       VkAccessFlags   dstAccessMask;
+       uint32_t                srcQueueFamilyIndex;
+       uint32_t                dstQueueFamilyIndex;
+       VkBuffer                buffer;
+       VkDeviceSize    offset;
+       VkDeviceSize    size;
 };
 
-struct VkWriteDescriptorSet
+struct VkImageMemoryBarrier
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkDescriptorSet                                 dstSet;
-       uint32_t                                                dstBinding;
-       uint32_t                                                dstArrayElement;
-       uint32_t                                                descriptorCount;
-       VkDescriptorType                                descriptorType;
-       const VkDescriptorImageInfo*    pImageInfo;
-       const VkDescriptorBufferInfo*   pBufferInfo;
-       const VkBufferView*                             pTexelBufferView;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkAccessFlags                   srcAccessMask;
+       VkAccessFlags                   dstAccessMask;
+       VkImageLayout                   oldLayout;
+       VkImageLayout                   newLayout;
+       uint32_t                                srcQueueFamilyIndex;
+       uint32_t                                dstQueueFamilyIndex;
+       VkImage                                 image;
+       VkImageSubresourceRange subresourceRange;
 };
 
-struct VkAttachmentDescription
+struct VkImageCreateInfo
 {
-       VkAttachmentDescriptionFlags    flags;
-       VkFormat                                                format;
-       VkSampleCountFlagBits                   samples;
-       VkAttachmentLoadOp                              loadOp;
-       VkAttachmentStoreOp                             storeOp;
-       VkAttachmentLoadOp                              stencilLoadOp;
-       VkAttachmentStoreOp                             stencilStoreOp;
-       VkImageLayout                                   initialLayout;
-       VkImageLayout                                   finalLayout;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkImageCreateFlags              flags;
+       VkImageType                             imageType;
+       VkFormat                                format;
+       VkExtent3D                              extent;
+       uint32_t                                mipLevels;
+       uint32_t                                arrayLayers;
+       VkSampleCountFlagBits   samples;
+       VkImageTiling                   tiling;
+       VkImageUsageFlags               usage;
+       VkSharingMode                   sharingMode;
+       uint32_t                                queueFamilyIndexCount;
+       const uint32_t*                 pQueueFamilyIndices;
+       VkImageLayout                   initialLayout;
 };
 
-struct VkAttachmentReference
+struct VkSubresourceLayout
 {
-       uint32_t                attachment;
-       VkImageLayout   layout;
+       VkDeviceSize    offset;
+       VkDeviceSize    size;
+       VkDeviceSize    rowPitch;
+       VkDeviceSize    arrayPitch;
+       VkDeviceSize    depthPitch;
 };
 
-struct VkFramebufferCreateInfo
+struct VkImageViewCreateInfo
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkFramebufferCreateFlags        flags;
-       VkRenderPass                            renderPass;
-       uint32_t                                        attachmentCount;
-       const VkImageView*                      pAttachments;
-       uint32_t                                        width;
-       uint32_t                                        height;
-       uint32_t                                        layers;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkImageViewCreateFlags  flags;
+       VkImage                                 image;
+       VkImageViewType                 viewType;
+       VkFormat                                format;
+       VkComponentMapping              components;
+       VkImageSubresourceRange subresourceRange;
 };
 
-struct VkSubpassDescription
+struct VkBufferCopy
 {
-       VkSubpassDescriptionFlags               flags;
-       VkPipelineBindPoint                             pipelineBindPoint;
-       uint32_t                                                inputAttachmentCount;
-       const VkAttachmentReference*    pInputAttachments;
-       uint32_t                                                colorAttachmentCount;
-       const VkAttachmentReference*    pColorAttachments;
-       const VkAttachmentReference*    pResolveAttachments;
-       const VkAttachmentReference*    pDepthStencilAttachment;
-       uint32_t                                                preserveAttachmentCount;
-       const uint32_t*                                 pPreserveAttachments;
+       VkDeviceSize    srcOffset;
+       VkDeviceSize    dstOffset;
+       VkDeviceSize    size;
 };
 
-struct VkSubpassDependency
+struct VkSparseMemoryBind
 {
-       uint32_t                                srcSubpass;
-       uint32_t                                dstSubpass;
-       VkPipelineStageFlags    srcStageMask;
-       VkPipelineStageFlags    dstStageMask;
-       VkAccessFlags                   srcAccessMask;
-       VkAccessFlags                   dstAccessMask;
-       VkDependencyFlags               dependencyFlags;
+       VkDeviceSize                    resourceOffset;
+       VkDeviceSize                    size;
+       VkDeviceMemory                  memory;
+       VkDeviceSize                    memoryOffset;
+       VkSparseMemoryBindFlags flags;
 };
 
-struct VkRenderPassCreateInfo
+struct VkSparseImageMemoryBind
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkRenderPassCreateFlags                 flags;
-       uint32_t                                                attachmentCount;
-       const VkAttachmentDescription*  pAttachments;
-       uint32_t                                                subpassCount;
-       const VkSubpassDescription*             pSubpasses;
-       uint32_t                                                dependencyCount;
-       const VkSubpassDependency*              pDependencies;
+       VkImageSubresource              subresource;
+       VkOffset3D                              offset;
+       VkExtent3D                              extent;
+       VkDeviceMemory                  memory;
+       VkDeviceSize                    memoryOffset;
+       VkSparseMemoryBindFlags flags;
 };
 
-struct VkCommandPoolCreateInfo
-{
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkCommandPoolCreateFlags        flags;
-       uint32_t                                        queueFamilyIndex;
+struct VkSparseBufferMemoryBindInfo
+{
+       VkBuffer                                        buffer;
+       uint32_t                                        bindCount;
+       const VkSparseMemoryBind*       pBinds;
 };
 
-struct VkCommandBufferAllocateInfo
+struct VkSparseImageOpaqueMemoryBindInfo
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkCommandPool                   commandPool;
-       VkCommandBufferLevel    level;
-       uint32_t                                commandBufferCount;
+       VkImage                                         image;
+       uint32_t                                        bindCount;
+       const VkSparseMemoryBind*       pBinds;
 };
 
-struct VkCommandBufferInheritanceInfo
+struct VkSparseImageMemoryBindInfo
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkRenderPass                                    renderPass;
-       uint32_t                                                subpass;
-       VkFramebuffer                                   framebuffer;
-       VkBool32                                                occlusionQueryEnable;
-       VkQueryControlFlags                             queryFlags;
-       VkQueryPipelineStatisticFlags   pipelineStatistics;
+       VkImage                                                 image;
+       uint32_t                                                bindCount;
+       const VkSparseImageMemoryBind*  pBinds;
 };
 
-struct VkCommandBufferBeginInfo
+struct VkBindSparseInfo
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkCommandBufferUsageFlags                               flags;
-       const VkCommandBufferInheritanceInfo*   pInheritanceInfo;
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       uint32_t                                                                        waitSemaphoreCount;
+       const VkSemaphore*                                                      pWaitSemaphores;
+       uint32_t                                                                        bufferBindCount;
+       const VkSparseBufferMemoryBindInfo*                     pBufferBinds;
+       uint32_t                                                                        imageOpaqueBindCount;
+       const VkSparseImageOpaqueMemoryBindInfo*        pImageOpaqueBinds;
+       uint32_t                                                                        imageBindCount;
+       const VkSparseImageMemoryBindInfo*                      pImageBinds;
+       uint32_t                                                                        signalSemaphoreCount;
+       const VkSemaphore*                                                      pSignalSemaphores;
 };
 
-struct VkBufferCopy
+struct VkImageCopy
 {
-       VkDeviceSize    srcOffset;
-       VkDeviceSize    dstOffset;
-       VkDeviceSize    size;
+       VkImageSubresourceLayers        srcSubresource;
+       VkOffset3D                                      srcOffset;
+       VkImageSubresourceLayers        dstSubresource;
+       VkOffset3D                                      dstOffset;
+       VkExtent3D                                      extent;
 };
 
-struct VkImageSubresourceLayers
+struct VkImageBlit
 {
-       VkImageAspectFlags      aspectMask;
-       uint32_t                        mipLevel;
-       uint32_t                        baseArrayLayer;
-       uint32_t                        layerCount;
+       VkImageSubresourceLayers        srcSubresource;
+       VkOffset3D                                      srcOffsets[2];
+       VkImageSubresourceLayers        dstSubresource;
+       VkOffset3D                                      dstOffsets[2];
 };
 
 struct VkBufferImageCopy
@@ -1136,1872 +466,1879 @@ struct VkBufferImageCopy
        VkExtent3D                                      imageExtent;
 };
 
-union VkClearColorValue
+struct VkImageResolve
 {
-       float           float32[4];
-       int32_t         int32[4];
-       uint32_t        uint32[4];
+       VkImageSubresourceLayers        srcSubresource;
+       VkOffset3D                                      srcOffset;
+       VkImageSubresourceLayers        dstSubresource;
+       VkOffset3D                                      dstOffset;
+       VkExtent3D                                      extent;
 };
 
-struct VkClearDepthStencilValue
+struct VkShaderModuleCreateInfo
 {
-       float           depth;
-       uint32_t        stencil;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkShaderModuleCreateFlags       flags;
+       size_t                                          codeSize;
+       const uint32_t*                         pCode;
 };
 
-union VkClearValue
+struct VkDescriptorSetLayoutBinding
 {
-       VkClearColorValue                       color;
-       VkClearDepthStencilValue        depthStencil;
+       uint32_t                        binding;
+       VkDescriptorType        descriptorType;
+       uint32_t                        descriptorCount;
+       VkShaderStageFlags      stageFlags;
+       const VkSampler*        pImmutableSamplers;
 };
 
-struct VkClearAttachment
+struct VkDescriptorSetLayoutCreateInfo
 {
-       VkImageAspectFlags      aspectMask;
-       uint32_t                        colorAttachment;
-       VkClearValue            clearValue;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkDescriptorSetLayoutCreateFlags        flags;
+       uint32_t                                                        bindingCount;
+       const VkDescriptorSetLayoutBinding*     pBindings;
 };
 
-struct VkClearRect
+struct VkDescriptorPoolSize
 {
-       VkRect2D        rect;
-       uint32_t        baseArrayLayer;
-       uint32_t        layerCount;
+       VkDescriptorType        type;
+       uint32_t                        descriptorCount;
 };
 
-struct VkImageBlit
+struct VkDescriptorPoolCreateInfo
 {
-       VkImageSubresourceLayers        srcSubresource;
-       VkOffset3D                                      srcOffsets[2];
-       VkImageSubresourceLayers        dstSubresource;
-       VkOffset3D                                      dstOffsets[2];
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkDescriptorPoolCreateFlags     flags;
+       uint32_t                                        maxSets;
+       uint32_t                                        poolSizeCount;
+       const VkDescriptorPoolSize*     pPoolSizes;
 };
 
-struct VkImageCopy
+struct VkDescriptorSetAllocateInfo
 {
-       VkImageSubresourceLayers        srcSubresource;
-       VkOffset3D                                      srcOffset;
-       VkImageSubresourceLayers        dstSubresource;
-       VkOffset3D                                      dstOffset;
-       VkExtent3D                                      extent;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkDescriptorPool                                descriptorPool;
+       uint32_t                                                descriptorSetCount;
+       const VkDescriptorSetLayout*    pSetLayouts;
 };
 
-struct VkImageResolve
+struct VkSpecializationMapEntry
 {
-       VkImageSubresourceLayers        srcSubresource;
-       VkOffset3D                                      srcOffset;
-       VkImageSubresourceLayers        dstSubresource;
-       VkOffset3D                                      dstOffset;
-       VkExtent3D                                      extent;
+       uint32_t        constantID;
+       uint32_t        offset;
+       size_t          size;
 };
 
-struct VkRenderPassBeginInfo
+struct VkSpecializationInfo
 {
-       VkStructureType         sType;
-       const void*                     pNext;
-       VkRenderPass            renderPass;
-       VkFramebuffer           framebuffer;
-       VkRect2D                        renderArea;
-       uint32_t                        clearValueCount;
-       const VkClearValue*     pClearValues;
+       uint32_t                                                mapEntryCount;
+       const VkSpecializationMapEntry* pMapEntries;
+       size_t                                                  dataSize;
+       const void*                                             pData;
 };
 
-struct VkPhysicalDeviceSubgroupProperties
+struct VkPipelineShaderStageCreateInfo
 {
-       VkStructureType                 sType;
-       void*                                   pNext;
-       uint32_t                                subgroupSize;
-       VkShaderStageFlags              supportedStages;
-       VkSubgroupFeatureFlags  supportedOperations;
-       VkBool32                                quadOperationsInAllStages;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkPipelineShaderStageCreateFlags        flags;
+       VkShaderStageFlagBits                           stage;
+       VkShaderModule                                          module;
+       const char*                                                     pName;
+       const VkSpecializationInfo*                     pSpecializationInfo;
 };
 
-struct VkBindBufferMemoryInfo
+struct VkComputePipelineCreateInfo
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkBuffer                buffer;
-       VkDeviceMemory  memory;
-       VkDeviceSize    memoryOffset;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkPipelineCreateFlags                   flags;
+       VkPipelineShaderStageCreateInfo stage;
+       VkPipelineLayout                                layout;
+       VkPipeline                                              basePipelineHandle;
+       int32_t                                                 basePipelineIndex;
 };
 
-struct VkBindImageMemoryInfo
+struct VkVertexInputBindingDescription
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkImage                 image;
-       VkDeviceMemory  memory;
-       VkDeviceSize    memoryOffset;
+       uint32_t                        binding;
+       uint32_t                        stride;
+       VkVertexInputRate       inputRate;
 };
 
-struct VkPhysicalDevice16BitStorageFeatures
+struct VkVertexInputAttributeDescription
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                storageBuffer16BitAccess;
-       VkBool32                uniformAndStorageBuffer16BitAccess;
-       VkBool32                storagePushConstant16;
-       VkBool32                storageInputOutput16;
+       uint32_t        location;
+       uint32_t        binding;
+       VkFormat        format;
+       uint32_t        offset;
 };
 
-struct VkMemoryDedicatedRequirements
+struct VkPipelineVertexInputStateCreateInfo
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                prefersDedicatedAllocation;
-       VkBool32                requiresDedicatedAllocation;
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       VkPipelineVertexInputStateCreateFlags           flags;
+       uint32_t                                                                        vertexBindingDescriptionCount;
+       const VkVertexInputBindingDescription*          pVertexBindingDescriptions;
+       uint32_t                                                                        vertexAttributeDescriptionCount;
+       const VkVertexInputAttributeDescription*        pVertexAttributeDescriptions;
 };
 
-struct VkMemoryDedicatedAllocateInfo
+struct VkPipelineInputAssemblyStateCreateInfo
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkImage                 image;
-       VkBuffer                buffer;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkPipelineInputAssemblyStateCreateFlags flags;
+       VkPrimitiveTopology                                             topology;
+       VkBool32                                                                primitiveRestartEnable;
 };
 
-struct VkMemoryAllocateFlagsInfo
+struct VkPipelineTessellationStateCreateInfo
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkMemoryAllocateFlags   flags;
-       uint32_t                                deviceMask;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkPipelineTessellationStateCreateFlags  flags;
+       uint32_t                                                                patchControlPoints;
 };
 
-struct VkDeviceGroupRenderPassBeginInfo
+struct VkPipelineViewportStateCreateInfo
 {
-       VkStructureType sType;
-       const void*             pNext;
-       uint32_t                deviceMask;
-       uint32_t                deviceRenderAreaCount;
-       const VkRect2D* pDeviceRenderAreas;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkPipelineViewportStateCreateFlags      flags;
+       uint32_t                                                        viewportCount;
+       const VkViewport*                                       pViewports;
+       uint32_t                                                        scissorCount;
+       const VkRect2D*                                         pScissors;
 };
 
-struct VkDeviceGroupCommandBufferBeginInfo
+struct VkPipelineRasterizationStateCreateInfo
 {
-       VkStructureType sType;
-       const void*             pNext;
-       uint32_t                deviceMask;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkPipelineRasterizationStateCreateFlags flags;
+       VkBool32                                                                depthClampEnable;
+       VkBool32                                                                rasterizerDiscardEnable;
+       VkPolygonMode                                                   polygonMode;
+       VkCullModeFlags                                                 cullMode;
+       VkFrontFace                                                             frontFace;
+       VkBool32                                                                depthBiasEnable;
+       float                                                                   depthBiasConstantFactor;
+       float                                                                   depthBiasClamp;
+       float                                                                   depthBiasSlopeFactor;
+       float                                                                   lineWidth;
 };
 
-struct VkDeviceGroupSubmitInfo
+struct VkPipelineMultisampleStateCreateInfo
 {
-       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;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkPipelineMultisampleStateCreateFlags   flags;
+       VkSampleCountFlagBits                                   rasterizationSamples;
+       VkBool32                                                                sampleShadingEnable;
+       float                                                                   minSampleShading;
+       const VkSampleMask*                                             pSampleMask;
+       VkBool32                                                                alphaToCoverageEnable;
+       VkBool32                                                                alphaToOneEnable;
 };
 
-struct VkDeviceGroupBindSparseInfo
+struct VkPipelineColorBlendAttachmentState
 {
-       VkStructureType sType;
-       const void*             pNext;
-       uint32_t                resourceDeviceIndex;
-       uint32_t                memoryDeviceIndex;
+       VkBool32                                blendEnable;
+       VkBlendFactor                   srcColorBlendFactor;
+       VkBlendFactor                   dstColorBlendFactor;
+       VkBlendOp                               colorBlendOp;
+       VkBlendFactor                   srcAlphaBlendFactor;
+       VkBlendFactor                   dstAlphaBlendFactor;
+       VkBlendOp                               alphaBlendOp;
+       VkColorComponentFlags   colorWriteMask;
 };
 
-struct VkBindBufferMemoryDeviceGroupInfo
+struct VkPipelineColorBlendStateCreateInfo
 {
-       VkStructureType sType;
-       const void*             pNext;
-       uint32_t                deviceIndexCount;
-       const uint32_t* pDeviceIndices;
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       VkPipelineColorBlendStateCreateFlags            flags;
+       VkBool32                                                                        logicOpEnable;
+       VkLogicOp                                                                       logicOp;
+       uint32_t                                                                        attachmentCount;
+       const VkPipelineColorBlendAttachmentState*      pAttachments;
+       float                                                                           blendConstants[4];
 };
 
-struct VkBindImageMemoryDeviceGroupInfo
+struct VkPipelineDynamicStateCreateInfo
 {
-       VkStructureType sType;
-       const void*             pNext;
-       uint32_t                deviceIndexCount;
-       const uint32_t* pDeviceIndices;
-       uint32_t                splitInstanceBindRegionCount;
-       const VkRect2D* pSplitInstanceBindRegions;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkPipelineDynamicStateCreateFlags       flags;
+       uint32_t                                                        dynamicStateCount;
+       const VkDynamicState*                           pDynamicStates;
 };
 
-struct VkPhysicalDeviceGroupProperties
+struct VkStencilOpState
 {
-       VkStructureType         sType;
-       void*                           pNext;
-       uint32_t                        physicalDeviceCount;
-       VkPhysicalDevice        physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
-       VkBool32                        subsetAllocation;
+       VkStencilOp     failOp;
+       VkStencilOp     passOp;
+       VkStencilOp     depthFailOp;
+       VkCompareOp     compareOp;
+       uint32_t        compareMask;
+       uint32_t        writeMask;
+       uint32_t        reference;
 };
 
-struct VkDeviceGroupDeviceCreateInfo
+struct VkPipelineDepthStencilStateCreateInfo
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       uint32_t                                physicalDeviceCount;
-       const VkPhysicalDevice* pPhysicalDevices;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkPipelineDepthStencilStateCreateFlags  flags;
+       VkBool32                                                                depthTestEnable;
+       VkBool32                                                                depthWriteEnable;
+       VkCompareOp                                                             depthCompareOp;
+       VkBool32                                                                depthBoundsTestEnable;
+       VkBool32                                                                stencilTestEnable;
+       VkStencilOpState                                                front;
+       VkStencilOpState                                                back;
+       float                                                                   minDepthBounds;
+       float                                                                   maxDepthBounds;
 };
 
-struct VkBufferMemoryRequirementsInfo2
+struct VkGraphicsPipelineCreateInfo
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkBuffer                buffer;
+       VkStructureType                                                                 sType;
+       const void*                                                                             pNext;
+       VkPipelineCreateFlags                                                   flags;
+       uint32_t                                                                                stageCount;
+       const VkPipelineShaderStageCreateInfo*                  pStages;
+       const VkPipelineVertexInputStateCreateInfo*             pVertexInputState;
+       const VkPipelineInputAssemblyStateCreateInfo*   pInputAssemblyState;
+       const VkPipelineTessellationStateCreateInfo*    pTessellationState;
+       const VkPipelineViewportStateCreateInfo*                pViewportState;
+       const VkPipelineRasterizationStateCreateInfo*   pRasterizationState;
+       const VkPipelineMultisampleStateCreateInfo*             pMultisampleState;
+       const VkPipelineDepthStencilStateCreateInfo*    pDepthStencilState;
+       const VkPipelineColorBlendStateCreateInfo*              pColorBlendState;
+       const VkPipelineDynamicStateCreateInfo*                 pDynamicState;
+       VkPipelineLayout                                                                layout;
+       VkRenderPass                                                                    renderPass;
+       uint32_t                                                                                subpass;
+       VkPipeline                                                                              basePipelineHandle;
+       int32_t                                                                                 basePipelineIndex;
 };
 
-struct VkImageMemoryRequirementsInfo2
+struct VkPipelineCacheCreateInfo
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkImage                 image;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkPipelineCacheCreateFlags      flags;
+       size_t                                          initialDataSize;
+       const void*                                     pInitialData;
 };
 
-struct VkImageSparseMemoryRequirementsInfo2
+struct VkPipelineCacheHeaderVersionOne
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkImage                 image;
+       uint32_t                                                headerSize;
+       VkPipelineCacheHeaderVersion    headerVersion;
+       uint32_t                                                vendorID;
+       uint32_t                                                deviceID;
+       uint8_t                                                 pipelineCacheUUID[VK_UUID_SIZE];
 };
 
-struct VkMemoryRequirements2
+struct VkPushConstantRange
 {
-       VkStructureType                 sType;
-       void*                                   pNext;
-       VkMemoryRequirements    memoryRequirements;
+       VkShaderStageFlags      stageFlags;
+       uint32_t                        offset;
+       uint32_t                        size;
 };
 
-struct VkSparseImageMemoryRequirements2
+struct VkPipelineLayoutCreateInfo
 {
        VkStructureType                                 sType;
-       void*                                                   pNext;
-       VkSparseImageMemoryRequirements memoryRequirements;
+       const void*                                             pNext;
+       VkPipelineLayoutCreateFlags             flags;
+       uint32_t                                                setLayoutCount;
+       const VkDescriptorSetLayout*    pSetLayouts;
+       uint32_t                                                pushConstantRangeCount;
+       const VkPushConstantRange*              pPushConstantRanges;
 };
 
-struct VkPhysicalDeviceFeatures2
+struct VkSamplerCreateInfo
 {
-       VkStructureType                         sType;
-       void*                                           pNext;
-       VkPhysicalDeviceFeatures        features;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkSamplerCreateFlags    flags;
+       VkFilter                                magFilter;
+       VkFilter                                minFilter;
+       VkSamplerMipmapMode             mipmapMode;
+       VkSamplerAddressMode    addressModeU;
+       VkSamplerAddressMode    addressModeV;
+       VkSamplerAddressMode    addressModeW;
+       float                                   mipLodBias;
+       VkBool32                                anisotropyEnable;
+       float                                   maxAnisotropy;
+       VkBool32                                compareEnable;
+       VkCompareOp                             compareOp;
+       float                                   minLod;
+       float                                   maxLod;
+       VkBorderColor                   borderColor;
+       VkBool32                                unnormalizedCoordinates;
 };
 
-struct VkPhysicalDeviceProperties2
+struct VkCommandPoolCreateInfo
 {
        VkStructureType                         sType;
-       void*                                           pNext;
-       VkPhysicalDeviceProperties      properties;
+       const void*                                     pNext;
+       VkCommandPoolCreateFlags        flags;
+       uint32_t                                        queueFamilyIndex;
 };
 
-struct VkFormatProperties2
+struct VkCommandBufferAllocateInfo
 {
-       VkStructureType         sType;
-       void*                           pNext;
-       VkFormatProperties      formatProperties;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkCommandPool                   commandPool;
+       VkCommandBufferLevel    level;
+       uint32_t                                commandBufferCount;
 };
 
-struct VkImageFormatProperties2
+struct VkCommandBufferInheritanceInfo
 {
-       VkStructureType                 sType;
-       void*                                   pNext;
-       VkImageFormatProperties imageFormatProperties;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkRenderPass                                    renderPass;
+       uint32_t                                                subpass;
+       VkFramebuffer                                   framebuffer;
+       VkBool32                                                occlusionQueryEnable;
+       VkQueryControlFlags                             queryFlags;
+       VkQueryPipelineStatisticFlags   pipelineStatistics;
 };
 
-struct VkPhysicalDeviceImageFormatInfo2
+struct VkCommandBufferBeginInfo
 {
-       VkStructureType         sType;
-       const void*                     pNext;
-       VkFormat                        format;
-       VkImageType                     type;
-       VkImageTiling           tiling;
-       VkImageUsageFlags       usage;
-       VkImageCreateFlags      flags;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkCommandBufferUsageFlags                               flags;
+       const VkCommandBufferInheritanceInfo*   pInheritanceInfo;
 };
 
-struct VkQueueFamilyProperties2
+union VkClearColorValue
 {
-       VkStructureType                 sType;
-       void*                                   pNext;
-       VkQueueFamilyProperties queueFamilyProperties;
+       float           float32[4];
+       int32_t         int32[4];
+       uint32_t        uint32[4];
 };
 
-struct VkPhysicalDeviceMemoryProperties2
+struct VkClearDepthStencilValue
 {
-       VkStructureType                                         sType;
-       void*                                                           pNext;
-       VkPhysicalDeviceMemoryProperties        memoryProperties;
+       float           depth;
+       uint32_t        stencil;
+};
+
+union VkClearValue
+{
+       VkClearColorValue                       color;
+       VkClearDepthStencilValue        depthStencil;
 };
 
-struct VkSparseImageFormatProperties2
+struct VkRenderPassBeginInfo
 {
-       VkStructureType                                 sType;
-       void*                                                   pNext;
-       VkSparseImageFormatProperties   properties;
+       VkStructureType         sType;
+       const void*                     pNext;
+       VkRenderPass            renderPass;
+       VkFramebuffer           framebuffer;
+       VkRect2D                        renderArea;
+       uint32_t                        clearValueCount;
+       const VkClearValue*     pClearValues;
 };
 
-struct VkPhysicalDeviceSparseImageFormatInfo2
+struct VkClearAttachment
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkFormat                                format;
-       VkImageType                             type;
-       VkSampleCountFlagBits   samples;
-       VkImageUsageFlags               usage;
-       VkImageTiling                   tiling;
+       VkImageAspectFlags      aspectMask;
+       uint32_t                        colorAttachment;
+       VkClearValue            clearValue;
 };
 
-struct VkPhysicalDevicePointClippingProperties
+struct VkAttachmentDescription
 {
-       VkStructureType                 sType;
-       void*                                   pNext;
-       VkPointClippingBehavior pointClippingBehavior;
+       VkAttachmentDescriptionFlags    flags;
+       VkFormat                                                format;
+       VkSampleCountFlagBits                   samples;
+       VkAttachmentLoadOp                              loadOp;
+       VkAttachmentStoreOp                             storeOp;
+       VkAttachmentLoadOp                              stencilLoadOp;
+       VkAttachmentStoreOp                             stencilStoreOp;
+       VkImageLayout                                   initialLayout;
+       VkImageLayout                                   finalLayout;
 };
 
-struct VkInputAttachmentAspectReference
+struct VkAttachmentReference
 {
-       uint32_t                        subpass;
-       uint32_t                        inputAttachmentIndex;
-       VkImageAspectFlags      aspectMask;
+       uint32_t                attachment;
+       VkImageLayout   layout;
 };
 
-struct VkRenderPassInputAttachmentAspectCreateInfo
+struct VkSubpassDescription
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       uint32_t                                                                aspectReferenceCount;
-       const VkInputAttachmentAspectReference* pAspectReferences;
+       VkSubpassDescriptionFlags               flags;
+       VkPipelineBindPoint                             pipelineBindPoint;
+       uint32_t                                                inputAttachmentCount;
+       const VkAttachmentReference*    pInputAttachments;
+       uint32_t                                                colorAttachmentCount;
+       const VkAttachmentReference*    pColorAttachments;
+       const VkAttachmentReference*    pResolveAttachments;
+       const VkAttachmentReference*    pDepthStencilAttachment;
+       uint32_t                                                preserveAttachmentCount;
+       const uint32_t*                                 pPreserveAttachments;
 };
 
-struct VkImageViewUsageCreateInfo
+struct VkSubpassDependency
 {
-       VkStructureType         sType;
-       const void*                     pNext;
-       VkImageUsageFlags       usage;
+       uint32_t                                srcSubpass;
+       uint32_t                                dstSubpass;
+       VkPipelineStageFlags    srcStageMask;
+       VkPipelineStageFlags    dstStageMask;
+       VkAccessFlags                   srcAccessMask;
+       VkAccessFlags                   dstAccessMask;
+       VkDependencyFlags               dependencyFlags;
 };
 
-struct VkPipelineTessellationDomainOriginStateCreateInfo
+struct VkRenderPassCreateInfo
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkTessellationDomainOrigin      domainOrigin;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkRenderPassCreateFlags                 flags;
+       uint32_t                                                attachmentCount;
+       const VkAttachmentDescription*  pAttachments;
+       uint32_t                                                subpassCount;
+       const VkSubpassDescription*             pSubpasses;
+       uint32_t                                                dependencyCount;
+       const VkSubpassDependency*              pDependencies;
 };
 
-struct VkRenderPassMultiviewCreateInfo
+struct VkEventCreateInfo
 {
-       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;
+       VkStructureType         sType;
+       const void*                     pNext;
+       VkEventCreateFlags      flags;
 };
 
-struct VkPhysicalDeviceMultiviewFeatures
+struct VkFenceCreateInfo
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                multiview;
-       VkBool32                multiviewGeometryShader;
-       VkBool32                multiviewTessellationShader;
+       VkStructureType         sType;
+       const void*                     pNext;
+       VkFenceCreateFlags      flags;
 };
 
-struct VkPhysicalDeviceMultiviewProperties
+struct VkPhysicalDeviceFeatures
 {
-       VkStructureType sType;
-       void*                   pNext;
-       uint32_t                maxMultiviewViewCount;
-       uint32_t                maxMultiviewInstanceIndex;
+       VkBool32        robustBufferAccess;
+       VkBool32        fullDrawIndexUint32;
+       VkBool32        imageCubeArray;
+       VkBool32        independentBlend;
+       VkBool32        geometryShader;
+       VkBool32        tessellationShader;
+       VkBool32        sampleRateShading;
+       VkBool32        dualSrcBlend;
+       VkBool32        logicOp;
+       VkBool32        multiDrawIndirect;
+       VkBool32        drawIndirectFirstInstance;
+       VkBool32        depthClamp;
+       VkBool32        depthBiasClamp;
+       VkBool32        fillModeNonSolid;
+       VkBool32        depthBounds;
+       VkBool32        wideLines;
+       VkBool32        largePoints;
+       VkBool32        alphaToOne;
+       VkBool32        multiViewport;
+       VkBool32        samplerAnisotropy;
+       VkBool32        textureCompressionETC2;
+       VkBool32        textureCompressionASTC_LDR;
+       VkBool32        textureCompressionBC;
+       VkBool32        occlusionQueryPrecise;
+       VkBool32        pipelineStatisticsQuery;
+       VkBool32        vertexPipelineStoresAndAtomics;
+       VkBool32        fragmentStoresAndAtomics;
+       VkBool32        shaderTessellationAndGeometryPointSize;
+       VkBool32        shaderImageGatherExtended;
+       VkBool32        shaderStorageImageExtendedFormats;
+       VkBool32        shaderStorageImageMultisample;
+       VkBool32        shaderStorageImageReadWithoutFormat;
+       VkBool32        shaderStorageImageWriteWithoutFormat;
+       VkBool32        shaderUniformBufferArrayDynamicIndexing;
+       VkBool32        shaderSampledImageArrayDynamicIndexing;
+       VkBool32        shaderStorageBufferArrayDynamicIndexing;
+       VkBool32        shaderStorageImageArrayDynamicIndexing;
+       VkBool32        shaderClipDistance;
+       VkBool32        shaderCullDistance;
+       VkBool32        shaderFloat64;
+       VkBool32        shaderInt64;
+       VkBool32        shaderInt16;
+       VkBool32        shaderResourceResidency;
+       VkBool32        shaderResourceMinLod;
+       VkBool32        sparseBinding;
+       VkBool32        sparseResidencyBuffer;
+       VkBool32        sparseResidencyImage2D;
+       VkBool32        sparseResidencyImage3D;
+       VkBool32        sparseResidency2Samples;
+       VkBool32        sparseResidency4Samples;
+       VkBool32        sparseResidency8Samples;
+       VkBool32        sparseResidency16Samples;
+       VkBool32        sparseResidencyAliased;
+       VkBool32        variableMultisampleRate;
+       VkBool32        inheritedQueries;
 };
 
-struct VkPhysicalDeviceVariablePointersFeatures
+struct VkDeviceCreateInfo
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                variablePointersStorageBuffer;
-       VkBool32                variablePointers;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkDeviceCreateFlags                             flags;
+       uint32_t                                                queueCreateInfoCount;
+       const VkDeviceQueueCreateInfo*  pQueueCreateInfos;
+       uint32_t                                                enabledLayerCount;
+       const char* const*                              ppEnabledLayerNames;
+       uint32_t                                                enabledExtensionCount;
+       const char* const*                              ppEnabledExtensionNames;
+       const VkPhysicalDeviceFeatures* pEnabledFeatures;
 };
 
-struct VkPhysicalDeviceProtectedMemoryFeatures
+struct VkPhysicalDeviceSparseProperties
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                protectedMemory;
+       VkBool32        residencyStandard2DBlockShape;
+       VkBool32        residencyStandard2DMultisampleBlockShape;
+       VkBool32        residencyStandard3DBlockShape;
+       VkBool32        residencyAlignedMipSize;
+       VkBool32        residencyNonResidentStrict;
 };
 
-struct VkPhysicalDeviceProtectedMemoryProperties
+struct VkPhysicalDeviceLimits
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                protectedNoFault;
+       uint32_t                        maxImageDimension1D;
+       uint32_t                        maxImageDimension2D;
+       uint32_t                        maxImageDimension3D;
+       uint32_t                        maxImageDimensionCube;
+       uint32_t                        maxImageArrayLayers;
+       uint32_t                        maxTexelBufferElements;
+       uint32_t                        maxUniformBufferRange;
+       uint32_t                        maxStorageBufferRange;
+       uint32_t                        maxPushConstantsSize;
+       uint32_t                        maxMemoryAllocationCount;
+       uint32_t                        maxSamplerAllocationCount;
+       VkDeviceSize            bufferImageGranularity;
+       VkDeviceSize            sparseAddressSpaceSize;
+       uint32_t                        maxBoundDescriptorSets;
+       uint32_t                        maxPerStageDescriptorSamplers;
+       uint32_t                        maxPerStageDescriptorUniformBuffers;
+       uint32_t                        maxPerStageDescriptorStorageBuffers;
+       uint32_t                        maxPerStageDescriptorSampledImages;
+       uint32_t                        maxPerStageDescriptorStorageImages;
+       uint32_t                        maxPerStageDescriptorInputAttachments;
+       uint32_t                        maxPerStageResources;
+       uint32_t                        maxDescriptorSetSamplers;
+       uint32_t                        maxDescriptorSetUniformBuffers;
+       uint32_t                        maxDescriptorSetUniformBuffersDynamic;
+       uint32_t                        maxDescriptorSetStorageBuffers;
+       uint32_t                        maxDescriptorSetStorageBuffersDynamic;
+       uint32_t                        maxDescriptorSetSampledImages;
+       uint32_t                        maxDescriptorSetStorageImages;
+       uint32_t                        maxDescriptorSetInputAttachments;
+       uint32_t                        maxVertexInputAttributes;
+       uint32_t                        maxVertexInputBindings;
+       uint32_t                        maxVertexInputAttributeOffset;
+       uint32_t                        maxVertexInputBindingStride;
+       uint32_t                        maxVertexOutputComponents;
+       uint32_t                        maxTessellationGenerationLevel;
+       uint32_t                        maxTessellationPatchSize;
+       uint32_t                        maxTessellationControlPerVertexInputComponents;
+       uint32_t                        maxTessellationControlPerVertexOutputComponents;
+       uint32_t                        maxTessellationControlPerPatchOutputComponents;
+       uint32_t                        maxTessellationControlTotalOutputComponents;
+       uint32_t                        maxTessellationEvaluationInputComponents;
+       uint32_t                        maxTessellationEvaluationOutputComponents;
+       uint32_t                        maxGeometryShaderInvocations;
+       uint32_t                        maxGeometryInputComponents;
+       uint32_t                        maxGeometryOutputComponents;
+       uint32_t                        maxGeometryOutputVertices;
+       uint32_t                        maxGeometryTotalOutputComponents;
+       uint32_t                        maxFragmentInputComponents;
+       uint32_t                        maxFragmentOutputAttachments;
+       uint32_t                        maxFragmentDualSrcAttachments;
+       uint32_t                        maxFragmentCombinedOutputResources;
+       uint32_t                        maxComputeSharedMemorySize;
+       uint32_t                        maxComputeWorkGroupCount[3];
+       uint32_t                        maxComputeWorkGroupInvocations;
+       uint32_t                        maxComputeWorkGroupSize[3];
+       uint32_t                        subPixelPrecisionBits;
+       uint32_t                        subTexelPrecisionBits;
+       uint32_t                        mipmapPrecisionBits;
+       uint32_t                        maxDrawIndexedIndexValue;
+       uint32_t                        maxDrawIndirectCount;
+       float                           maxSamplerLodBias;
+       float                           maxSamplerAnisotropy;
+       uint32_t                        maxViewports;
+       uint32_t                        maxViewportDimensions[2];
+       float                           viewportBoundsRange[2];
+       uint32_t                        viewportSubPixelBits;
+       size_t                          minMemoryMapAlignment;
+       VkDeviceSize            minTexelBufferOffsetAlignment;
+       VkDeviceSize            minUniformBufferOffsetAlignment;
+       VkDeviceSize            minStorageBufferOffsetAlignment;
+       int32_t                         minTexelOffset;
+       uint32_t                        maxTexelOffset;
+       int32_t                         minTexelGatherOffset;
+       uint32_t                        maxTexelGatherOffset;
+       float                           minInterpolationOffset;
+       float                           maxInterpolationOffset;
+       uint32_t                        subPixelInterpolationOffsetBits;
+       uint32_t                        maxFramebufferWidth;
+       uint32_t                        maxFramebufferHeight;
+       uint32_t                        maxFramebufferLayers;
+       VkSampleCountFlags      framebufferColorSampleCounts;
+       VkSampleCountFlags      framebufferDepthSampleCounts;
+       VkSampleCountFlags      framebufferStencilSampleCounts;
+       VkSampleCountFlags      framebufferNoAttachmentsSampleCounts;
+       uint32_t                        maxColorAttachments;
+       VkSampleCountFlags      sampledImageColorSampleCounts;
+       VkSampleCountFlags      sampledImageIntegerSampleCounts;
+       VkSampleCountFlags      sampledImageDepthSampleCounts;
+       VkSampleCountFlags      sampledImageStencilSampleCounts;
+       VkSampleCountFlags      storageImageSampleCounts;
+       uint32_t                        maxSampleMaskWords;
+       VkBool32                        timestampComputeAndGraphics;
+       float                           timestampPeriod;
+       uint32_t                        maxClipDistances;
+       uint32_t                        maxCullDistances;
+       uint32_t                        maxCombinedClipAndCullDistances;
+       uint32_t                        discreteQueuePriorities;
+       float                           pointSizeRange[2];
+       float                           lineWidthRange[2];
+       float                           pointSizeGranularity;
+       float                           lineWidthGranularity;
+       VkBool32                        strictLines;
+       VkBool32                        standardSampleLocations;
+       VkDeviceSize            optimalBufferCopyOffsetAlignment;
+       VkDeviceSize            optimalBufferCopyRowPitchAlignment;
+       VkDeviceSize            nonCoherentAtomSize;
 };
 
-struct VkDeviceQueueInfo2
+struct VkPhysicalDeviceProperties
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkDeviceQueueCreateFlags        flags;
-       uint32_t                                        queueFamilyIndex;
-       uint32_t                                        queueIndex;
+       uint32_t                                                        apiVersion;
+       uint32_t                                                        driverVersion;
+       uint32_t                                                        vendorID;
+       uint32_t                                                        deviceID;
+       VkPhysicalDeviceType                            deviceType;
+       char                                                            deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
+       uint8_t                                                         pipelineCacheUUID[VK_UUID_SIZE];
+       VkPhysicalDeviceLimits                          limits;
+       VkPhysicalDeviceSparseProperties        sparseProperties;
 };
 
-struct VkProtectedSubmitInfo
+struct VkSemaphoreCreateInfo
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkBool32                protectedSubmit;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkSemaphoreCreateFlags  flags;
 };
 
-struct VkSamplerYcbcrConversionCreateInfo
+struct VkQueryPoolCreateInfo
 {
        VkStructureType                                 sType;
        const void*                                             pNext;
-       VkFormat                                                format;
-       VkSamplerYcbcrModelConversion   ycbcrModel;
-       VkSamplerYcbcrRange                             ycbcrRange;
-       VkComponentMapping                              components;
-       VkChromaLocation                                xChromaOffset;
-       VkChromaLocation                                yChromaOffset;
-       VkFilter                                                chromaFilter;
-       VkBool32                                                forceExplicitReconstruction;
+       VkQueryPoolCreateFlags                  flags;
+       VkQueryType                                             queryType;
+       uint32_t                                                queryCount;
+       VkQueryPipelineStatisticFlags   pipelineStatistics;
 };
 
-struct VkSamplerYcbcrConversionInfo
+struct VkFramebufferCreateInfo
 {
        VkStructureType                         sType;
        const void*                                     pNext;
-       VkSamplerYcbcrConversion        conversion;
-};
-
-struct VkBindImagePlaneMemoryInfo
-{
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkImageAspectFlagBits   planeAspect;
-};
-
-struct VkImagePlaneMemoryRequirementsInfo
-{
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkImageAspectFlagBits   planeAspect;
-};
-
-struct VkPhysicalDeviceSamplerYcbcrConversionFeatures
-{
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                samplerYcbcrConversion;
+       VkFramebufferCreateFlags        flags;
+       VkRenderPass                            renderPass;
+       uint32_t                                        attachmentCount;
+       const VkImageView*                      pAttachments;
+       uint32_t                                        width;
+       uint32_t                                        height;
+       uint32_t                                        layers;
 };
 
-struct VkSamplerYcbcrConversionImageFormatProperties
+struct VkDrawIndirectCommand
 {
-       VkStructureType sType;
-       void*                   pNext;
-       uint32_t                combinedImageSamplerDescriptorCount;
+       uint32_t        vertexCount;
+       uint32_t        instanceCount;
+       uint32_t        firstVertex;
+       uint32_t        firstInstance;
 };
 
-struct VkDescriptorUpdateTemplateEntry
+struct VkDrawIndexedIndirectCommand
 {
-       uint32_t                        dstBinding;
-       uint32_t                        dstArrayElement;
-       uint32_t                        descriptorCount;
-       VkDescriptorType        descriptorType;
-       size_t                          offset;
-       size_t                          stride;
+       uint32_t        indexCount;
+       uint32_t        instanceCount;
+       uint32_t        firstIndex;
+       int32_t         vertexOffset;
+       uint32_t        firstInstance;
 };
 
-struct VkDescriptorUpdateTemplateCreateInfo
+struct VkDispatchIndirectCommand
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkDescriptorUpdateTemplateCreateFlags   flags;
-       uint32_t                                                                descriptorUpdateEntryCount;
-       const VkDescriptorUpdateTemplateEntry*  pDescriptorUpdateEntries;
-       VkDescriptorUpdateTemplateType                  templateType;
-       VkDescriptorSetLayout                                   descriptorSetLayout;
-       VkPipelineBindPoint                                             pipelineBindPoint;
-       VkPipelineLayout                                                pipelineLayout;
-       uint32_t                                                                set;
+       uint32_t        x;
+       uint32_t        y;
+       uint32_t        z;
 };
 
-struct VkExternalMemoryProperties
+struct VkMultiDrawInfoEXT
 {
-       VkExternalMemoryFeatureFlags    externalMemoryFeatures;
-       VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes;
-       VkExternalMemoryHandleTypeFlags compatibleHandleTypes;
+       uint32_t        firstVertex;
+       uint32_t        vertexCount;
 };
 
-struct VkPhysicalDeviceExternalImageFormatInfo
+struct VkMultiDrawIndexedInfoEXT
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkExternalMemoryHandleTypeFlagBits      handleType;
+       uint32_t        firstIndex;
+       uint32_t        indexCount;
+       int32_t         vertexOffset;
 };
 
-struct VkExternalImageFormatProperties
+struct VkSubmitInfo
 {
        VkStructureType                         sType;
-       void*                                           pNext;
-       VkExternalMemoryProperties      externalMemoryProperties;
-};
-
-struct VkPhysicalDeviceExternalBufferInfo
-{
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkBufferCreateFlags                                     flags;
-       VkBufferUsageFlags                                      usage;
-       VkExternalMemoryHandleTypeFlagBits      handleType;
+       const void*                                     pNext;
+       uint32_t                                        waitSemaphoreCount;
+       const VkSemaphore*                      pWaitSemaphores;
+       const VkPipelineStageFlags*     pWaitDstStageMask;
+       uint32_t                                        commandBufferCount;
+       const VkCommandBuffer*          pCommandBuffers;
+       uint32_t                                        signalSemaphoreCount;
+       const VkSemaphore*                      pSignalSemaphores;
 };
 
-struct VkExternalBufferProperties
+struct VkDisplayPropertiesKHR
 {
-       VkStructureType                         sType;
-       void*                                           pNext;
-       VkExternalMemoryProperties      externalMemoryProperties;
+       VkDisplayKHR                            display;
+       const char*                                     displayName;
+       VkExtent2D                                      physicalDimensions;
+       VkExtent2D                                      physicalResolution;
+       VkSurfaceTransformFlagsKHR      supportedTransforms;
+       VkBool32                                        planeReorderPossible;
+       VkBool32                                        persistentContent;
 };
 
-struct VkPhysicalDeviceIDProperties
+struct VkDisplayPlanePropertiesKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       uint8_t                 deviceUUID[VK_UUID_SIZE];
-       uint8_t                 driverUUID[VK_UUID_SIZE];
-       uint8_t                 deviceLUID[VK_LUID_SIZE];
-       uint32_t                deviceNodeMask;
-       VkBool32                deviceLUIDValid;
+       VkDisplayKHR    currentDisplay;
+       uint32_t                currentStackIndex;
 };
 
-struct VkExternalMemoryImageCreateInfo
+struct VkDisplayModeParametersKHR
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkExternalMemoryHandleTypeFlags handleTypes;
+       VkExtent2D      visibleRegion;
+       uint32_t        refreshRate;
 };
 
-struct VkExternalMemoryBufferCreateInfo
+struct VkDisplayModePropertiesKHR
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkExternalMemoryHandleTypeFlags handleTypes;
+       VkDisplayModeKHR                        displayMode;
+       VkDisplayModeParametersKHR      parameters;
 };
 
-struct VkExportMemoryAllocateInfo
+struct VkDisplayModeCreateInfoKHR
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkExternalMemoryHandleTypeFlags handleTypes;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkDisplayModeCreateFlagsKHR     flags;
+       VkDisplayModeParametersKHR      parameters;
 };
 
-struct VkPhysicalDeviceExternalFenceInfo
+struct VkDisplayPlaneCapabilitiesKHR
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkExternalFenceHandleTypeFlagBits       handleType;
+       VkDisplayPlaneAlphaFlagsKHR     supportedAlpha;
+       VkOffset2D                                      minSrcPosition;
+       VkOffset2D                                      maxSrcPosition;
+       VkExtent2D                                      minSrcExtent;
+       VkExtent2D                                      maxSrcExtent;
+       VkOffset2D                                      minDstPosition;
+       VkOffset2D                                      maxDstPosition;
+       VkExtent2D                                      minDstExtent;
+       VkExtent2D                                      maxDstExtent;
 };
 
-struct VkExternalFenceProperties
+struct VkDisplaySurfaceCreateInfoKHR
 {
        VkStructureType                                 sType;
-       void*                                                   pNext;
-       VkExternalFenceHandleTypeFlags  exportFromImportedHandleTypes;
-       VkExternalFenceHandleTypeFlags  compatibleHandleTypes;
-       VkExternalFenceFeatureFlags             externalFenceFeatures;
+       const void*                                             pNext;
+       VkDisplaySurfaceCreateFlagsKHR  flags;
+       VkDisplayModeKHR                                displayMode;
+       uint32_t                                                planeIndex;
+       uint32_t                                                planeStackIndex;
+       VkSurfaceTransformFlagBitsKHR   transform;
+       float                                                   globalAlpha;
+       VkDisplayPlaneAlphaFlagBitsKHR  alphaMode;
+       VkExtent2D                                              imageExtent;
 };
 
-struct VkExportFenceCreateInfo
+struct VkDisplayPresentInfoKHR
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkExternalFenceHandleTypeFlags  handleTypes;
+       VkStructureType sType;
+       const void*             pNext;
+       VkRect2D                srcRect;
+       VkRect2D                dstRect;
+       VkBool32                persistent;
 };
 
-struct VkExportSemaphoreCreateInfo
+struct VkSurfaceCapabilitiesKHR
+{
+       uint32_t                                                minImageCount;
+       uint32_t                                                maxImageCount;
+       VkExtent2D                                              currentExtent;
+       VkExtent2D                                              minImageExtent;
+       VkExtent2D                                              maxImageExtent;
+       uint32_t                                                maxImageArrayLayers;
+       VkSurfaceTransformFlagsKHR              supportedTransforms;
+       VkSurfaceTransformFlagBitsKHR   currentTransform;
+       VkCompositeAlphaFlagsKHR                supportedCompositeAlpha;
+       VkImageUsageFlags                               supportedUsageFlags;
+};
+
+struct VkAndroidSurfaceCreateInfoKHR
 {
        VkStructureType                                         sType;
        const void*                                                     pNext;
-       VkExternalSemaphoreHandleTypeFlags      handleTypes;
+       VkAndroidSurfaceCreateFlagsKHR          flags;
+       struct pt::AndroidNativeWindowPtr       window;
 };
 
-struct VkPhysicalDeviceExternalSemaphoreInfo
+struct VkViSurfaceCreateInfoNN
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkExternalSemaphoreHandleTypeFlagBits   handleType;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkViSurfaceCreateFlagsNN        flags;
+       void*                                           window;
 };
 
-struct VkExternalSemaphoreProperties
+struct VkWaylandSurfaceCreateInfoKHR
 {
-       VkStructureType                                         sType;
-       void*                                                           pNext;
-       VkExternalSemaphoreHandleTypeFlags      exportFromImportedHandleTypes;
-       VkExternalSemaphoreHandleTypeFlags      compatibleHandleTypes;
-       VkExternalSemaphoreFeatureFlags         externalSemaphoreFeatures;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkWaylandSurfaceCreateFlagsKHR  flags;
+       pt::WaylandDisplayPtr                   display;
+       pt::WaylandSurfacePtr                   surface;
 };
 
-struct VkPhysicalDeviceMaintenance3Properties
+struct VkWin32SurfaceCreateInfoKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       uint32_t                maxPerSetDescriptors;
-       VkDeviceSize    maxMemoryAllocationSize;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkWin32SurfaceCreateFlagsKHR    flags;
+       pt::Win32InstanceHandle                 hinstance;
+       pt::Win32WindowHandle                   hwnd;
 };
 
-struct VkDescriptorSetLayoutSupport
+struct VkXlibSurfaceCreateInfoKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                supported;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkXlibSurfaceCreateFlagsKHR     flags;
+       pt::XlibDisplayPtr                      dpy;
+       pt::XlibWindow                          window;
 };
 
-struct VkPhysicalDeviceShaderDrawParametersFeatures
+struct VkXcbSurfaceCreateInfoKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                shaderDrawParameters;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkXcbSurfaceCreateFlagsKHR      flags;
+       pt::XcbConnectionPtr            connection;
+       pt::XcbWindow                           window;
 };
 
-struct VkPhysicalDeviceVulkan11Features
+struct VkImagePipeSurfaceCreateInfoFUCHSIA
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                storageBuffer16BitAccess;
-       VkBool32                uniformAndStorageBuffer16BitAccess;
-       VkBool32                storagePushConstant16;
-       VkBool32                storageInputOutput16;
-       VkBool32                multiview;
-       VkBool32                multiviewGeometryShader;
-       VkBool32                multiviewTessellationShader;
-       VkBool32                variablePointersStorageBuffer;
-       VkBool32                variablePointers;
-       VkBool32                protectedMemory;
-       VkBool32                samplerYcbcrConversion;
-       VkBool32                shaderDrawParameters;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkImagePipeSurfaceCreateFlagsFUCHSIA    flags;
+       pt::zx_handle_t                                                 imagePipeHandle;
 };
 
-struct VkPhysicalDeviceVulkan11Properties
+struct VkStreamDescriptorSurfaceCreateInfoGGP
 {
-       VkStructureType                 sType;
-       void*                                   pNext;
-       uint8_t                                 deviceUUID[VK_UUID_SIZE];
-       uint8_t                                 driverUUID[VK_UUID_SIZE];
-       uint8_t                                 deviceLUID[VK_LUID_SIZE];
-       uint32_t                                deviceNodeMask;
-       VkBool32                                deviceLUIDValid;
-       uint32_t                                subgroupSize;
-       VkShaderStageFlags              subgroupSupportedStages;
-       VkSubgroupFeatureFlags  subgroupSupportedOperations;
-       VkBool32                                subgroupQuadOperationsInAllStages;
-       VkPointClippingBehavior pointClippingBehavior;
-       uint32_t                                maxMultiviewViewCount;
-       uint32_t                                maxMultiviewInstanceIndex;
-       VkBool32                                protectedNoFault;
-       uint32_t                                maxPerSetDescriptors;
-       VkDeviceSize                    maxMemoryAllocationSize;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkStreamDescriptorSurfaceCreateFlagsGGP flags;
+       pt::GgpStreamDescriptor                                 streamDescriptor;
 };
 
-struct VkPhysicalDeviceVulkan12Features
+struct VkScreenSurfaceCreateInfoQNX
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                samplerMirrorClampToEdge;
-       VkBool32                drawIndirectCount;
-       VkBool32                storageBuffer8BitAccess;
-       VkBool32                uniformAndStorageBuffer8BitAccess;
-       VkBool32                storagePushConstant8;
-       VkBool32                shaderBufferInt64Atomics;
-       VkBool32                shaderSharedInt64Atomics;
-       VkBool32                shaderFloat16;
-       VkBool32                shaderInt8;
-       VkBool32                descriptorIndexing;
-       VkBool32                shaderInputAttachmentArrayDynamicIndexing;
-       VkBool32                shaderUniformTexelBufferArrayDynamicIndexing;
-       VkBool32                shaderStorageTexelBufferArrayDynamicIndexing;
-       VkBool32                shaderUniformBufferArrayNonUniformIndexing;
-       VkBool32                shaderSampledImageArrayNonUniformIndexing;
-       VkBool32                shaderStorageBufferArrayNonUniformIndexing;
-       VkBool32                shaderStorageImageArrayNonUniformIndexing;
-       VkBool32                shaderInputAttachmentArrayNonUniformIndexing;
-       VkBool32                shaderUniformTexelBufferArrayNonUniformIndexing;
-       VkBool32                shaderStorageTexelBufferArrayNonUniformIndexing;
-       VkBool32                descriptorBindingUniformBufferUpdateAfterBind;
-       VkBool32                descriptorBindingSampledImageUpdateAfterBind;
-       VkBool32                descriptorBindingStorageImageUpdateAfterBind;
-       VkBool32                descriptorBindingStorageBufferUpdateAfterBind;
-       VkBool32                descriptorBindingUniformTexelBufferUpdateAfterBind;
-       VkBool32                descriptorBindingStorageTexelBufferUpdateAfterBind;
-       VkBool32                descriptorBindingUpdateUnusedWhilePending;
-       VkBool32                descriptorBindingPartiallyBound;
-       VkBool32                descriptorBindingVariableDescriptorCount;
-       VkBool32                runtimeDescriptorArray;
-       VkBool32                samplerFilterMinmax;
-       VkBool32                scalarBlockLayout;
-       VkBool32                imagelessFramebuffer;
-       VkBool32                uniformBufferStandardLayout;
-       VkBool32                shaderSubgroupExtendedTypes;
-       VkBool32                separateDepthStencilLayouts;
-       VkBool32                hostQueryReset;
-       VkBool32                timelineSemaphore;
-       VkBool32                bufferDeviceAddress;
-       VkBool32                bufferDeviceAddressCaptureReplay;
-       VkBool32                bufferDeviceAddressMultiDevice;
-       VkBool32                vulkanMemoryModel;
-       VkBool32                vulkanMemoryModelDeviceScope;
-       VkBool32                vulkanMemoryModelAvailabilityVisibilityChains;
-       VkBool32                shaderOutputViewportIndex;
-       VkBool32                shaderOutputLayer;
-       VkBool32                subgroupBroadcastDynamicId;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkScreenSurfaceCreateFlagsQNX   flags;
+       pt::QNXScreenContextPtr                 context;
+       pt::QNXScreenWindowPtr                  window;
 };
 
-struct VkConformanceVersion
+struct VkSurfaceFormatKHR
 {
-       uint8_t major;
-       uint8_t minor;
-       uint8_t subminor;
-       uint8_t patch;
+       VkFormat                format;
+       VkColorSpaceKHR colorSpace;
 };
 
-struct VkPhysicalDeviceVulkan12Properties
+struct VkSwapchainCreateInfoKHR
 {
-       VkStructureType                                         sType;
-       void*                                                           pNext;
-       VkDriverId                                                      driverID;
-       char                                                            driverName[VK_MAX_DRIVER_NAME_SIZE];
-       char                                                            driverInfo[VK_MAX_DRIVER_INFO_SIZE];
-       VkConformanceVersion                            conformanceVersion;
-       VkShaderFloatControlsIndependence       denormBehaviorIndependence;
-       VkShaderFloatControlsIndependence       roundingModeIndependence;
-       VkBool32                                                        shaderSignedZeroInfNanPreserveFloat16;
-       VkBool32                                                        shaderSignedZeroInfNanPreserveFloat32;
-       VkBool32                                                        shaderSignedZeroInfNanPreserveFloat64;
-       VkBool32                                                        shaderDenormPreserveFloat16;
-       VkBool32                                                        shaderDenormPreserveFloat32;
-       VkBool32                                                        shaderDenormPreserveFloat64;
-       VkBool32                                                        shaderDenormFlushToZeroFloat16;
-       VkBool32                                                        shaderDenormFlushToZeroFloat32;
-       VkBool32                                                        shaderDenormFlushToZeroFloat64;
-       VkBool32                                                        shaderRoundingModeRTEFloat16;
-       VkBool32                                                        shaderRoundingModeRTEFloat32;
-       VkBool32                                                        shaderRoundingModeRTEFloat64;
-       VkBool32                                                        shaderRoundingModeRTZFloat16;
-       VkBool32                                                        shaderRoundingModeRTZFloat32;
-       VkBool32                                                        shaderRoundingModeRTZFloat64;
-       uint32_t                                                        maxUpdateAfterBindDescriptorsInAllPools;
-       VkBool32                                                        shaderUniformBufferArrayNonUniformIndexingNative;
-       VkBool32                                                        shaderSampledImageArrayNonUniformIndexingNative;
-       VkBool32                                                        shaderStorageBufferArrayNonUniformIndexingNative;
-       VkBool32                                                        shaderStorageImageArrayNonUniformIndexingNative;
-       VkBool32                                                        shaderInputAttachmentArrayNonUniformIndexingNative;
-       VkBool32                                                        robustBufferAccessUpdateAfterBind;
-       VkBool32                                                        quadDivergentImplicitLod;
-       uint32_t                                                        maxPerStageDescriptorUpdateAfterBindSamplers;
-       uint32_t                                                        maxPerStageDescriptorUpdateAfterBindUniformBuffers;
-       uint32_t                                                        maxPerStageDescriptorUpdateAfterBindStorageBuffers;
-       uint32_t                                                        maxPerStageDescriptorUpdateAfterBindSampledImages;
-       uint32_t                                                        maxPerStageDescriptorUpdateAfterBindStorageImages;
-       uint32_t                                                        maxPerStageDescriptorUpdateAfterBindInputAttachments;
-       uint32_t                                                        maxPerStageUpdateAfterBindResources;
-       uint32_t                                                        maxDescriptorSetUpdateAfterBindSamplers;
-       uint32_t                                                        maxDescriptorSetUpdateAfterBindUniformBuffers;
-       uint32_t                                                        maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
-       uint32_t                                                        maxDescriptorSetUpdateAfterBindStorageBuffers;
-       uint32_t                                                        maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
-       uint32_t                                                        maxDescriptorSetUpdateAfterBindSampledImages;
-       uint32_t                                                        maxDescriptorSetUpdateAfterBindStorageImages;
-       uint32_t                                                        maxDescriptorSetUpdateAfterBindInputAttachments;
-       VkResolveModeFlags                                      supportedDepthResolveModes;
-       VkResolveModeFlags                                      supportedStencilResolveModes;
-       VkBool32                                                        independentResolveNone;
-       VkBool32                                                        independentResolve;
-       VkBool32                                                        filterMinmaxSingleComponentFormats;
-       VkBool32                                                        filterMinmaxImageComponentMapping;
-       uint64_t                                                        maxTimelineSemaphoreValueDifference;
-       VkSampleCountFlags                                      framebufferIntegerColorSampleCounts;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkSwapchainCreateFlagsKHR               flags;
+       VkSurfaceKHR                                    surface;
+       uint32_t                                                minImageCount;
+       VkFormat                                                imageFormat;
+       VkColorSpaceKHR                                 imageColorSpace;
+       VkExtent2D                                              imageExtent;
+       uint32_t                                                imageArrayLayers;
+       VkImageUsageFlags                               imageUsage;
+       VkSharingMode                                   imageSharingMode;
+       uint32_t                                                queueFamilyIndexCount;
+       const uint32_t*                                 pQueueFamilyIndices;
+       VkSurfaceTransformFlagBitsKHR   preTransform;
+       VkCompositeAlphaFlagBitsKHR             compositeAlpha;
+       VkPresentModeKHR                                presentMode;
+       VkBool32                                                clipped;
+       VkSwapchainKHR                                  oldSwapchain;
 };
 
-struct VkImageFormatListCreateInfo
+struct VkPresentInfoKHR
 {
-       VkStructureType sType;
-       const void*             pNext;
-       uint32_t                viewFormatCount;
-       const VkFormat* pViewFormats;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       uint32_t                                waitSemaphoreCount;
+       const VkSemaphore*              pWaitSemaphores;
+       uint32_t                                swapchainCount;
+       const VkSwapchainKHR*   pSwapchains;
+       const uint32_t*                 pImageIndices;
+       VkResult*                               pResults;
 };
 
-struct VkAttachmentDescription2
+struct VkDebugReportCallbackCreateInfoEXT
 {
        VkStructureType                                 sType;
        const void*                                             pNext;
-       VkAttachmentDescriptionFlags    flags;
-       VkFormat                                                format;
-       VkSampleCountFlagBits                   samples;
-       VkAttachmentLoadOp                              loadOp;
-       VkAttachmentStoreOp                             storeOp;
-       VkAttachmentLoadOp                              stencilLoadOp;
-       VkAttachmentStoreOp                             stencilStoreOp;
-       VkImageLayout                                   initialLayout;
-       VkImageLayout                                   finalLayout;
+       VkDebugReportFlagsEXT                   flags;
+       PFN_vkDebugReportCallbackEXT    pfnCallback;
+       void*                                                   pUserData;
 };
 
-struct VkAttachmentReference2
+struct VkValidationFlagsEXT
 {
-       VkStructureType         sType;
-       const void*                     pNext;
-       uint32_t                        attachment;
-       VkImageLayout           layout;
-       VkImageAspectFlags      aspectMask;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       uint32_t                                        disabledValidationCheckCount;
+       const VkValidationCheckEXT*     pDisabledValidationChecks;
 };
 
-struct VkSubpassDescription2
+struct VkValidationFeaturesEXT
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkSubpassDescriptionFlags               flags;
-       VkPipelineBindPoint                             pipelineBindPoint;
-       uint32_t                                                viewMask;
-       uint32_t                                                inputAttachmentCount;
-       const VkAttachmentReference2*   pInputAttachments;
-       uint32_t                                                colorAttachmentCount;
-       const VkAttachmentReference2*   pColorAttachments;
-       const VkAttachmentReference2*   pResolveAttachments;
-       const VkAttachmentReference2*   pDepthStencilAttachment;
-       uint32_t                                                preserveAttachmentCount;
-       const uint32_t*                                 pPreserveAttachments;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       uint32_t                                                                enabledValidationFeatureCount;
+       const VkValidationFeatureEnableEXT*             pEnabledValidationFeatures;
+       uint32_t                                                                disabledValidationFeatureCount;
+       const VkValidationFeatureDisableEXT*    pDisabledValidationFeatures;
 };
 
-struct VkSubpassDependency2
+struct VkPipelineRasterizationStateRasterizationOrderAMD
 {
        VkStructureType                 sType;
        const void*                             pNext;
-       uint32_t                                srcSubpass;
-       uint32_t                                dstSubpass;
-       VkPipelineStageFlags    srcStageMask;
-       VkPipelineStageFlags    dstStageMask;
-       VkAccessFlags                   srcAccessMask;
-       VkAccessFlags                   dstAccessMask;
-       VkDependencyFlags               dependencyFlags;
-       int32_t                                 viewOffset;
+       VkRasterizationOrderAMD rasterizationOrder;
 };
 
-struct VkRenderPassCreateInfo2
+struct VkDebugMarkerObjectNameInfoEXT
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkRenderPassCreateFlags                 flags;
-       uint32_t                                                attachmentCount;
-       const VkAttachmentDescription2* pAttachments;
-       uint32_t                                                subpassCount;
-       const VkSubpassDescription2*    pSubpasses;
-       uint32_t                                                dependencyCount;
-       const VkSubpassDependency2*             pDependencies;
-       uint32_t                                                correlatedViewMaskCount;
-       const uint32_t*                                 pCorrelatedViewMasks;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkDebugReportObjectTypeEXT      objectType;
+       uint64_t                                        object;
+       const char*                                     pObjectName;
 };
 
-struct VkSubpassBeginInfo
+struct VkDebugMarkerObjectTagInfoEXT
 {
-       VkStructureType         sType;
-       const void*                     pNext;
-       VkSubpassContents       contents;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkDebugReportObjectTypeEXT      objectType;
+       uint64_t                                        object;
+       uint64_t                                        tagName;
+       size_t                                          tagSize;
+       const void*                                     pTag;
 };
 
-struct VkSubpassEndInfo
+struct VkDebugMarkerMarkerInfoEXT
 {
        VkStructureType sType;
        const void*             pNext;
+       const char*             pMarkerName;
+       float                   color[4];
 };
 
-struct VkPhysicalDevice8BitStorageFeatures
+struct VkDedicatedAllocationImageCreateInfoNV
 {
        VkStructureType sType;
-       void*                   pNext;
-       VkBool32                storageBuffer8BitAccess;
-       VkBool32                uniformAndStorageBuffer8BitAccess;
-       VkBool32                storagePushConstant8;
+       const void*             pNext;
+       VkBool32                dedicatedAllocation;
 };
 
-struct VkPhysicalDeviceDriverProperties
+struct VkDedicatedAllocationBufferCreateInfoNV
 {
-       VkStructureType                 sType;
-       void*                                   pNext;
-       VkDriverId                              driverID;
-       char                                    driverName[VK_MAX_DRIVER_NAME_SIZE];
-       char                                    driverInfo[VK_MAX_DRIVER_INFO_SIZE];
-       VkConformanceVersion    conformanceVersion;
+       VkStructureType sType;
+       const void*             pNext;
+       VkBool32                dedicatedAllocation;
 };
 
-struct VkPhysicalDeviceShaderAtomicInt64Features
+struct VkDedicatedAllocationMemoryAllocateInfoNV
 {
        VkStructureType sType;
-       void*                   pNext;
-       VkBool32                shaderBufferInt64Atomics;
-       VkBool32                shaderSharedInt64Atomics;
+       const void*             pNext;
+       VkImage                 image;
+       VkBuffer                buffer;
 };
 
-struct VkPhysicalDeviceShaderFloat16Int8Features
+struct VkExternalImageFormatPropertiesNV
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                shaderFloat16;
-       VkBool32                shaderInt8;
+       VkImageFormatProperties                         imageFormatProperties;
+       VkExternalMemoryFeatureFlagsNV          externalMemoryFeatures;
+       VkExternalMemoryHandleTypeFlagsNV       exportFromImportedHandleTypes;
+       VkExternalMemoryHandleTypeFlagsNV       compatibleHandleTypes;
 };
 
-struct VkPhysicalDeviceFloatControlsProperties
+struct VkExternalMemoryImageCreateInfoNV
 {
        VkStructureType                                         sType;
-       void*                                                           pNext;
-       VkShaderFloatControlsIndependence       denormBehaviorIndependence;
-       VkShaderFloatControlsIndependence       roundingModeIndependence;
-       VkBool32                                                        shaderSignedZeroInfNanPreserveFloat16;
-       VkBool32                                                        shaderSignedZeroInfNanPreserveFloat32;
-       VkBool32                                                        shaderSignedZeroInfNanPreserveFloat64;
-       VkBool32                                                        shaderDenormPreserveFloat16;
-       VkBool32                                                        shaderDenormPreserveFloat32;
-       VkBool32                                                        shaderDenormPreserveFloat64;
-       VkBool32                                                        shaderDenormFlushToZeroFloat16;
-       VkBool32                                                        shaderDenormFlushToZeroFloat32;
-       VkBool32                                                        shaderDenormFlushToZeroFloat64;
-       VkBool32                                                        shaderRoundingModeRTEFloat16;
-       VkBool32                                                        shaderRoundingModeRTEFloat32;
-       VkBool32                                                        shaderRoundingModeRTEFloat64;
-       VkBool32                                                        shaderRoundingModeRTZFloat16;
-       VkBool32                                                        shaderRoundingModeRTZFloat32;
-       VkBool32                                                        shaderRoundingModeRTZFloat64;
+       const void*                                                     pNext;
+       VkExternalMemoryHandleTypeFlagsNV       handleTypes;
 };
 
-struct VkDescriptorSetLayoutBindingFlagsCreateInfo
+struct VkExportMemoryAllocateInfoNV
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       uint32_t                                                bindingCount;
-       const VkDescriptorBindingFlags* pBindingFlags;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkExternalMemoryHandleTypeFlagsNV       handleTypes;
 };
 
-struct VkPhysicalDeviceDescriptorIndexingFeatures
+struct VkImportMemoryWin32HandleInfoNV
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                shaderInputAttachmentArrayDynamicIndexing;
-       VkBool32                shaderUniformTexelBufferArrayDynamicIndexing;
-       VkBool32                shaderStorageTexelBufferArrayDynamicIndexing;
-       VkBool32                shaderUniformBufferArrayNonUniformIndexing;
-       VkBool32                shaderSampledImageArrayNonUniformIndexing;
-       VkBool32                shaderStorageBufferArrayNonUniformIndexing;
-       VkBool32                shaderStorageImageArrayNonUniformIndexing;
-       VkBool32                shaderInputAttachmentArrayNonUniformIndexing;
-       VkBool32                shaderUniformTexelBufferArrayNonUniformIndexing;
-       VkBool32                shaderStorageTexelBufferArrayNonUniformIndexing;
-       VkBool32                descriptorBindingUniformBufferUpdateAfterBind;
-       VkBool32                descriptorBindingSampledImageUpdateAfterBind;
-       VkBool32                descriptorBindingStorageImageUpdateAfterBind;
-       VkBool32                descriptorBindingStorageBufferUpdateAfterBind;
-       VkBool32                descriptorBindingUniformTexelBufferUpdateAfterBind;
-       VkBool32                descriptorBindingStorageTexelBufferUpdateAfterBind;
-       VkBool32                descriptorBindingUpdateUnusedWhilePending;
-       VkBool32                descriptorBindingPartiallyBound;
-       VkBool32                descriptorBindingVariableDescriptorCount;
-       VkBool32                runtimeDescriptorArray;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkExternalMemoryHandleTypeFlagsNV       handleType;
+       pt::Win32Handle                                         handle;
 };
 
-struct VkPhysicalDeviceDescriptorIndexingProperties
+struct VkExportMemoryWin32HandleInfoNV
 {
-       VkStructureType sType;
-       void*                   pNext;
-       uint32_t                maxUpdateAfterBindDescriptorsInAllPools;
-       VkBool32                shaderUniformBufferArrayNonUniformIndexingNative;
-       VkBool32                shaderSampledImageArrayNonUniformIndexingNative;
-       VkBool32                shaderStorageBufferArrayNonUniformIndexingNative;
-       VkBool32                shaderStorageImageArrayNonUniformIndexingNative;
-       VkBool32                shaderInputAttachmentArrayNonUniformIndexingNative;
-       VkBool32                robustBufferAccessUpdateAfterBind;
-       VkBool32                quadDivergentImplicitLod;
-       uint32_t                maxPerStageDescriptorUpdateAfterBindSamplers;
-       uint32_t                maxPerStageDescriptorUpdateAfterBindUniformBuffers;
-       uint32_t                maxPerStageDescriptorUpdateAfterBindStorageBuffers;
-       uint32_t                maxPerStageDescriptorUpdateAfterBindSampledImages;
-       uint32_t                maxPerStageDescriptorUpdateAfterBindStorageImages;
-       uint32_t                maxPerStageDescriptorUpdateAfterBindInputAttachments;
-       uint32_t                maxPerStageUpdateAfterBindResources;
-       uint32_t                maxDescriptorSetUpdateAfterBindSamplers;
-       uint32_t                maxDescriptorSetUpdateAfterBindUniformBuffers;
-       uint32_t                maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
-       uint32_t                maxDescriptorSetUpdateAfterBindStorageBuffers;
-       uint32_t                maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
-       uint32_t                maxDescriptorSetUpdateAfterBindSampledImages;
-       uint32_t                maxDescriptorSetUpdateAfterBindStorageImages;
-       uint32_t                maxDescriptorSetUpdateAfterBindInputAttachments;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       pt::Win32SecurityAttributesPtr  pAttributes;
+       uint32_t                                                dwAccess;
+};
+
+struct VkWin32KeyedMutexAcquireReleaseInfoNV
+{
+       VkStructureType                 sType;
+       const void*                             pNext;
+       uint32_t                                acquireCount;
+       const VkDeviceMemory*   pAcquireSyncs;
+       const uint64_t*                 pAcquireKeys;
+       const uint32_t*                 pAcquireTimeoutMilliseconds;
+       uint32_t                                releaseCount;
+       const VkDeviceMemory*   pReleaseSyncs;
+       const uint64_t*                 pReleaseKeys;
 };
 
-struct VkDescriptorSetVariableDescriptorCountAllocateInfo
+struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV
 {
        VkStructureType sType;
-       const void*             pNext;
-       uint32_t                descriptorSetCount;
-       const uint32_t* pDescriptorCounts;
+       void*                   pNext;
+       VkBool32                deviceGeneratedCommands;
 };
 
-struct VkDescriptorSetVariableDescriptorCountLayoutSupport
+struct VkDevicePrivateDataCreateInfo
 {
        VkStructureType sType;
-       void*                   pNext;
-       uint32_t                maxVariableDescriptorCount;
+       const void*             pNext;
+       uint32_t                privateDataSlotRequestCount;
 };
 
-struct VkSubpassDescriptionDepthStencilResolve
+struct VkPrivateDataSlotCreateInfo
 {
        VkStructureType                                 sType;
        const void*                                             pNext;
-       VkResolveModeFlagBits                   depthResolveMode;
-       VkResolveModeFlagBits                   stencilResolveMode;
-       const VkAttachmentReference2*   pDepthStencilResolveAttachment;
+       VkPrivateDataSlotCreateFlags    flags;
 };
 
-struct VkPhysicalDeviceDepthStencilResolveProperties
+struct VkPhysicalDevicePrivateDataFeatures
 {
-       VkStructureType         sType;
-       void*                           pNext;
-       VkResolveModeFlags      supportedDepthResolveModes;
-       VkResolveModeFlags      supportedStencilResolveModes;
-       VkBool32                        independentResolveNone;
-       VkBool32                        independentResolve;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                privateData;
 };
 
-struct VkPhysicalDeviceScalarBlockLayoutFeatures
+struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                scalarBlockLayout;
+       uint32_t                maxGraphicsShaderGroupCount;
+       uint32_t                maxIndirectSequenceCount;
+       uint32_t                maxIndirectCommandsTokenCount;
+       uint32_t                maxIndirectCommandsStreamCount;
+       uint32_t                maxIndirectCommandsTokenOffset;
+       uint32_t                maxIndirectCommandsStreamStride;
+       uint32_t                minSequencesCountBufferOffsetAlignment;
+       uint32_t                minSequencesIndexBufferOffsetAlignment;
+       uint32_t                minIndirectCommandsBufferOffsetAlignment;
 };
 
-struct VkImageStencilUsageCreateInfo
+struct VkPhysicalDeviceMultiDrawPropertiesEXT
 {
-       VkStructureType         sType;
-       const void*                     pNext;
-       VkImageUsageFlags       stencilUsage;
+       VkStructureType sType;
+       void*                   pNext;
+       uint32_t                maxMultiDrawCount;
 };
 
-struct VkSamplerReductionModeCreateInfo
+struct VkGraphicsShaderGroupCreateInfoNV
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkSamplerReductionMode  reductionMode;
+       VkStructureType                                                                 sType;
+       const void*                                                                             pNext;
+       uint32_t                                                                                stageCount;
+       const VkPipelineShaderStageCreateInfo*                  pStages;
+       const VkPipelineVertexInputStateCreateInfo*             pVertexInputState;
+       const VkPipelineTessellationStateCreateInfo*    pTessellationState;
 };
 
-struct VkPhysicalDeviceSamplerFilterMinmaxProperties
+struct VkGraphicsPipelineShaderGroupsCreateInfoNV
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                filterMinmaxSingleComponentFormats;
-       VkBool32                filterMinmaxImageComponentMapping;
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       uint32_t                                                                        groupCount;
+       const VkGraphicsShaderGroupCreateInfoNV*        pGroups;
+       uint32_t                                                                        pipelineCount;
+       const VkPipeline*                                                       pPipelines;
 };
 
-struct VkPhysicalDeviceVulkanMemoryModelFeatures
+struct VkBindShaderGroupIndirectCommandNV
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                vulkanMemoryModel;
-       VkBool32                vulkanMemoryModelDeviceScope;
-       VkBool32                vulkanMemoryModelAvailabilityVisibilityChains;
+       uint32_t        groupIndex;
 };
 
-struct VkPhysicalDeviceImagelessFramebufferFeatures
+struct VkBindIndexBufferIndirectCommandNV
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                imagelessFramebuffer;
+       VkDeviceAddress bufferAddress;
+       uint32_t                size;
+       VkIndexType             indexType;
 };
 
-struct VkFramebufferAttachmentImageInfo
+struct VkBindVertexBufferIndirectCommandNV
 {
-       VkStructureType         sType;
-       const void*                     pNext;
-       VkImageCreateFlags      flags;
-       VkImageUsageFlags       usage;
-       uint32_t                        width;
-       uint32_t                        height;
-       uint32_t                        layerCount;
-       uint32_t                        viewFormatCount;
-       const VkFormat*         pViewFormats;
+       VkDeviceAddress bufferAddress;
+       uint32_t                size;
+       uint32_t                stride;
 };
 
-struct VkFramebufferAttachmentsCreateInfo
+struct VkSetStateFlagsIndirectCommandNV
+{
+       uint32_t        data;
+};
+
+struct VkIndirectCommandsStreamNV
+{
+       VkBuffer                buffer;
+       VkDeviceSize    offset;
+};
+
+struct VkIndirectCommandsLayoutTokenNV
+{
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkIndirectCommandsTokenTypeNV   tokenType;
+       uint32_t                                                stream;
+       uint32_t                                                offset;
+       uint32_t                                                vertexBindingUnit;
+       VkBool32                                                vertexDynamicStride;
+       VkPipelineLayout                                pushconstantPipelineLayout;
+       VkShaderStageFlags                              pushconstantShaderStageFlags;
+       uint32_t                                                pushconstantOffset;
+       uint32_t                                                pushconstantSize;
+       VkIndirectStateFlagsNV                  indirectStateFlags;
+       uint32_t                                                indexTypeCount;
+       const VkIndexType*                              pIndexTypes;
+       const uint32_t*                                 pIndexTypeValues;
+};
+
+struct VkIndirectCommandsLayoutCreateInfoNV
 {
        VkStructureType                                                 sType;
        const void*                                                             pNext;
-       uint32_t                                                                attachmentImageInfoCount;
-       const VkFramebufferAttachmentImageInfo* pAttachmentImageInfos;
+       VkIndirectCommandsLayoutUsageFlagsNV    flags;
+       VkPipelineBindPoint                                             pipelineBindPoint;
+       uint32_t                                                                tokenCount;
+       const VkIndirectCommandsLayoutTokenNV*  pTokens;
+       uint32_t                                                                streamCount;
+       const uint32_t*                                                 pStreamStrides;
 };
 
-struct VkRenderPassAttachmentBeginInfo
+struct VkGeneratedCommandsInfoNV
+{
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkPipelineBindPoint                                     pipelineBindPoint;
+       VkPipeline                                                      pipeline;
+       VkIndirectCommandsLayoutNV                      indirectCommandsLayout;
+       uint32_t                                                        streamCount;
+       const VkIndirectCommandsStreamNV*       pStreams;
+       uint32_t                                                        sequencesCount;
+       VkBuffer                                                        preprocessBuffer;
+       VkDeviceSize                                            preprocessOffset;
+       VkDeviceSize                                            preprocessSize;
+       VkBuffer                                                        sequencesCountBuffer;
+       VkDeviceSize                                            sequencesCountOffset;
+       VkBuffer                                                        sequencesIndexBuffer;
+       VkDeviceSize                                            sequencesIndexOffset;
+};
+
+struct VkGeneratedCommandsMemoryRequirementsInfoNV
+{
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkPipelineBindPoint                     pipelineBindPoint;
+       VkPipeline                                      pipeline;
+       VkIndirectCommandsLayoutNV      indirectCommandsLayout;
+       uint32_t                                        maxSequencesCount;
+};
+
+struct VkPhysicalDeviceFeatures2
+{
+       VkStructureType                         sType;
+       void*                                           pNext;
+       VkPhysicalDeviceFeatures        features;
+};
+
+struct VkPhysicalDeviceProperties2
+{
+       VkStructureType                         sType;
+       void*                                           pNext;
+       VkPhysicalDeviceProperties      properties;
+};
+
+struct VkFormatProperties2
 {
        VkStructureType         sType;
-       const void*                     pNext;
-       uint32_t                        attachmentCount;
-       const VkImageView*      pAttachments;
+       void*                           pNext;
+       VkFormatProperties      formatProperties;
 };
 
-struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures
+struct VkImageFormatProperties2
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                uniformBufferStandardLayout;
+       VkStructureType                 sType;
+       void*                                   pNext;
+       VkImageFormatProperties imageFormatProperties;
 };
 
-struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures
+struct VkPhysicalDeviceImageFormatInfo2
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                shaderSubgroupExtendedTypes;
+       VkStructureType         sType;
+       const void*                     pNext;
+       VkFormat                        format;
+       VkImageType                     type;
+       VkImageTiling           tiling;
+       VkImageUsageFlags       usage;
+       VkImageCreateFlags      flags;
 };
 
-struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures
+struct VkQueueFamilyProperties2
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                separateDepthStencilLayouts;
+       VkStructureType                 sType;
+       void*                                   pNext;
+       VkQueueFamilyProperties queueFamilyProperties;
 };
 
-struct VkAttachmentReferenceStencilLayout
+struct VkPhysicalDeviceMemoryProperties2
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkImageLayout   stencilLayout;
+       VkStructureType                                         sType;
+       void*                                                           pNext;
+       VkPhysicalDeviceMemoryProperties        memoryProperties;
 };
 
-struct VkAttachmentDescriptionStencilLayout
+struct VkSparseImageFormatProperties2
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkImageLayout   stencilInitialLayout;
-       VkImageLayout   stencilFinalLayout;
+       VkStructureType                                 sType;
+       void*                                                   pNext;
+       VkSparseImageFormatProperties   properties;
+};
+
+struct VkPhysicalDeviceSparseImageFormatInfo2
+{
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkFormat                                format;
+       VkImageType                             type;
+       VkSampleCountFlagBits   samples;
+       VkImageUsageFlags               usage;
+       VkImageTiling                   tiling;
 };
 
-struct VkPhysicalDeviceHostQueryResetFeatures
+struct VkPhysicalDevicePushDescriptorPropertiesKHR
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                hostQueryReset;
+       uint32_t                maxPushDescriptors;
 };
 
-struct VkPhysicalDeviceTimelineSemaphoreFeatures
+struct VkConformanceVersion
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                timelineSemaphore;
+       uint8_t major;
+       uint8_t minor;
+       uint8_t subminor;
+       uint8_t patch;
 };
 
-struct VkPhysicalDeviceTimelineSemaphoreProperties
+struct VkPhysicalDeviceDriverProperties
 {
-       VkStructureType sType;
-       void*                   pNext;
-       uint64_t                maxTimelineSemaphoreValueDifference;
+       VkStructureType                 sType;
+       void*                                   pNext;
+       VkDriverId                              driverID;
+       char                                    driverName[VK_MAX_DRIVER_NAME_SIZE];
+       char                                    driverInfo[VK_MAX_DRIVER_INFO_SIZE];
+       VkConformanceVersion    conformanceVersion;
 };
 
-struct VkSemaphoreTypeCreateInfo
+struct VkRectLayerKHR
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkSemaphoreType semaphoreType;
-       uint64_t                initialValue;
+       VkOffset2D      offset;
+       VkExtent2D      extent;
+       uint32_t        layer;
 };
 
-struct VkTimelineSemaphoreSubmitInfo
+struct VkPresentRegionKHR
 {
-       VkStructureType sType;
-       const void*             pNext;
-       uint32_t                waitSemaphoreValueCount;
-       const uint64_t* pWaitSemaphoreValues;
-       uint32_t                signalSemaphoreValueCount;
-       const uint64_t* pSignalSemaphoreValues;
+       uint32_t                                rectangleCount;
+       const VkRectLayerKHR*   pRectangles;
 };
 
-struct VkSemaphoreWaitInfo
+struct VkPhysicalDeviceVariablePointersFeatures
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkSemaphoreWaitFlags    flags;
-       uint32_t                                semaphoreCount;
-       const VkSemaphore*              pSemaphores;
-       const uint64_t*                 pValues;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                variablePointersStorageBuffer;
+       VkBool32                variablePointers;
 };
 
-struct VkSemaphoreSignalInfo
+struct VkPresentRegionsKHR
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkSemaphore             semaphore;
-       uint64_t                value;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       uint32_t                                        swapchainCount;
+       const VkPresentRegionKHR*       pRegions;
 };
 
-struct VkPhysicalDeviceBufferDeviceAddressFeatures
+struct VkExternalMemoryProperties
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                bufferDeviceAddress;
-       VkBool32                bufferDeviceAddressCaptureReplay;
-       VkBool32                bufferDeviceAddressMultiDevice;
+       VkExternalMemoryFeatureFlags    externalMemoryFeatures;
+       VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes;
+       VkExternalMemoryHandleTypeFlags compatibleHandleTypes;
 };
 
-struct VkBufferDeviceAddressInfo
+struct VkPhysicalDeviceExternalImageFormatInfo
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkBuffer                buffer;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkExternalMemoryHandleTypeFlagBits      handleType;
 };
 
-struct VkBufferOpaqueCaptureAddressCreateInfo
+struct VkExternalImageFormatProperties
 {
-       VkStructureType sType;
-       const void*             pNext;
-       uint64_t                opaqueCaptureAddress;
+       VkStructureType                         sType;
+       void*                                           pNext;
+       VkExternalMemoryProperties      externalMemoryProperties;
 };
 
-struct VkMemoryOpaqueCaptureAddressAllocateInfo
+struct VkPhysicalDeviceExternalBufferInfo
 {
-       VkStructureType sType;
-       const void*             pNext;
-       uint64_t                opaqueCaptureAddress;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkBufferCreateFlags                                     flags;
+       VkBufferUsageFlags                                      usage;
+       VkExternalMemoryHandleTypeFlagBits      handleType;
 };
 
-struct VkDeviceMemoryOpaqueCaptureAddressInfo
+struct VkExternalBufferProperties
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkDeviceMemory  memory;
+       VkStructureType                         sType;
+       void*                                           pNext;
+       VkExternalMemoryProperties      externalMemoryProperties;
 };
 
-struct VkPhysicalDeviceVulkan13Features
+struct VkPhysicalDeviceIDProperties
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                robustImageAccess;
-       VkBool32                inlineUniformBlock;
-       VkBool32                descriptorBindingInlineUniformBlockUpdateAfterBind;
-       VkBool32                pipelineCreationCacheControl;
-       VkBool32                privateData;
-       VkBool32                shaderDemoteToHelperInvocation;
-       VkBool32                shaderTerminateInvocation;
-       VkBool32                subgroupSizeControl;
-       VkBool32                computeFullSubgroups;
-       VkBool32                synchronization2;
-       VkBool32                textureCompressionASTC_HDR;
-       VkBool32                shaderZeroInitializeWorkgroupMemory;
-       VkBool32                dynamicRendering;
-       VkBool32                shaderIntegerDotProduct;
-       VkBool32                maintenance4;
+       uint8_t                 deviceUUID[VK_UUID_SIZE];
+       uint8_t                 driverUUID[VK_UUID_SIZE];
+       uint8_t                 deviceLUID[VK_LUID_SIZE];
+       uint32_t                deviceNodeMask;
+       VkBool32                deviceLUIDValid;
 };
 
-struct VkPhysicalDeviceVulkan13Properties
+struct VkExternalMemoryImageCreateInfo
 {
-       VkStructureType         sType;
-       void*                           pNext;
-       uint32_t                        minSubgroupSize;
-       uint32_t                        maxSubgroupSize;
-       uint32_t                        maxComputeWorkgroupSubgroups;
-       VkShaderStageFlags      requiredSubgroupSizeStages;
-       uint32_t                        maxInlineUniformBlockSize;
-       uint32_t                        maxPerStageDescriptorInlineUniformBlocks;
-       uint32_t                        maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
-       uint32_t                        maxDescriptorSetInlineUniformBlocks;
-       uint32_t                        maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
-       uint32_t                        maxInlineUniformTotalSize;
-       VkBool32                        integerDotProduct8BitUnsignedAccelerated;
-       VkBool32                        integerDotProduct8BitSignedAccelerated;
-       VkBool32                        integerDotProduct8BitMixedSignednessAccelerated;
-       VkBool32                        integerDotProduct4x8BitPackedUnsignedAccelerated;
-       VkBool32                        integerDotProduct4x8BitPackedSignedAccelerated;
-       VkBool32                        integerDotProduct4x8BitPackedMixedSignednessAccelerated;
-       VkBool32                        integerDotProduct16BitUnsignedAccelerated;
-       VkBool32                        integerDotProduct16BitSignedAccelerated;
-       VkBool32                        integerDotProduct16BitMixedSignednessAccelerated;
-       VkBool32                        integerDotProduct32BitUnsignedAccelerated;
-       VkBool32                        integerDotProduct32BitSignedAccelerated;
-       VkBool32                        integerDotProduct32BitMixedSignednessAccelerated;
-       VkBool32                        integerDotProduct64BitUnsignedAccelerated;
-       VkBool32                        integerDotProduct64BitSignedAccelerated;
-       VkBool32                        integerDotProduct64BitMixedSignednessAccelerated;
-       VkBool32                        integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
-       VkBool32                        integerDotProductAccumulatingSaturating8BitSignedAccelerated;
-       VkBool32                        integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
-       VkBool32                        integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
-       VkBool32                        integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
-       VkBool32                        integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
-       VkBool32                        integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
-       VkBool32                        integerDotProductAccumulatingSaturating16BitSignedAccelerated;
-       VkBool32                        integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
-       VkBool32                        integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
-       VkBool32                        integerDotProductAccumulatingSaturating32BitSignedAccelerated;
-       VkBool32                        integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
-       VkBool32                        integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
-       VkBool32                        integerDotProductAccumulatingSaturating64BitSignedAccelerated;
-       VkBool32                        integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
-       VkDeviceSize            storageTexelBufferOffsetAlignmentBytes;
-       VkBool32                        storageTexelBufferOffsetSingleTexelAlignment;
-       VkDeviceSize            uniformTexelBufferOffsetAlignmentBytes;
-       VkBool32                        uniformTexelBufferOffsetSingleTexelAlignment;
-       VkDeviceSize            maxBufferSize;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkExternalMemoryHandleTypeFlags handleTypes;
 };
 
-struct VkPipelineCreationFeedback
+struct VkExternalMemoryBufferCreateInfo
 {
-       VkPipelineCreationFeedbackFlags flags;
-       uint64_t                                                duration;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkExternalMemoryHandleTypeFlags handleTypes;
 };
 
-struct VkPipelineCreationFeedbackCreateInfo
+struct VkExportMemoryAllocateInfo
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkPipelineCreationFeedback*     pPipelineCreationFeedback;
-       uint32_t                                        pipelineStageCreationFeedbackCount;
-       VkPipelineCreationFeedback*     pPipelineStageCreationFeedbacks;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkExternalMemoryHandleTypeFlags handleTypes;
 };
 
-struct VkPhysicalDeviceShaderTerminateInvocationFeatures
+struct VkImportMemoryWin32HandleInfoKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                shaderTerminateInvocation;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkExternalMemoryHandleTypeFlagBits      handleType;
+       pt::Win32Handle                                         handle;
+       pt::Win32LPCWSTR                                        name;
 };
 
-struct VkPhysicalDeviceToolProperties
+struct VkExportMemoryWin32HandleInfoKHR
 {
-       VkStructureType         sType;
-       void*                           pNext;
-       char                            name[VK_MAX_EXTENSION_NAME_SIZE];
-       char                            version[VK_MAX_EXTENSION_NAME_SIZE];
-       VkToolPurposeFlags      purposes;
-       char                            description[VK_MAX_DESCRIPTION_SIZE];
-       char                            layer[VK_MAX_EXTENSION_NAME_SIZE];
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       pt::Win32SecurityAttributesPtr  pAttributes;
+       uint32_t                                                dwAccess;
+       pt::Win32LPCWSTR                                name;
 };
 
-struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures
+struct VkImportMemoryZirconHandleInfoFUCHSIA
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                shaderDemoteToHelperInvocation;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkExternalMemoryHandleTypeFlagBits      handleType;
+       pt::zx_handle_t                                         handle;
 };
 
-struct VkPhysicalDevicePrivateDataFeatures
+struct VkMemoryZirconHandlePropertiesFUCHSIA
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                privateData;
-};
-
-struct VkDevicePrivateDataCreateInfo
-{
-       VkStructureType sType;
-       const void*             pNext;
-       uint32_t                privateDataSlotRequestCount;
+       uint32_t                memoryTypeBits;
 };
 
-struct VkPrivateDataSlotCreateInfo
+struct VkMemoryGetZirconHandleInfoFUCHSIA
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkPrivateDataSlotCreateFlags    flags;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkDeviceMemory                                          memory;
+       VkExternalMemoryHandleTypeFlagBits      handleType;
 };
 
-struct VkPhysicalDevicePipelineCreationCacheControlFeatures
+struct VkMemoryWin32HandlePropertiesKHR
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                pipelineCreationCacheControl;
+       uint32_t                memoryTypeBits;
 };
 
-struct VkMemoryBarrier2
+struct VkMemoryGetWin32HandleInfoKHR
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkPipelineStageFlags2   srcStageMask;
-       VkAccessFlags2                  srcAccessMask;
-       VkPipelineStageFlags2   dstStageMask;
-       VkAccessFlags2                  dstAccessMask;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkDeviceMemory                                          memory;
+       VkExternalMemoryHandleTypeFlagBits      handleType;
 };
 
-struct VkBufferMemoryBarrier2
+struct VkImportMemoryFdInfoKHR
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkPipelineStageFlags2   srcStageMask;
-       VkAccessFlags2                  srcAccessMask;
-       VkPipelineStageFlags2   dstStageMask;
-       VkAccessFlags2                  dstAccessMask;
-       uint32_t                                srcQueueFamilyIndex;
-       uint32_t                                dstQueueFamilyIndex;
-       VkBuffer                                buffer;
-       VkDeviceSize                    offset;
-       VkDeviceSize                    size;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkExternalMemoryHandleTypeFlagBits      handleType;
+       int                                                                     fd;
 };
 
-struct VkImageMemoryBarrier2
+struct VkMemoryFdPropertiesKHR
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkPipelineStageFlags2   srcStageMask;
-       VkAccessFlags2                  srcAccessMask;
-       VkPipelineStageFlags2   dstStageMask;
-       VkAccessFlags2                  dstAccessMask;
-       VkImageLayout                   oldLayout;
-       VkImageLayout                   newLayout;
-       uint32_t                                srcQueueFamilyIndex;
-       uint32_t                                dstQueueFamilyIndex;
-       VkImage                                 image;
-       VkImageSubresourceRange subresourceRange;
+       VkStructureType sType;
+       void*                   pNext;
+       uint32_t                memoryTypeBits;
 };
 
-struct VkDependencyInfo
+struct VkMemoryGetFdInfoKHR
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkDependencyFlags                               dependencyFlags;
-       uint32_t                                                memoryBarrierCount;
-       const VkMemoryBarrier2*                 pMemoryBarriers;
-       uint32_t                                                bufferMemoryBarrierCount;
-       const VkBufferMemoryBarrier2*   pBufferMemoryBarriers;
-       uint32_t                                                imageMemoryBarrierCount;
-       const VkImageMemoryBarrier2*    pImageMemoryBarriers;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkDeviceMemory                                          memory;
+       VkExternalMemoryHandleTypeFlagBits      handleType;
 };
 
-struct VkSemaphoreSubmitInfo
+struct VkWin32KeyedMutexAcquireReleaseInfoKHR
 {
        VkStructureType                 sType;
        const void*                             pNext;
-       VkSemaphore                             semaphore;
-       uint64_t                                value;
-       VkPipelineStageFlags2   stageMask;
-       uint32_t                                deviceIndex;
+       uint32_t                                acquireCount;
+       const VkDeviceMemory*   pAcquireSyncs;
+       const uint64_t*                 pAcquireKeys;
+       const uint32_t*                 pAcquireTimeouts;
+       uint32_t                                releaseCount;
+       const VkDeviceMemory*   pReleaseSyncs;
+       const uint64_t*                 pReleaseKeys;
 };
 
-struct VkCommandBufferSubmitInfo
+struct VkPhysicalDeviceExternalSemaphoreInfo
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkCommandBuffer commandBuffer;
-       uint32_t                deviceMask;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkExternalSemaphoreHandleTypeFlagBits   handleType;
 };
 
-struct VkSubmitInfo2
+struct VkExternalSemaphoreProperties
 {
        VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkSubmitFlags                                           flags;
-       uint32_t                                                        waitSemaphoreInfoCount;
-       const VkSemaphoreSubmitInfo*            pWaitSemaphoreInfos;
-       uint32_t                                                        commandBufferInfoCount;
-       const VkCommandBufferSubmitInfo*        pCommandBufferInfos;
-       uint32_t                                                        signalSemaphoreInfoCount;
-       const VkSemaphoreSubmitInfo*            pSignalSemaphoreInfos;
+       void*                                                           pNext;
+       VkExternalSemaphoreHandleTypeFlags      exportFromImportedHandleTypes;
+       VkExternalSemaphoreHandleTypeFlags      compatibleHandleTypes;
+       VkExternalSemaphoreFeatureFlags         externalSemaphoreFeatures;
 };
 
-struct VkPhysicalDeviceSynchronization2Features
+struct VkExportSemaphoreCreateInfo
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                synchronization2;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkExternalSemaphoreHandleTypeFlags      handleTypes;
 };
 
-struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
+struct VkImportSemaphoreWin32HandleInfoKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                shaderZeroInitializeWorkgroupMemory;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkSemaphore                                                             semaphore;
+       VkSemaphoreImportFlags                                  flags;
+       VkExternalSemaphoreHandleTypeFlagBits   handleType;
+       pt::Win32Handle                                                 handle;
+       pt::Win32LPCWSTR                                                name;
 };
 
-struct VkPhysicalDeviceImageRobustnessFeatures
+struct VkExportSemaphoreWin32HandleInfoKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                robustImageAccess;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       pt::Win32SecurityAttributesPtr  pAttributes;
+       uint32_t                                                dwAccess;
+       pt::Win32LPCWSTR                                name;
 };
 
-struct VkBufferCopy2
+struct VkD3D12FenceSubmitInfoKHR
 {
        VkStructureType sType;
        const void*             pNext;
-       VkDeviceSize    srcOffset;
-       VkDeviceSize    dstOffset;
-       VkDeviceSize    size;
+       uint32_t                waitSemaphoreValuesCount;
+       const uint64_t* pWaitSemaphoreValues;
+       uint32_t                signalSemaphoreValuesCount;
+       const uint64_t* pSignalSemaphoreValues;
 };
 
-struct VkCopyBufferInfo2
+struct VkSemaphoreGetWin32HandleInfoKHR
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkBuffer                                srcBuffer;
-       VkBuffer                                dstBuffer;
-       uint32_t                                regionCount;
-       const VkBufferCopy2*    pRegions;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkSemaphore                                                             semaphore;
+       VkExternalSemaphoreHandleTypeFlagBits   handleType;
 };
 
-struct VkImageCopy2
+struct VkImportSemaphoreFdInfoKHR
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkImageSubresourceLayers        srcSubresource;
-       VkOffset3D                                      srcOffset;
-       VkImageSubresourceLayers        dstSubresource;
-       VkOffset3D                                      dstOffset;
-       VkExtent3D                                      extent;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkSemaphore                                                             semaphore;
+       VkSemaphoreImportFlags                                  flags;
+       VkExternalSemaphoreHandleTypeFlagBits   handleType;
+       int                                                                             fd;
 };
 
-struct VkCopyImageInfo2
+struct VkSemaphoreGetFdInfoKHR
 {
-       VkStructureType         sType;
-       const void*                     pNext;
-       VkImage                         srcImage;
-       VkImageLayout           srcImageLayout;
-       VkImage                         dstImage;
-       VkImageLayout           dstImageLayout;
-       uint32_t                        regionCount;
-       const VkImageCopy2*     pRegions;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkSemaphore                                                             semaphore;
+       VkExternalSemaphoreHandleTypeFlagBits   handleType;
 };
 
-struct VkBufferImageCopy2
+struct VkImportSemaphoreZirconHandleInfoFUCHSIA
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkDeviceSize                            bufferOffset;
-       uint32_t                                        bufferRowLength;
-       uint32_t                                        bufferImageHeight;
-       VkImageSubresourceLayers        imageSubresource;
-       VkOffset3D                                      imageOffset;
-       VkExtent3D                                      imageExtent;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkSemaphore                                                             semaphore;
+       VkSemaphoreImportFlags                                  flags;
+       VkExternalSemaphoreHandleTypeFlagBits   handleType;
+       pt::zx_handle_t                                                 zirconHandle;
 };
 
-struct VkCopyBufferToImageInfo2
+struct VkSemaphoreGetZirconHandleInfoFUCHSIA
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkBuffer                                        srcBuffer;
-       VkImage                                         dstImage;
-       VkImageLayout                           dstImageLayout;
-       uint32_t                                        regionCount;
-       const VkBufferImageCopy2*       pRegions;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkSemaphore                                                             semaphore;
+       VkExternalSemaphoreHandleTypeFlagBits   handleType;
 };
 
-struct VkCopyImageToBufferInfo2
+struct VkPhysicalDeviceExternalFenceInfo
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkImage                                         srcImage;
-       VkImageLayout                           srcImageLayout;
-       VkBuffer                                        dstBuffer;
-       uint32_t                                        regionCount;
-       const VkBufferImageCopy2*       pRegions;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkExternalFenceHandleTypeFlagBits       handleType;
 };
 
-struct VkImageBlit2
+struct VkExternalFenceProperties
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkImageSubresourceLayers        srcSubresource;
-       VkOffset3D                                      srcOffsets[2];
-       VkImageSubresourceLayers        dstSubresource;
-       VkOffset3D                                      dstOffsets[2];
+       VkStructureType                                 sType;
+       void*                                                   pNext;
+       VkExternalFenceHandleTypeFlags  exportFromImportedHandleTypes;
+       VkExternalFenceHandleTypeFlags  compatibleHandleTypes;
+       VkExternalFenceFeatureFlags             externalFenceFeatures;
 };
 
-struct VkBlitImageInfo2
+struct VkExportFenceCreateInfo
 {
-       VkStructureType         sType;
-       const void*                     pNext;
-       VkImage                         srcImage;
-       VkImageLayout           srcImageLayout;
-       VkImage                         dstImage;
-       VkImageLayout           dstImageLayout;
-       uint32_t                        regionCount;
-       const VkImageBlit2*     pRegions;
-       VkFilter                        filter;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkExternalFenceHandleTypeFlags  handleTypes;
 };
-
-struct VkImageResolve2
-{
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkImageSubresourceLayers        srcSubresource;
-       VkOffset3D                                      srcOffset;
-       VkImageSubresourceLayers        dstSubresource;
-       VkOffset3D                                      dstOffset;
-       VkExtent3D                                      extent;
+
+struct VkImportFenceWin32HandleInfoKHR
+{
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkFence                                                         fence;
+       VkFenceImportFlags                                      flags;
+       VkExternalFenceHandleTypeFlagBits       handleType;
+       pt::Win32Handle                                         handle;
+       pt::Win32LPCWSTR                                        name;
 };
 
-struct VkResolveImageInfo2
+struct VkExportFenceWin32HandleInfoKHR
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkImage                                 srcImage;
-       VkImageLayout                   srcImageLayout;
-       VkImage                                 dstImage;
-       VkImageLayout                   dstImageLayout;
-       uint32_t                                regionCount;
-       const VkImageResolve2*  pRegions;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       pt::Win32SecurityAttributesPtr  pAttributes;
+       uint32_t                                                dwAccess;
+       pt::Win32LPCWSTR                                name;
 };
 
-struct VkPhysicalDeviceSubgroupSizeControlFeatures
+struct VkFenceGetWin32HandleInfoKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                subgroupSizeControl;
-       VkBool32                computeFullSubgroups;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkFence                                                         fence;
+       VkExternalFenceHandleTypeFlagBits       handleType;
 };
 
-struct VkPhysicalDeviceSubgroupSizeControlProperties
+struct VkImportFenceFdInfoKHR
 {
-       VkStructureType         sType;
-       void*                           pNext;
-       uint32_t                        minSubgroupSize;
-       uint32_t                        maxSubgroupSize;
-       uint32_t                        maxComputeWorkgroupSubgroups;
-       VkShaderStageFlags      requiredSubgroupSizeStages;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkFence                                                         fence;
+       VkFenceImportFlags                                      flags;
+       VkExternalFenceHandleTypeFlagBits       handleType;
+       int                                                                     fd;
 };
 
-struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo
+struct VkFenceGetFdInfoKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       uint32_t                requiredSubgroupSize;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkFence                                                         fence;
+       VkExternalFenceHandleTypeFlagBits       handleType;
 };
 
-struct VkPhysicalDeviceInlineUniformBlockFeatures
+struct VkPhysicalDeviceMultiviewFeatures
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                inlineUniformBlock;
-       VkBool32                descriptorBindingInlineUniformBlockUpdateAfterBind;
+       VkBool32                multiview;
+       VkBool32                multiviewGeometryShader;
+       VkBool32                multiviewTessellationShader;
 };
 
-struct VkPhysicalDeviceInlineUniformBlockProperties
+struct VkPhysicalDeviceMultiviewProperties
 {
        VkStructureType sType;
        void*                   pNext;
-       uint32_t                maxInlineUniformBlockSize;
-       uint32_t                maxPerStageDescriptorInlineUniformBlocks;
-       uint32_t                maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
-       uint32_t                maxDescriptorSetInlineUniformBlocks;
-       uint32_t                maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
+       uint32_t                maxMultiviewViewCount;
+       uint32_t                maxMultiviewInstanceIndex;
 };
 
-struct VkWriteDescriptorSetInlineUniformBlock
+struct VkRenderPassMultiviewCreateInfo
 {
        VkStructureType sType;
        const void*             pNext;
-       uint32_t                dataSize;
-       const void*             pData;
+       uint32_t                subpassCount;
+       const uint32_t* pViewMasks;
+       uint32_t                dependencyCount;
+       const int32_t*  pViewOffsets;
+       uint32_t                correlationMaskCount;
+       const uint32_t* pCorrelationMasks;
 };
 
-struct VkDescriptorPoolInlineUniformBlockCreateInfo
+struct VkSurfaceCapabilities2EXT
 {
-       VkStructureType sType;
-       const void*             pNext;
-       uint32_t                maxInlineUniformBlockBindings;
+       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;
 };
 
-struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures
+struct VkDisplayPowerInfoEXT
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                textureCompressionASTC_HDR;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkDisplayPowerStateEXT  powerState;
 };
 
-struct VkRenderingAttachmentInfo
+struct VkDeviceEventInfoEXT
 {
        VkStructureType                 sType;
        const void*                             pNext;
-       VkImageView                             imageView;
-       VkImageLayout                   imageLayout;
-       VkResolveModeFlagBits   resolveMode;
-       VkImageView                             resolveImageView;
-       VkImageLayout                   resolveImageLayout;
-       VkAttachmentLoadOp              loadOp;
-       VkAttachmentStoreOp             storeOp;
-       VkClearValue                    clearValue;
+       VkDeviceEventTypeEXT    deviceEvent;
 };
 
-struct VkRenderingInfo
+struct VkDisplayEventInfoEXT
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkRenderingFlags                                        flags;
-       VkRect2D                                                        renderArea;
-       uint32_t                                                        layerCount;
-       uint32_t                                                        viewMask;
-       uint32_t                                                        colorAttachmentCount;
-       const VkRenderingAttachmentInfo*        pColorAttachments;
-       const VkRenderingAttachmentInfo*        pDepthAttachment;
-       const VkRenderingAttachmentInfo*        pStencilAttachment;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkDisplayEventTypeEXT   displayEvent;
 };
 
-struct VkPipelineRenderingCreateInfo
+struct VkSwapchainCounterCreateInfoEXT
 {
-       VkStructureType sType;
-       const void*             pNext;
-       uint32_t                viewMask;
-       uint32_t                colorAttachmentCount;
-       const VkFormat* pColorAttachmentFormats;
-       VkFormat                depthAttachmentFormat;
-       VkFormat                stencilAttachmentFormat;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkSurfaceCounterFlagsEXT        surfaceCounters;
 };
 
-struct VkPhysicalDeviceDynamicRenderingFeatures
+struct VkPhysicalDeviceGroupProperties
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                dynamicRendering;
+       VkStructureType         sType;
+       void*                           pNext;
+       uint32_t                        physicalDeviceCount;
+       VkPhysicalDevice        physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
+       VkBool32                        subsetAllocation;
 };
 
-struct VkCommandBufferInheritanceRenderingInfo
+struct VkMemoryAllocateFlagsInfo
 {
        VkStructureType                 sType;
        const void*                             pNext;
-       VkRenderingFlags                flags;
-       uint32_t                                viewMask;
-       uint32_t                                colorAttachmentCount;
-       const VkFormat*                 pColorAttachmentFormats;
-       VkFormat                                depthAttachmentFormat;
-       VkFormat                                stencilAttachmentFormat;
-       VkSampleCountFlagBits   rasterizationSamples;
-};
-
-struct VkPhysicalDeviceShaderIntegerDotProductFeatures
-{
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                shaderIntegerDotProduct;
+       VkMemoryAllocateFlags   flags;
+       uint32_t                                deviceMask;
 };
 
-struct VkPhysicalDeviceShaderIntegerDotProductProperties
+struct VkBindBufferMemoryInfo
 {
        VkStructureType sType;
-       void*                   pNext;
-       VkBool32                integerDotProduct8BitUnsignedAccelerated;
-       VkBool32                integerDotProduct8BitSignedAccelerated;
-       VkBool32                integerDotProduct8BitMixedSignednessAccelerated;
-       VkBool32                integerDotProduct4x8BitPackedUnsignedAccelerated;
-       VkBool32                integerDotProduct4x8BitPackedSignedAccelerated;
-       VkBool32                integerDotProduct4x8BitPackedMixedSignednessAccelerated;
-       VkBool32                integerDotProduct16BitUnsignedAccelerated;
-       VkBool32                integerDotProduct16BitSignedAccelerated;
-       VkBool32                integerDotProduct16BitMixedSignednessAccelerated;
-       VkBool32                integerDotProduct32BitUnsignedAccelerated;
-       VkBool32                integerDotProduct32BitSignedAccelerated;
-       VkBool32                integerDotProduct32BitMixedSignednessAccelerated;
-       VkBool32                integerDotProduct64BitUnsignedAccelerated;
-       VkBool32                integerDotProduct64BitSignedAccelerated;
-       VkBool32                integerDotProduct64BitMixedSignednessAccelerated;
-       VkBool32                integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
-       VkBool32                integerDotProductAccumulatingSaturating8BitSignedAccelerated;
-       VkBool32                integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
-       VkBool32                integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
-       VkBool32                integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
-       VkBool32                integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
-       VkBool32                integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
-       VkBool32                integerDotProductAccumulatingSaturating16BitSignedAccelerated;
-       VkBool32                integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
-       VkBool32                integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
-       VkBool32                integerDotProductAccumulatingSaturating32BitSignedAccelerated;
-       VkBool32                integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
-       VkBool32                integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
-       VkBool32                integerDotProductAccumulatingSaturating64BitSignedAccelerated;
-       VkBool32                integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
+       const void*             pNext;
+       VkBuffer                buffer;
+       VkDeviceMemory  memory;
+       VkDeviceSize    memoryOffset;
 };
 
-struct VkPhysicalDeviceTexelBufferAlignmentProperties
+struct VkBindBufferMemoryDeviceGroupInfo
 {
        VkStructureType sType;
-       void*                   pNext;
-       VkDeviceSize    storageTexelBufferOffsetAlignmentBytes;
-       VkBool32                storageTexelBufferOffsetSingleTexelAlignment;
-       VkDeviceSize    uniformTexelBufferOffsetAlignmentBytes;
-       VkBool32                uniformTexelBufferOffsetSingleTexelAlignment;
-};
-
-struct VkFormatProperties3
-{
-       VkStructureType                 sType;
-       void*                                   pNext;
-       VkFormatFeatureFlags2   linearTilingFeatures;
-       VkFormatFeatureFlags2   optimalTilingFeatures;
-       VkFormatFeatureFlags2   bufferFeatures;
+       const void*             pNext;
+       uint32_t                deviceIndexCount;
+       const uint32_t* pDeviceIndices;
 };
 
-struct VkPhysicalDeviceMaintenance4Features
+struct VkBindImageMemoryInfo
 {
        VkStructureType sType;
-       void*                   pNext;
-       VkBool32                maintenance4;
+       const void*             pNext;
+       VkImage                 image;
+       VkDeviceMemory  memory;
+       VkDeviceSize    memoryOffset;
 };
 
-struct VkPhysicalDeviceMaintenance4Properties
+struct VkBindImageMemoryDeviceGroupInfo
 {
        VkStructureType sType;
-       void*                   pNext;
-       VkDeviceSize    maxBufferSize;
-};
-
-struct VkDeviceBufferMemoryRequirements
-{
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       const VkBufferCreateInfo*       pCreateInfo;
+       const void*             pNext;
+       uint32_t                deviceIndexCount;
+       const uint32_t* pDeviceIndices;
+       uint32_t                splitInstanceBindRegionCount;
+       const VkRect2D* pSplitInstanceBindRegions;
 };
 
-struct VkDeviceImageMemoryRequirements
+struct VkDeviceGroupRenderPassBeginInfo
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       const VkImageCreateInfo*        pCreateInfo;
-       VkImageAspectFlagBits           planeAspect;
+       VkStructureType sType;
+       const void*             pNext;
+       uint32_t                deviceMask;
+       uint32_t                deviceRenderAreaCount;
+       const VkRect2D* pDeviceRenderAreas;
 };
 
-struct VkSurfaceCapabilitiesKHR
+struct VkDeviceGroupCommandBufferBeginInfo
 {
-       uint32_t                                                minImageCount;
-       uint32_t                                                maxImageCount;
-       VkExtent2D                                              currentExtent;
-       VkExtent2D                                              minImageExtent;
-       VkExtent2D                                              maxImageExtent;
-       uint32_t                                                maxImageArrayLayers;
-       VkSurfaceTransformFlagsKHR              supportedTransforms;
-       VkSurfaceTransformFlagBitsKHR   currentTransform;
-       VkCompositeAlphaFlagsKHR                supportedCompositeAlpha;
-       VkImageUsageFlags                               supportedUsageFlags;
+       VkStructureType sType;
+       const void*             pNext;
+       uint32_t                deviceMask;
 };
 
-struct VkSurfaceFormatKHR
+struct VkDeviceGroupSubmitInfo
 {
-       VkFormat                format;
-       VkColorSpaceKHR colorSpace;
+       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;
 };
 
-struct VkSwapchainCreateInfoKHR
+struct VkDeviceGroupBindSparseInfo
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkSwapchainCreateFlagsKHR               flags;
-       VkSurfaceKHR                                    surface;
-       uint32_t                                                minImageCount;
-       VkFormat                                                imageFormat;
-       VkColorSpaceKHR                                 imageColorSpace;
-       VkExtent2D                                              imageExtent;
-       uint32_t                                                imageArrayLayers;
-       VkImageUsageFlags                               imageUsage;
-       VkSharingMode                                   imageSharingMode;
-       uint32_t                                                queueFamilyIndexCount;
-       const uint32_t*                                 pQueueFamilyIndices;
-       VkSurfaceTransformFlagBitsKHR   preTransform;
-       VkCompositeAlphaFlagBitsKHR             compositeAlpha;
-       VkPresentModeKHR                                presentMode;
-       VkBool32                                                clipped;
-       VkSwapchainKHR                                  oldSwapchain;
+       VkStructureType sType;
+       const void*             pNext;
+       uint32_t                resourceDeviceIndex;
+       uint32_t                memoryDeviceIndex;
 };
 
-struct VkPresentInfoKHR
+struct VkDeviceGroupPresentCapabilitiesKHR
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       uint32_t                                waitSemaphoreCount;
-       const VkSemaphore*              pWaitSemaphores;
-       uint32_t                                swapchainCount;
-       const VkSwapchainKHR*   pSwapchains;
-       const uint32_t*                 pImageIndices;
-       VkResult*                               pResults;
+       VkStructureType                                         sType;
+       void*                                                           pNext;
+       uint32_t                                                        presentMask[VK_MAX_DEVICE_GROUP_SIZE];
+       VkDeviceGroupPresentModeFlagsKHR        modes;
 };
 
 struct VkImageSwapchainCreateInfoKHR
@@ -3030,14 +2367,6 @@ struct VkAcquireNextImageInfoKHR
        uint32_t                deviceMask;
 };
 
-struct VkDeviceGroupPresentCapabilitiesKHR
-{
-       VkStructureType                                         sType;
-       void*                                                           pNext;
-       uint32_t                                                        presentMask[VK_MAX_DEVICE_GROUP_SIZE];
-       VkDeviceGroupPresentModeFlagsKHR        modes;
-};
-
 struct VkDeviceGroupPresentInfoKHR
 {
        VkStructureType                                         sType;
@@ -3047,6 +2376,14 @@ struct VkDeviceGroupPresentInfoKHR
        VkDeviceGroupPresentModeFlagBitsKHR     mode;
 };
 
+struct VkDeviceGroupDeviceCreateInfo
+{
+       VkStructureType                 sType;
+       const void*                             pNext;
+       uint32_t                                physicalDeviceCount;
+       const VkPhysicalDevice* pPhysicalDevices;
+};
+
 struct VkDeviceGroupSwapchainCreateInfoKHR
 {
        VkStructureType                                         sType;
@@ -3054,274 +2391,207 @@ struct VkDeviceGroupSwapchainCreateInfoKHR
        VkDeviceGroupPresentModeFlagsKHR        modes;
 };
 
-struct VkDisplayModeParametersKHR
-{
-       VkExtent2D      visibleRegion;
-       uint32_t        refreshRate;
-};
-
-struct VkDisplayModeCreateInfoKHR
-{
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkDisplayModeCreateFlagsKHR     flags;
-       VkDisplayModeParametersKHR      parameters;
-};
-
-struct VkDisplayModePropertiesKHR
-{
-       VkDisplayModeKHR                        displayMode;
-       VkDisplayModeParametersKHR      parameters;
-};
-
-struct VkDisplayPlaneCapabilitiesKHR
-{
-       VkDisplayPlaneAlphaFlagsKHR     supportedAlpha;
-       VkOffset2D                                      minSrcPosition;
-       VkOffset2D                                      maxSrcPosition;
-       VkExtent2D                                      minSrcExtent;
-       VkExtent2D                                      maxSrcExtent;
-       VkOffset2D                                      minDstPosition;
-       VkOffset2D                                      maxDstPosition;
-       VkExtent2D                                      minDstExtent;
-       VkExtent2D                                      maxDstExtent;
-};
-
-struct VkDisplayPlanePropertiesKHR
+struct VkDescriptorUpdateTemplateEntry
 {
-       VkDisplayKHR    currentDisplay;
-       uint32_t                currentStackIndex;
+       uint32_t                        dstBinding;
+       uint32_t                        dstArrayElement;
+       uint32_t                        descriptorCount;
+       VkDescriptorType        descriptorType;
+       size_t                          offset;
+       size_t                          stride;
 };
 
-struct VkDisplayPropertiesKHR
+struct VkDescriptorUpdateTemplateCreateInfo
 {
-       VkDisplayKHR                            display;
-       const char*                                     displayName;
-       VkExtent2D                                      physicalDimensions;
-       VkExtent2D                                      physicalResolution;
-       VkSurfaceTransformFlagsKHR      supportedTransforms;
-       VkBool32                                        planeReorderPossible;
-       VkBool32                                        persistentContent;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkDescriptorUpdateTemplateCreateFlags   flags;
+       uint32_t                                                                descriptorUpdateEntryCount;
+       const VkDescriptorUpdateTemplateEntry*  pDescriptorUpdateEntries;
+       VkDescriptorUpdateTemplateType                  templateType;
+       VkDescriptorSetLayout                                   descriptorSetLayout;
+       VkPipelineBindPoint                                             pipelineBindPoint;
+       VkPipelineLayout                                                pipelineLayout;
+       uint32_t                                                                set;
 };
 
-struct VkDisplaySurfaceCreateInfoKHR
+struct VkXYColorEXT
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkDisplaySurfaceCreateFlagsKHR  flags;
-       VkDisplayModeKHR                                displayMode;
-       uint32_t                                                planeIndex;
-       uint32_t                                                planeStackIndex;
-       VkSurfaceTransformFlagBitsKHR   transform;
-       float                                                   globalAlpha;
-       VkDisplayPlaneAlphaFlagBitsKHR  alphaMode;
-       VkExtent2D                                              imageExtent;
+       float   x;
+       float   y;
 };
 
-struct VkDisplayPresentInfoKHR
+struct VkPhysicalDevicePresentIdFeaturesKHR
 {
        VkStructureType sType;
-       const void*             pNext;
-       VkRect2D                srcRect;
-       VkRect2D                dstRect;
-       VkBool32                persistent;
+       void*                   pNext;
+       VkBool32                presentId;
 };
 
-struct VkRenderingFragmentShadingRateAttachmentInfoKHR
+struct VkPresentIdKHR
 {
        VkStructureType sType;
        const void*             pNext;
-       VkImageView             imageView;
-       VkImageLayout   imageLayout;
-       VkExtent2D              shadingRateAttachmentTexelSize;
+       uint32_t                swapchainCount;
+       const uint64_t* pPresentIds;
 };
 
-struct VkRenderingFragmentDensityMapAttachmentInfoEXT
+struct VkPhysicalDevicePresentWaitFeaturesKHR
 {
        VkStructureType sType;
-       const void*             pNext;
-       VkImageView             imageView;
-       VkImageLayout   imageLayout;
-};
-
-struct VkAttachmentSampleCountInfoAMD
-{
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       uint32_t                                                colorAttachmentCount;
-       const VkSampleCountFlagBits*    pColorAttachmentSamples;
-       VkSampleCountFlagBits                   depthStencilAttachmentSamples;
+       void*                   pNext;
+       VkBool32                presentWait;
 };
 
-struct VkMultiviewPerViewAttributesInfoNVX
+struct VkHdrMetadataEXT
 {
        VkStructureType sType;
        const void*             pNext;
-       VkBool32                perViewAttributes;
-       VkBool32                perViewAttributesPositionXOnly;
-};
-
-struct VkImportMemoryFdInfoKHR
-{
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkExternalMemoryHandleTypeFlagBits      handleType;
-       int                                                                     fd;
+       VkXYColorEXT    displayPrimaryRed;
+       VkXYColorEXT    displayPrimaryGreen;
+       VkXYColorEXT    displayPrimaryBlue;
+       VkXYColorEXT    whitePoint;
+       float                   maxLuminance;
+       float                   minLuminance;
+       float                   maxContentLightLevel;
+       float                   maxFrameAverageLightLevel;
 };
 
-struct VkMemoryFdPropertiesKHR
+struct VkDisplayNativeHdrSurfaceCapabilitiesAMD
 {
        VkStructureType sType;
        void*                   pNext;
-       uint32_t                memoryTypeBits;
-};
-
-struct VkMemoryGetFdInfoKHR
-{
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkDeviceMemory                                          memory;
-       VkExternalMemoryHandleTypeFlagBits      handleType;
-};
-
-struct VkImportSemaphoreFdInfoKHR
-{
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkSemaphore                                                             semaphore;
-       VkSemaphoreImportFlags                                  flags;
-       VkExternalSemaphoreHandleTypeFlagBits   handleType;
-       int                                                                             fd;
+       VkBool32                localDimmingSupport;
 };
 
-struct VkSemaphoreGetFdInfoKHR
+struct VkSwapchainDisplayNativeHdrCreateInfoAMD
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkSemaphore                                                             semaphore;
-       VkExternalSemaphoreHandleTypeFlagBits   handleType;
+       VkStructureType sType;
+       const void*             pNext;
+       VkBool32                localDimmingEnable;
 };
 
-struct VkPhysicalDevicePushDescriptorPropertiesKHR
-{
-       VkStructureType sType;
-       void*                   pNext;
-       uint32_t                maxPushDescriptors;
+struct VkRefreshCycleDurationGOOGLE
+{
+       uint64_t        refreshDuration;
 };
 
-struct VkRectLayerKHR
+struct VkPastPresentationTimingGOOGLE
 {
-       VkOffset2D      offset;
-       VkExtent2D      extent;
-       uint32_t        layer;
+       uint32_t        presentID;
+       uint64_t        desiredPresentTime;
+       uint64_t        actualPresentTime;
+       uint64_t        earliestPresentTime;
+       uint64_t        presentMargin;
 };
 
-struct VkPresentRegionKHR
+struct VkPresentTimeGOOGLE
 {
-       uint32_t                                rectangleCount;
-       const VkRectLayerKHR*   pRectangles;
+       uint32_t        presentID;
+       uint64_t        desiredPresentTime;
 };
 
-struct VkPresentRegionsKHR
+struct VkPresentTimesInfoGOOGLE
 {
        VkStructureType                         sType;
        const void*                                     pNext;
        uint32_t                                        swapchainCount;
-       const VkPresentRegionKHR*       pRegions;
+       const VkPresentTimeGOOGLE*      pTimes;
 };
 
-struct VkSharedPresentSurfaceCapabilitiesKHR
+struct VkIOSSurfaceCreateInfoMVK
 {
-       VkStructureType         sType;
-       void*                           pNext;
-       VkImageUsageFlags       sharedPresentSupportedUsageFlags;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkIOSSurfaceCreateFlagsMVK      flags;
+       const void*                                     pView;
 };
 
-struct VkImportFenceFdInfoKHR
+struct VkMacOSSurfaceCreateInfoMVK
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkFence                                                         fence;
-       VkFenceImportFlags                                      flags;
-       VkExternalFenceHandleTypeFlagBits       handleType;
-       int                                                                     fd;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkMacOSSurfaceCreateFlagsMVK    flags;
+       const void*                                             pView;
 };
 
-struct VkFenceGetFdInfoKHR
+struct VkMetalSurfaceCreateInfoEXT
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkFence                                                         fence;
-       VkExternalFenceHandleTypeFlagBits       handleType;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkMetalSurfaceCreateFlagsEXT    flags;
+       const pt::CAMetalLayer*                 pLayer;
 };
 
-struct VkPhysicalDevicePerformanceQueryFeaturesKHR
+struct VkViewportWScalingNV
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                performanceCounterQueryPools;
-       VkBool32                performanceCounterMultipleQueryPools;
+       float   xcoeff;
+       float   ycoeff;
 };
 
-struct VkPhysicalDevicePerformanceQueryPropertiesKHR
+struct VkPipelineViewportWScalingStateCreateInfoNV
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                allowCommandBufferQueryCopies;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkBool32                                        viewportWScalingEnable;
+       uint32_t                                        viewportCount;
+       const VkViewportWScalingNV*     pViewportWScalings;
 };
 
-struct VkPerformanceCounterKHR
+struct VkViewportSwizzleNV
 {
-       VkStructureType                                 sType;
-       void*                                                   pNext;
-       VkPerformanceCounterUnitKHR             unit;
-       VkPerformanceCounterScopeKHR    scope;
-       VkPerformanceCounterStorageKHR  storage;
-       uint8_t                                                 uuid[VK_UUID_SIZE];
+       VkViewportCoordinateSwizzleNV   x;
+       VkViewportCoordinateSwizzleNV   y;
+       VkViewportCoordinateSwizzleNV   z;
+       VkViewportCoordinateSwizzleNV   w;
 };
 
-struct VkPerformanceCounterDescriptionKHR
+struct VkPipelineViewportSwizzleStateCreateInfoNV
 {
-       VkStructureType                                                 sType;
-       void*                                                                   pNext;
-       VkPerformanceCounterDescriptionFlagsKHR flags;
-       char                                                                    name[VK_MAX_DESCRIPTION_SIZE];
-       char                                                                    category[VK_MAX_DESCRIPTION_SIZE];
-       char                                                                    description[VK_MAX_DESCRIPTION_SIZE];
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       VkPipelineViewportSwizzleStateCreateFlagsNV     flags;
+       uint32_t                                                                        viewportCount;
+       const VkViewportSwizzleNV*                                      pViewportSwizzles;
 };
 
-struct VkQueryPoolPerformanceCreateInfoKHR
+struct VkPhysicalDeviceDiscardRectanglePropertiesEXT
 {
        VkStructureType sType;
-       const void*             pNext;
-       uint32_t                queueFamilyIndex;
-       uint32_t                counterIndexCount;
-       const uint32_t* pCounterIndices;
+       void*                   pNext;
+       uint32_t                maxDiscardRectangles;
 };
 
-union VkPerformanceCounterResultKHR
+struct VkPipelineDiscardRectangleStateCreateInfoEXT
 {
-       int32_t         int32;
-       int64_t         int64;
-       uint32_t        uint32;
-       uint64_t        uint64;
-       float           float32;
-       double          float64;
+       VkStructureType                                                                 sType;
+       const void*                                                                             pNext;
+       VkPipelineDiscardRectangleStateCreateFlagsEXT   flags;
+       VkDiscardRectangleModeEXT                                               discardRectangleMode;
+       uint32_t                                                                                discardRectangleCount;
+       const VkRect2D*                                                                 pDiscardRectangles;
 };
 
-struct VkAcquireProfilingLockInfoKHR
+struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkAcquireProfilingLockFlagsKHR  flags;
-       uint64_t                                                timeout;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                perViewPositionAllComponents;
 };
 
-struct VkPerformanceQuerySubmitInfoKHR
+struct VkInputAttachmentAspectReference
 {
-       VkStructureType sType;
-       const void*             pNext;
-       uint32_t                counterPassIndex;
+       uint32_t                        subpass;
+       uint32_t                        inputAttachmentIndex;
+       VkImageAspectFlags      aspectMask;
+};
+
+struct VkRenderPassInputAttachmentAspectCreateInfo
+{
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       uint32_t                                                                aspectReferenceCount;
+       const VkInputAttachmentAspectReference* pAspectReferences;
 };
 
 struct VkPhysicalDeviceSurfaceInfo2KHR
@@ -3381,416 +2651,486 @@ struct VkDisplayPlaneCapabilities2KHR
        VkDisplayPlaneCapabilitiesKHR   capabilities;
 };
 
-struct VkPhysicalDeviceShaderClockFeaturesKHR
+struct VkSharedPresentSurfaceCapabilitiesKHR
+{
+       VkStructureType         sType;
+       void*                           pNext;
+       VkImageUsageFlags       sharedPresentSupportedUsageFlags;
+};
+
+struct VkPhysicalDevice16BitStorageFeatures
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                shaderSubgroupClock;
-       VkBool32                shaderDeviceClock;
+       VkBool32                storageBuffer16BitAccess;
+       VkBool32                uniformAndStorageBuffer16BitAccess;
+       VkBool32                storagePushConstant16;
+       VkBool32                storageInputOutput16;
 };
 
-struct VkDeviceQueueGlobalPriorityCreateInfoKHR
+struct VkPhysicalDeviceSubgroupProperties
+{
+       VkStructureType                 sType;
+       void*                                   pNext;
+       uint32_t                                subgroupSize;
+       VkShaderStageFlags              supportedStages;
+       VkSubgroupFeatureFlags  supportedOperations;
+       VkBool32                                quadOperationsInAllStages;
+};
+
+struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                shaderSubgroupExtendedTypes;
+};
+
+struct VkBufferMemoryRequirementsInfo2
+{
+       VkStructureType sType;
+       const void*             pNext;
+       VkBuffer                buffer;
+};
+
+struct VkDeviceBufferMemoryRequirements
 {
        VkStructureType                         sType;
        const void*                                     pNext;
-       VkQueueGlobalPriorityKHR        globalPriority;
+       const VkBufferCreateInfo*       pCreateInfo;
 };
 
-struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR
+struct VkImageMemoryRequirementsInfo2
 {
        VkStructureType sType;
-       void*                   pNext;
-       VkBool32                globalPriorityQuery;
+       const void*             pNext;
+       VkImage                 image;
 };
 
-struct VkQueueFamilyGlobalPriorityPropertiesKHR
+struct VkImageSparseMemoryRequirementsInfo2
+{
+       VkStructureType sType;
+       const void*             pNext;
+       VkImage                 image;
+};
+
+struct VkDeviceImageMemoryRequirements
 {
        VkStructureType                         sType;
-       void*                                           pNext;
-       uint32_t                                        priorityCount;
-       VkQueueGlobalPriorityKHR        priorities[VK_MAX_GLOBAL_PRIORITY_SIZE_KHR];
+       const void*                                     pNext;
+       const VkImageCreateInfo*        pCreateInfo;
+       VkImageAspectFlagBits           planeAspect;
 };
 
-struct VkFragmentShadingRateAttachmentInfoKHR
+struct VkMemoryRequirements2
+{
+       VkStructureType                 sType;
+       void*                                   pNext;
+       VkMemoryRequirements    memoryRequirements;
+};
+
+struct VkSparseImageMemoryRequirements2
 {
        VkStructureType                                 sType;
-       const void*                                             pNext;
-       const VkAttachmentReference2*   pFragmentShadingRateAttachment;
-       VkExtent2D                                              shadingRateAttachmentTexelSize;
+       void*                                                   pNext;
+       VkSparseImageMemoryRequirements memoryRequirements;
+};
+
+struct VkPhysicalDevicePointClippingProperties
+{
+       VkStructureType                 sType;
+       void*                                   pNext;
+       VkPointClippingBehavior pointClippingBehavior;
+};
+
+struct VkMemoryDedicatedRequirements
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                prefersDedicatedAllocation;
+       VkBool32                requiresDedicatedAllocation;
+};
+
+struct VkMemoryDedicatedAllocateInfo
+{
+       VkStructureType sType;
+       const void*             pNext;
+       VkImage                 image;
+       VkBuffer                buffer;
+};
+
+struct VkImageViewUsageCreateInfo
+{
+       VkStructureType         sType;
+       const void*                     pNext;
+       VkImageUsageFlags       usage;
+};
+
+struct VkPipelineTessellationDomainOriginStateCreateInfo
+{
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkTessellationDomainOrigin      domainOrigin;
 };
 
-struct VkPipelineFragmentShadingRateStateCreateInfoKHR
+struct VkSamplerYcbcrConversionInfo
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkExtent2D                                                      fragmentSize;
-       VkFragmentShadingRateCombinerOpKHR      combinerOps[2];
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkSamplerYcbcrConversion        conversion;
 };
 
-struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR
+struct VkSamplerYcbcrConversionCreateInfo
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                pipelineFragmentShadingRate;
-       VkBool32                primitiveFragmentShadingRate;
-       VkBool32                attachmentFragmentShadingRate;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkFormat                                                format;
+       VkSamplerYcbcrModelConversion   ycbcrModel;
+       VkSamplerYcbcrRange                             ycbcrRange;
+       VkComponentMapping                              components;
+       VkChromaLocation                                xChromaOffset;
+       VkChromaLocation                                yChromaOffset;
+       VkFilter                                                chromaFilter;
+       VkBool32                                                forceExplicitReconstruction;
 };
 
-struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR
+struct VkBindImagePlaneMemoryInfo
 {
        VkStructureType                 sType;
-       void*                                   pNext;
-       VkExtent2D                              minFragmentShadingRateAttachmentTexelSize;
-       VkExtent2D                              maxFragmentShadingRateAttachmentTexelSize;
-       uint32_t                                maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
-       VkBool32                                primitiveFragmentShadingRateWithMultipleViewports;
-       VkBool32                                layeredShadingRateAttachments;
-       VkBool32                                fragmentShadingRateNonTrivialCombinerOps;
-       VkExtent2D                              maxFragmentSize;
-       uint32_t                                maxFragmentSizeAspectRatio;
-       uint32_t                                maxFragmentShadingRateCoverageSamples;
-       VkSampleCountFlagBits   maxFragmentShadingRateRasterizationSamples;
-       VkBool32                                fragmentShadingRateWithShaderDepthStencilWrites;
-       VkBool32                                fragmentShadingRateWithSampleMask;
-       VkBool32                                fragmentShadingRateWithShaderSampleMask;
-       VkBool32                                fragmentShadingRateWithConservativeRasterization;
-       VkBool32                                fragmentShadingRateWithFragmentShaderInterlock;
-       VkBool32                                fragmentShadingRateWithCustomSampleLocations;
-       VkBool32                                fragmentShadingRateStrictMultiplyCombiner;
+       const void*                             pNext;
+       VkImageAspectFlagBits   planeAspect;
 };
 
-struct VkPhysicalDeviceFragmentShadingRateKHR
+struct VkImagePlaneMemoryRequirementsInfo
 {
-       VkStructureType         sType;
-       void*                           pNext;
-       VkSampleCountFlags      sampleCounts;
-       VkExtent2D                      fragmentSize;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkImageAspectFlagBits   planeAspect;
 };
 
-struct VkSurfaceProtectedCapabilitiesKHR
+struct VkPhysicalDeviceSamplerYcbcrConversionFeatures
 {
        VkStructureType sType;
-       const void*             pNext;
-       VkBool32                supportsProtected;
+       void*                   pNext;
+       VkBool32                samplerYcbcrConversion;
 };
 
-struct VkPhysicalDevicePresentWaitFeaturesKHR
+struct VkSamplerYcbcrConversionImageFormatProperties
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                presentWait;
+       uint32_t                combinedImageSamplerDescriptorCount;
 };
 
-struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR
+struct VkTextureLODGatherFormatPropertiesAMD
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                pipelineExecutableInfo;
+       VkBool32                supportsTextureGatherLODBiasAMD;
 };
 
-struct VkPipelineInfoKHR
+struct VkConditionalRenderingBeginInfoEXT
+{
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkBuffer                                                buffer;
+       VkDeviceSize                                    offset;
+       VkConditionalRenderingFlagsEXT  flags;
+};
+
+struct VkProtectedSubmitInfo
 {
        VkStructureType sType;
        const void*             pNext;
-       VkPipeline              pipeline;
+       VkBool32                protectedSubmit;
 };
 
-struct VkPipelineExecutablePropertiesKHR
+struct VkPhysicalDeviceProtectedMemoryFeatures
 {
-       VkStructureType         sType;
-       void*                           pNext;
-       VkShaderStageFlags      stages;
-       char                            name[VK_MAX_DESCRIPTION_SIZE];
-       char                            description[VK_MAX_DESCRIPTION_SIZE];
-       uint32_t                        subgroupSize;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                protectedMemory;
 };
 
-struct VkPipelineExecutableInfoKHR
+struct VkPhysicalDeviceProtectedMemoryProperties
 {
        VkStructureType sType;
-       const void*             pNext;
-       VkPipeline              pipeline;
-       uint32_t                executableIndex;
+       void*                   pNext;
+       VkBool32                protectedNoFault;
 };
 
-union VkPipelineExecutableStatisticValueKHR
+struct VkDeviceQueueInfo2
 {
-       VkBool32        b32;
-       int64_t         i64;
-       uint64_t        u64;
-       double          f64;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkDeviceQueueCreateFlags        flags;
+       uint32_t                                        queueFamilyIndex;
+       uint32_t                                        queueIndex;
 };
 
-struct VkPipelineExecutableStatisticKHR
+struct VkPipelineCoverageToColorStateCreateInfoNV
 {
-       VkStructureType                                                 sType;
-       void*                                                                   pNext;
-       char                                                                    name[VK_MAX_DESCRIPTION_SIZE];
-       char                                                                    description[VK_MAX_DESCRIPTION_SIZE];
-       VkPipelineExecutableStatisticFormatKHR  format;
-       VkPipelineExecutableStatisticValueKHR   value;
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       VkPipelineCoverageToColorStateCreateFlagsNV     flags;
+       VkBool32                                                                        coverageToColorEnable;
+       uint32_t                                                                        coverageToColorLocation;
 };
 
-struct VkPipelineExecutableInternalRepresentationKHR
+struct VkPhysicalDeviceSamplerFilterMinmaxProperties
 {
        VkStructureType sType;
        void*                   pNext;
-       char                    name[VK_MAX_DESCRIPTION_SIZE];
-       char                    description[VK_MAX_DESCRIPTION_SIZE];
-       VkBool32                isText;
-       size_t                  dataSize;
-       void*                   pData;
+       VkBool32                filterMinmaxSingleComponentFormats;
+       VkBool32                filterMinmaxImageComponentMapping;
 };
 
-struct VkPipelineLibraryCreateInfoKHR
+struct VkSampleLocationEXT
 {
-       VkStructureType         sType;
-       const void*                     pNext;
-       uint32_t                        libraryCount;
-       const VkPipeline*       pLibraries;
+       float   x;
+       float   y;
 };
 
-struct VkPresentIdKHR
+struct VkSampleLocationsInfoEXT
 {
-       VkStructureType sType;
-       const void*             pNext;
-       uint32_t                swapchainCount;
-       const uint64_t* pPresentIds;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkSampleCountFlagBits           sampleLocationsPerPixel;
+       VkExtent2D                                      sampleLocationGridSize;
+       uint32_t                                        sampleLocationsCount;
+       const VkSampleLocationEXT*      pSampleLocations;
 };
 
-struct VkPhysicalDevicePresentIdFeaturesKHR
+struct VkAttachmentSampleLocationsEXT
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                presentId;
+       uint32_t                                        attachmentIndex;
+       VkSampleLocationsInfoEXT        sampleLocationsInfo;
 };
 
-struct VkQueueFamilyCheckpointProperties2NV
+struct VkSubpassSampleLocationsEXT
 {
-       VkStructureType                 sType;
-       void*                                   pNext;
-       VkPipelineStageFlags2   checkpointExecutionStageMask;
+       uint32_t                                        subpassIndex;
+       VkSampleLocationsInfoEXT        sampleLocationsInfo;
 };
 
-struct VkCheckpointData2NV
+struct VkRenderPassSampleLocationsBeginInfoEXT
 {
-       VkStructureType                 sType;
-       void*                                   pNext;
-       VkPipelineStageFlags2   stage;
-       void*                                   pCheckpointMarker;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       uint32_t                                                                attachmentInitialSampleLocationsCount;
+       const VkAttachmentSampleLocationsEXT*   pAttachmentInitialSampleLocations;
+       uint32_t                                                                postSubpassSampleLocationsCount;
+       const VkSubpassSampleLocationsEXT*              pPostSubpassSampleLocations;
 };
 
-struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR
+struct VkPipelineSampleLocationsStateCreateInfoEXT
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                fragmentShaderBarycentric;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkBool32                                        sampleLocationsEnable;
+       VkSampleLocationsInfoEXT        sampleLocationsInfo;
 };
 
-struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR
+struct VkPhysicalDeviceSampleLocationsPropertiesEXT
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                triStripVertexOrderIndependentOfProvokingVertex;
+       VkStructureType         sType;
+       void*                           pNext;
+       VkSampleCountFlags      sampleLocationSampleCounts;
+       VkExtent2D                      maxSampleLocationGridSize;
+       float                           sampleLocationCoordinateRange[2];
+       uint32_t                        sampleLocationSubPixelBits;
+       VkBool32                        variableSampleLocations;
 };
 
-struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
+struct VkMultisamplePropertiesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                shaderSubgroupUniformControlFlow;
+       VkExtent2D              maxSampleLocationGridSize;
 };
 
-struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
+struct VkSamplerReductionModeCreateInfo
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                workgroupMemoryExplicitLayout;
-       VkBool32                workgroupMemoryExplicitLayoutScalarBlockLayout;
-       VkBool32                workgroupMemoryExplicitLayout8BitAccess;
-       VkBool32                workgroupMemoryExplicitLayout16BitAccess;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkSamplerReductionMode  reductionMode;
 };
 
-struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR
+struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                rayTracingMaintenance1;
-       VkBool32                rayTracingPipelineTraceRaysIndirect2;
+       VkBool32                advancedBlendCoherentOperations;
 };
 
-struct VkTraceRaysIndirectCommand2KHR
+struct VkPhysicalDeviceMultiDrawFeaturesEXT
 {
-       VkDeviceAddress raygenShaderRecordAddress;
-       VkDeviceSize    raygenShaderRecordSize;
-       VkDeviceAddress missShaderBindingTableAddress;
-       VkDeviceSize    missShaderBindingTableSize;
-       VkDeviceSize    missShaderBindingTableStride;
-       VkDeviceAddress hitShaderBindingTableAddress;
-       VkDeviceSize    hitShaderBindingTableSize;
-       VkDeviceSize    hitShaderBindingTableStride;
-       VkDeviceAddress callableShaderBindingTableAddress;
-       VkDeviceSize    callableShaderBindingTableSize;
-       VkDeviceSize    callableShaderBindingTableStride;
-       uint32_t                width;
-       uint32_t                height;
-       uint32_t                depth;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                multiDraw;
 };
 
-struct VkDebugReportCallbackCreateInfoEXT
+struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkDebugReportFlagsEXT                   flags;
-       PFN_vkDebugReportCallbackEXT    pfnCallback;
-       void*                                                   pUserData;
+       VkStructureType sType;
+       void*                   pNext;
+       uint32_t                advancedBlendMaxColorAttachments;
+       VkBool32                advancedBlendIndependentBlend;
+       VkBool32                advancedBlendNonPremultipliedSrcColor;
+       VkBool32                advancedBlendNonPremultipliedDstColor;
+       VkBool32                advancedBlendCorrelatedOverlap;
+       VkBool32                advancedBlendAllOperations;
 };
 
-struct VkPipelineRasterizationStateRasterizationOrderAMD
+struct VkPipelineColorBlendAdvancedStateCreateInfoEXT
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkRasterizationOrderAMD rasterizationOrder;
+       VkStructureType         sType;
+       const void*                     pNext;
+       VkBool32                        srcPremultiplied;
+       VkBool32                        dstPremultiplied;
+       VkBlendOverlapEXT       blendOverlap;
 };
 
-struct VkDebugMarkerObjectNameInfoEXT
+struct VkPhysicalDeviceInlineUniformBlockFeatures
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkDebugReportObjectTypeEXT      objectType;
-       uint64_t                                        object;
-       const char*                                     pObjectName;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                inlineUniformBlock;
+       VkBool32                descriptorBindingInlineUniformBlockUpdateAfterBind;
 };
 
-struct VkDebugMarkerObjectTagInfoEXT
+struct VkPhysicalDeviceInlineUniformBlockProperties
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkDebugReportObjectTypeEXT      objectType;
-       uint64_t                                        object;
-       uint64_t                                        tagName;
-       size_t                                          tagSize;
-       const void*                                     pTag;
+       VkStructureType sType;
+       void*                   pNext;
+       uint32_t                maxInlineUniformBlockSize;
+       uint32_t                maxPerStageDescriptorInlineUniformBlocks;
+       uint32_t                maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
+       uint32_t                maxDescriptorSetInlineUniformBlocks;
+       uint32_t                maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
 };
 
-struct VkDebugMarkerMarkerInfoEXT
+struct VkWriteDescriptorSetInlineUniformBlock
 {
        VkStructureType sType;
        const void*             pNext;
-       const char*             pMarkerName;
-       float                   color[4];
+       uint32_t                dataSize;
+       const void*             pData;
 };
 
-struct VkDedicatedAllocationImageCreateInfoNV
+struct VkDescriptorPoolInlineUniformBlockCreateInfo
 {
        VkStructureType sType;
        const void*             pNext;
-       VkBool32                dedicatedAllocation;
+       uint32_t                maxInlineUniformBlockBindings;
 };
 
-struct VkDedicatedAllocationBufferCreateInfoNV
+struct VkPipelineCoverageModulationStateCreateInfoNV
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkBool32                dedicatedAllocation;
+       VkStructureType                                                                 sType;
+       const void*                                                                             pNext;
+       VkPipelineCoverageModulationStateCreateFlagsNV  flags;
+       VkCoverageModulationModeNV                                              coverageModulationMode;
+       VkBool32                                                                                coverageModulationTableEnable;
+       uint32_t                                                                                coverageModulationTableCount;
+       const float*                                                                    pCoverageModulationTable;
 };
 
-struct VkDedicatedAllocationMemoryAllocateInfoNV
+struct VkImageFormatListCreateInfo
 {
        VkStructureType sType;
        const void*             pNext;
-       VkImage                 image;
-       VkBuffer                buffer;
+       uint32_t                viewFormatCount;
+       const VkFormat* pViewFormats;
 };
 
-struct VkPhysicalDeviceTransformFeedbackFeaturesEXT
+struct VkValidationCacheCreateInfoEXT
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                transformFeedback;
-       VkBool32                geometryStreams;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkValidationCacheCreateFlagsEXT flags;
+       size_t                                                  initialDataSize;
+       const void*                                             pInitialData;
 };
 
-struct VkPhysicalDeviceTransformFeedbackPropertiesEXT
+struct VkShaderModuleValidationCacheCreateInfoEXT
 {
-       VkStructureType sType;
-       void*                   pNext;
-       uint32_t                maxTransformFeedbackStreams;
-       uint32_t                maxTransformFeedbackBuffers;
-       VkDeviceSize    maxTransformFeedbackBufferSize;
-       uint32_t                maxTransformFeedbackStreamDataSize;
-       uint32_t                maxTransformFeedbackBufferDataSize;
-       uint32_t                maxTransformFeedbackBufferDataStride;
-       VkBool32                transformFeedbackQueries;
-       VkBool32                transformFeedbackStreamsLinesTriangles;
-       VkBool32                transformFeedbackRasterizationStreamSelect;
-       VkBool32                transformFeedbackDraw;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkValidationCacheEXT    validationCache;
 };
 
-struct VkPipelineRasterizationStateStreamCreateInfoEXT
+struct VkPhysicalDeviceMaintenance3Properties
 {
-       VkStructureType                                                                         sType;
-       const void*                                                                                     pNext;
-       VkPipelineRasterizationStateStreamCreateFlagsEXT        flags;
-       uint32_t                                                                                        rasterizationStream;
+       VkStructureType sType;
+       void*                   pNext;
+       uint32_t                maxPerSetDescriptors;
+       VkDeviceSize    maxMemoryAllocationSize;
 };
 
-struct VkCuModuleCreateInfoNVX
+struct VkPhysicalDeviceMaintenance4Features
 {
        VkStructureType sType;
-       const void*             pNext;
-       size_t                  dataSize;
-       const void*             pData;
+       void*                   pNext;
+       VkBool32                maintenance4;
 };
 
-struct VkCuFunctionCreateInfoNVX
+struct VkPhysicalDeviceMaintenance4Properties
 {
        VkStructureType sType;
-       const void*             pNext;
-       VkCuModuleNVX   module;
-       const char*             pName;
+       void*                   pNext;
+       VkDeviceSize    maxBufferSize;
 };
 
-struct VkCuLaunchInfoNVX
+struct VkDescriptorSetLayoutSupport
 {
-       VkStructureType         sType;
-       const void*                     pNext;
-       VkCuFunctionNVX         function;
-       uint32_t                        gridDimX;
-       uint32_t                        gridDimY;
-       uint32_t                        gridDimZ;
-       uint32_t                        blockDimX;
-       uint32_t                        blockDimY;
-       uint32_t                        blockDimZ;
-       uint32_t                        sharedMemBytes;
-       size_t                          paramCount;
-       const void* const *     pParams;
-       size_t                          extraCount;
-       const void* const *     pExtras;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                supported;
 };
 
-struct VkImageViewHandleInfoNVX
+struct VkPhysicalDeviceShaderDrawParametersFeatures
 {
-       VkStructureType         sType;
-       const void*                     pNext;
-       VkImageView                     imageView;
-       VkDescriptorType        descriptorType;
-       VkSampler                       sampler;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                shaderDrawParameters;
 };
 
-struct VkImageViewAddressPropertiesNVX
+struct VkPhysicalDeviceShaderFloat16Int8Features
 {
        VkStructureType sType;
        void*                   pNext;
-       VkDeviceAddress deviceAddress;
-       VkDeviceSize    size;
+       VkBool32                shaderFloat16;
+       VkBool32                shaderInt8;
 };
 
-struct VkTextureLODGatherFormatPropertiesAMD
+struct VkPhysicalDeviceFloatControlsProperties
+{
+       VkStructureType                                         sType;
+       void*                                                           pNext;
+       VkShaderFloatControlsIndependence       denormBehaviorIndependence;
+       VkShaderFloatControlsIndependence       roundingModeIndependence;
+       VkBool32                                                        shaderSignedZeroInfNanPreserveFloat16;
+       VkBool32                                                        shaderSignedZeroInfNanPreserveFloat32;
+       VkBool32                                                        shaderSignedZeroInfNanPreserveFloat64;
+       VkBool32                                                        shaderDenormPreserveFloat16;
+       VkBool32                                                        shaderDenormPreserveFloat32;
+       VkBool32                                                        shaderDenormPreserveFloat64;
+       VkBool32                                                        shaderDenormFlushToZeroFloat16;
+       VkBool32                                                        shaderDenormFlushToZeroFloat32;
+       VkBool32                                                        shaderDenormFlushToZeroFloat64;
+       VkBool32                                                        shaderRoundingModeRTEFloat16;
+       VkBool32                                                        shaderRoundingModeRTEFloat32;
+       VkBool32                                                        shaderRoundingModeRTEFloat64;
+       VkBool32                                                        shaderRoundingModeRTZFloat16;
+       VkBool32                                                        shaderRoundingModeRTZFloat32;
+       VkBool32                                                        shaderRoundingModeRTZFloat64;
+};
+
+struct VkPhysicalDeviceHostQueryResetFeatures
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                supportsTextureGatherLODBiasAMD;
+       VkBool32                hostQueryReset;
 };
 
 struct VkShaderResourceUsageAMD
@@ -3813,556 +3153,706 @@ struct VkShaderStatisticsInfoAMD
        uint32_t                                        computeWorkGroupSize[3];
 };
 
-struct VkPhysicalDeviceCornerSampledImageFeaturesNV
+struct VkDeviceQueueGlobalPriorityCreateInfoKHR
+{
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkQueueGlobalPriorityKHR        globalPriority;
+};
+
+struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                globalPriorityQuery;
+};
+
+struct VkQueueFamilyGlobalPriorityPropertiesKHR
+{
+       VkStructureType                         sType;
+       void*                                           pNext;
+       uint32_t                                        priorityCount;
+       VkQueueGlobalPriorityKHR        priorities[VK_MAX_GLOBAL_PRIORITY_SIZE_KHR];
+};
+
+struct VkDebugUtilsObjectNameInfoEXT
+{
+       VkStructureType sType;
+       const void*             pNext;
+       VkObjectType    objectType;
+       uint64_t                objectHandle;
+       const char*             pObjectName;
+};
+
+struct VkDebugUtilsObjectTagInfoEXT
+{
+       VkStructureType sType;
+       const void*             pNext;
+       VkObjectType    objectType;
+       uint64_t                objectHandle;
+       uint64_t                tagName;
+       size_t                  tagSize;
+       const void*             pTag;
+};
+
+struct VkDebugUtilsLabelEXT
+{
+       VkStructureType sType;
+       const void*             pNext;
+       const char*             pLabelName;
+       float                   color[4];
+};
+
+struct VkDebugUtilsMessengerCreateInfoEXT
+{
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkDebugUtilsMessengerCreateFlagsEXT             flags;
+       VkDebugUtilsMessageSeverityFlagsEXT             messageSeverity;
+       VkDebugUtilsMessageTypeFlagsEXT                 messageType;
+       PFN_vkDebugUtilsMessengerCallbackEXT    pfnUserCallback;
+       void*                                                                   pUserData;
+};
+
+struct VkDebugUtilsMessengerCallbackDataEXT
+{
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       VkDebugUtilsMessengerCallbackDataFlagsEXT       flags;
+       const char*                                                                     pMessageIdName;
+       int32_t                                                                         messageIdNumber;
+       const char*                                                                     pMessage;
+       uint32_t                                                                        queueLabelCount;
+       const VkDebugUtilsLabelEXT*                                     pQueueLabels;
+       uint32_t                                                                        cmdBufLabelCount;
+       const VkDebugUtilsLabelEXT*                                     pCmdBufLabels;
+       uint32_t                                                                        objectCount;
+       const VkDebugUtilsObjectNameInfoEXT*            pObjects;
+};
+
+struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                cornerSampledImage;
-};
-
-struct VkExternalImageFormatPropertiesNV
-{
-       VkImageFormatProperties                         imageFormatProperties;
-       VkExternalMemoryFeatureFlagsNV          externalMemoryFeatures;
-       VkExternalMemoryHandleTypeFlagsNV       exportFromImportedHandleTypes;
-       VkExternalMemoryHandleTypeFlagsNV       compatibleHandleTypes;
+       VkBool32                deviceMemoryReport;
 };
 
-struct VkExternalMemoryImageCreateInfoNV
+struct VkDeviceDeviceMemoryReportCreateInfoEXT
 {
        VkStructureType                                         sType;
        const void*                                                     pNext;
-       VkExternalMemoryHandleTypeFlagsNV       handleTypes;
+       VkDeviceMemoryReportFlagsEXT            flags;
+       PFN_vkDeviceMemoryReportCallbackEXT     pfnUserCallback;
+       void*                                                           pUserData;
 };
 
-struct VkExportMemoryAllocateInfoNV
+struct VkDeviceMemoryReportCallbackDataEXT
 {
        VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkExternalMemoryHandleTypeFlagsNV       handleTypes;
+       void*                                                           pNext;
+       VkDeviceMemoryReportFlagsEXT            flags;
+       VkDeviceMemoryReportEventTypeEXT        type;
+       uint64_t                                                        memoryObjectId;
+       VkDeviceSize                                            size;
+       VkObjectType                                            objectType;
+       uint64_t                                                        objectHandle;
+       uint32_t                                                        heapIndex;
 };
 
-struct VkValidationFlagsEXT
+struct VkImportMemoryHostPointerInfoEXT
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       uint32_t                                        disabledValidationCheckCount;
-       const VkValidationCheckEXT*     pDisabledValidationChecks;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkExternalMemoryHandleTypeFlagBits      handleType;
+       void*                                                           pHostPointer;
 };
 
-struct VkImageViewASTCDecodeModeEXT
+struct VkMemoryHostPointerPropertiesEXT
 {
        VkStructureType sType;
-       const void*             pNext;
-       VkFormat                decodeMode;
+       void*                   pNext;
+       uint32_t                memoryTypeBits;
 };
 
-struct VkPhysicalDeviceASTCDecodeFeaturesEXT
+struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                decodeModeSharedExponent;
+       VkDeviceSize    minImportedHostPointerAlignment;
 };
 
-struct VkPhysicalDevicePipelineRobustnessFeaturesEXT
+struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                pipelineRobustness;
+       float                   primitiveOverestimationSize;
+       float                   maxExtraPrimitiveOverestimationSize;
+       float                   extraPrimitiveOverestimationSizeGranularity;
+       VkBool32                primitiveUnderestimation;
+       VkBool32                conservativePointAndLineRasterization;
+       VkBool32                degenerateTrianglesRasterized;
+       VkBool32                degenerateLinesRasterized;
+       VkBool32                fullyCoveredFragmentShaderInputVariable;
+       VkBool32                conservativeRasterizationPostDepthCoverage;
 };
 
-struct VkPhysicalDevicePipelineRobustnessPropertiesEXT
+struct VkCalibratedTimestampInfoEXT
 {
-       VkStructureType                                                 sType;
-       void*                                                                   pNext;
-       VkPipelineRobustnessBufferBehaviorEXT   defaultRobustnessStorageBuffers;
-       VkPipelineRobustnessBufferBehaviorEXT   defaultRobustnessUniformBuffers;
-       VkPipelineRobustnessBufferBehaviorEXT   defaultRobustnessVertexInputs;
-       VkPipelineRobustnessImageBehaviorEXT    defaultRobustnessImages;
+       VkStructureType sType;
+       const void*             pNext;
+       VkTimeDomainEXT timeDomain;
 };
 
-struct VkPipelineRobustnessCreateInfoEXT
+struct VkPhysicalDeviceShaderCorePropertiesAMD
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkPipelineRobustnessBufferBehaviorEXT   storageBuffers;
-       VkPipelineRobustnessBufferBehaviorEXT   uniformBuffers;
-       VkPipelineRobustnessBufferBehaviorEXT   vertexInputs;
-       VkPipelineRobustnessImageBehaviorEXT    images;
+       VkStructureType sType;
+       void*                   pNext;
+       uint32_t                shaderEngineCount;
+       uint32_t                shaderArraysPerEngineCount;
+       uint32_t                computeUnitsPerShaderArray;
+       uint32_t                simdPerComputeUnit;
+       uint32_t                wavefrontsPerSimd;
+       uint32_t                wavefrontSize;
+       uint32_t                sgprsPerSimd;
+       uint32_t                minSgprAllocation;
+       uint32_t                maxSgprAllocation;
+       uint32_t                sgprAllocationGranularity;
+       uint32_t                vgprsPerSimd;
+       uint32_t                minVgprAllocation;
+       uint32_t                maxVgprAllocation;
+       uint32_t                vgprAllocationGranularity;
 };
 
-struct VkConditionalRenderingBeginInfoEXT
+struct VkPhysicalDeviceShaderCoreProperties2AMD
 {
        VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkBuffer                                                buffer;
-       VkDeviceSize                                    offset;
-       VkConditionalRenderingFlagsEXT  flags;
+       void*                                                   pNext;
+       VkShaderCorePropertiesFlagsAMD  shaderCoreFeatures;
+       uint32_t                                                activeComputeUnitCount;
 };
 
-struct VkPhysicalDeviceConditionalRenderingFeaturesEXT
+struct VkPipelineRasterizationConservativeStateCreateInfoEXT
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                conditionalRendering;
-       VkBool32                inheritedConditionalRendering;
+       VkStructureType                                                                                 sType;
+       const void*                                                                                             pNext;
+       VkPipelineRasterizationConservativeStateCreateFlagsEXT  flags;
+       VkConservativeRasterizationModeEXT                                              conservativeRasterizationMode;
+       float                                                                                                   extraPrimitiveOverestimationSize;
 };
 
-struct VkCommandBufferInheritanceConditionalRenderingInfoEXT
+struct VkPhysicalDeviceDescriptorIndexingFeatures
 {
        VkStructureType sType;
-       const void*             pNext;
-       VkBool32                conditionalRenderingEnable;
-};
-
-struct VkViewportWScalingNV
-{
-       float   xcoeff;
-       float   ycoeff;
+       void*                   pNext;
+       VkBool32                shaderInputAttachmentArrayDynamicIndexing;
+       VkBool32                shaderUniformTexelBufferArrayDynamicIndexing;
+       VkBool32                shaderStorageTexelBufferArrayDynamicIndexing;
+       VkBool32                shaderUniformBufferArrayNonUniformIndexing;
+       VkBool32                shaderSampledImageArrayNonUniformIndexing;
+       VkBool32                shaderStorageBufferArrayNonUniformIndexing;
+       VkBool32                shaderStorageImageArrayNonUniformIndexing;
+       VkBool32                shaderInputAttachmentArrayNonUniformIndexing;
+       VkBool32                shaderUniformTexelBufferArrayNonUniformIndexing;
+       VkBool32                shaderStorageTexelBufferArrayNonUniformIndexing;
+       VkBool32                descriptorBindingUniformBufferUpdateAfterBind;
+       VkBool32                descriptorBindingSampledImageUpdateAfterBind;
+       VkBool32                descriptorBindingStorageImageUpdateAfterBind;
+       VkBool32                descriptorBindingStorageBufferUpdateAfterBind;
+       VkBool32                descriptorBindingUniformTexelBufferUpdateAfterBind;
+       VkBool32                descriptorBindingStorageTexelBufferUpdateAfterBind;
+       VkBool32                descriptorBindingUpdateUnusedWhilePending;
+       VkBool32                descriptorBindingPartiallyBound;
+       VkBool32                descriptorBindingVariableDescriptorCount;
+       VkBool32                runtimeDescriptorArray;
 };
 
-struct VkPipelineViewportWScalingStateCreateInfoNV
+struct VkPhysicalDeviceDescriptorIndexingProperties
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkBool32                                        viewportWScalingEnable;
-       uint32_t                                        viewportCount;
-       const VkViewportWScalingNV*     pViewportWScalings;
+       VkStructureType sType;
+       void*                   pNext;
+       uint32_t                maxUpdateAfterBindDescriptorsInAllPools;
+       VkBool32                shaderUniformBufferArrayNonUniformIndexingNative;
+       VkBool32                shaderSampledImageArrayNonUniformIndexingNative;
+       VkBool32                shaderStorageBufferArrayNonUniformIndexingNative;
+       VkBool32                shaderStorageImageArrayNonUniformIndexingNative;
+       VkBool32                shaderInputAttachmentArrayNonUniformIndexingNative;
+       VkBool32                robustBufferAccessUpdateAfterBind;
+       VkBool32                quadDivergentImplicitLod;
+       uint32_t                maxPerStageDescriptorUpdateAfterBindSamplers;
+       uint32_t                maxPerStageDescriptorUpdateAfterBindUniformBuffers;
+       uint32_t                maxPerStageDescriptorUpdateAfterBindStorageBuffers;
+       uint32_t                maxPerStageDescriptorUpdateAfterBindSampledImages;
+       uint32_t                maxPerStageDescriptorUpdateAfterBindStorageImages;
+       uint32_t                maxPerStageDescriptorUpdateAfterBindInputAttachments;
+       uint32_t                maxPerStageUpdateAfterBindResources;
+       uint32_t                maxDescriptorSetUpdateAfterBindSamplers;
+       uint32_t                maxDescriptorSetUpdateAfterBindUniformBuffers;
+       uint32_t                maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
+       uint32_t                maxDescriptorSetUpdateAfterBindStorageBuffers;
+       uint32_t                maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
+       uint32_t                maxDescriptorSetUpdateAfterBindSampledImages;
+       uint32_t                maxDescriptorSetUpdateAfterBindStorageImages;
+       uint32_t                maxDescriptorSetUpdateAfterBindInputAttachments;
 };
 
-struct VkSurfaceCapabilities2EXT
+struct VkDescriptorSetLayoutBindingFlagsCreateInfo
 {
        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;
+       const void*                                             pNext;
+       uint32_t                                                bindingCount;
+       const VkDescriptorBindingFlags* pBindingFlags;
 };
 
-struct VkDisplayPowerInfoEXT
+struct VkDescriptorSetVariableDescriptorCountAllocateInfo
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkDisplayPowerStateEXT  powerState;
+       VkStructureType sType;
+       const void*             pNext;
+       uint32_t                descriptorSetCount;
+       const uint32_t* pDescriptorCounts;
 };
 
-struct VkDeviceEventInfoEXT
+struct VkDescriptorSetVariableDescriptorCountLayoutSupport
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkDeviceEventTypeEXT    deviceEvent;
+       VkStructureType sType;
+       void*                   pNext;
+       uint32_t                maxVariableDescriptorCount;
 };
 
-struct VkDisplayEventInfoEXT
+struct VkAttachmentDescription2
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkDisplayEventTypeEXT   displayEvent;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkAttachmentDescriptionFlags    flags;
+       VkFormat                                                format;
+       VkSampleCountFlagBits                   samples;
+       VkAttachmentLoadOp                              loadOp;
+       VkAttachmentStoreOp                             storeOp;
+       VkAttachmentLoadOp                              stencilLoadOp;
+       VkAttachmentStoreOp                             stencilStoreOp;
+       VkImageLayout                                   initialLayout;
+       VkImageLayout                                   finalLayout;
 };
 
-struct VkSwapchainCounterCreateInfoEXT
+struct VkAttachmentReference2
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkSurfaceCounterFlagsEXT        surfaceCounters;
+       VkStructureType         sType;
+       const void*                     pNext;
+       uint32_t                        attachment;
+       VkImageLayout           layout;
+       VkImageAspectFlags      aspectMask;
 };
 
-struct VkRefreshCycleDurationGOOGLE
+struct VkSubpassDescription2
 {
-       uint64_t        refreshDuration;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkSubpassDescriptionFlags               flags;
+       VkPipelineBindPoint                             pipelineBindPoint;
+       uint32_t                                                viewMask;
+       uint32_t                                                inputAttachmentCount;
+       const VkAttachmentReference2*   pInputAttachments;
+       uint32_t                                                colorAttachmentCount;
+       const VkAttachmentReference2*   pColorAttachments;
+       const VkAttachmentReference2*   pResolveAttachments;
+       const VkAttachmentReference2*   pDepthStencilAttachment;
+       uint32_t                                                preserveAttachmentCount;
+       const uint32_t*                                 pPreserveAttachments;
 };
 
-struct VkPastPresentationTimingGOOGLE
+struct VkSubpassDependency2
 {
-       uint32_t        presentID;
-       uint64_t        desiredPresentTime;
-       uint64_t        actualPresentTime;
-       uint64_t        earliestPresentTime;
-       uint64_t        presentMargin;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       uint32_t                                srcSubpass;
+       uint32_t                                dstSubpass;
+       VkPipelineStageFlags    srcStageMask;
+       VkPipelineStageFlags    dstStageMask;
+       VkAccessFlags                   srcAccessMask;
+       VkAccessFlags                   dstAccessMask;
+       VkDependencyFlags               dependencyFlags;
+       int32_t                                 viewOffset;
 };
 
-struct VkPresentTimeGOOGLE
+struct VkRenderPassCreateInfo2
 {
-       uint32_t        presentID;
-       uint64_t        desiredPresentTime;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkRenderPassCreateFlags                 flags;
+       uint32_t                                                attachmentCount;
+       const VkAttachmentDescription2* pAttachments;
+       uint32_t                                                subpassCount;
+       const VkSubpassDescription2*    pSubpasses;
+       uint32_t                                                dependencyCount;
+       const VkSubpassDependency2*             pDependencies;
+       uint32_t                                                correlatedViewMaskCount;
+       const uint32_t*                                 pCorrelatedViewMasks;
 };
 
-struct VkPresentTimesInfoGOOGLE
+struct VkSubpassBeginInfo
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       uint32_t                                        swapchainCount;
-       const VkPresentTimeGOOGLE*      pTimes;
+       VkStructureType         sType;
+       const void*                     pNext;
+       VkSubpassContents       contents;
 };
 
-struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+struct VkSubpassEndInfo
 {
        VkStructureType sType;
-       void*                   pNext;
-       VkBool32                perViewPositionAllComponents;
-};
-
-struct VkViewportSwizzleNV
-{
-       VkViewportCoordinateSwizzleNV   x;
-       VkViewportCoordinateSwizzleNV   y;
-       VkViewportCoordinateSwizzleNV   z;
-       VkViewportCoordinateSwizzleNV   w;
+       const void*             pNext;
 };
 
-struct VkPipelineViewportSwizzleStateCreateInfoNV
+struct VkPhysicalDeviceTimelineSemaphoreFeatures
 {
-       VkStructureType                                                         sType;
-       const void*                                                                     pNext;
-       VkPipelineViewportSwizzleStateCreateFlagsNV     flags;
-       uint32_t                                                                        viewportCount;
-       const VkViewportSwizzleNV*                                      pViewportSwizzles;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                timelineSemaphore;
 };
 
-struct VkPhysicalDeviceDiscardRectanglePropertiesEXT
+struct VkPhysicalDeviceTimelineSemaphoreProperties
 {
        VkStructureType sType;
        void*                   pNext;
-       uint32_t                maxDiscardRectangles;
+       uint64_t                maxTimelineSemaphoreValueDifference;
 };
 
-struct VkPipelineDiscardRectangleStateCreateInfoEXT
+struct VkSemaphoreTypeCreateInfo
 {
-       VkStructureType                                                                 sType;
-       const void*                                                                             pNext;
-       VkPipelineDiscardRectangleStateCreateFlagsEXT   flags;
-       VkDiscardRectangleModeEXT                                               discardRectangleMode;
-       uint32_t                                                                                discardRectangleCount;
-       const VkRect2D*                                                                 pDiscardRectangles;
+       VkStructureType sType;
+       const void*             pNext;
+       VkSemaphoreType semaphoreType;
+       uint64_t                initialValue;
 };
 
-struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+struct VkTimelineSemaphoreSubmitInfo
 {
        VkStructureType sType;
-       void*                   pNext;
-       float                   primitiveOverestimationSize;
-       float                   maxExtraPrimitiveOverestimationSize;
-       float                   extraPrimitiveOverestimationSizeGranularity;
-       VkBool32                primitiveUnderestimation;
-       VkBool32                conservativePointAndLineRasterization;
-       VkBool32                degenerateTrianglesRasterized;
-       VkBool32                degenerateLinesRasterized;
-       VkBool32                fullyCoveredFragmentShaderInputVariable;
-       VkBool32                conservativeRasterizationPostDepthCoverage;
+       const void*             pNext;
+       uint32_t                waitSemaphoreValueCount;
+       const uint64_t* pWaitSemaphoreValues;
+       uint32_t                signalSemaphoreValueCount;
+       const uint64_t* pSignalSemaphoreValues;
 };
 
-struct VkPipelineRasterizationConservativeStateCreateInfoEXT
+struct VkSemaphoreWaitInfo
 {
-       VkStructureType                                                                                 sType;
-       const void*                                                                                             pNext;
-       VkPipelineRasterizationConservativeStateCreateFlagsEXT  flags;
-       VkConservativeRasterizationModeEXT                                              conservativeRasterizationMode;
-       float                                                                                                   extraPrimitiveOverestimationSize;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkSemaphoreWaitFlags    flags;
+       uint32_t                                semaphoreCount;
+       const VkSemaphore*              pSemaphores;
+       const uint64_t*                 pValues;
 };
 
-struct VkPhysicalDeviceDepthClipEnableFeaturesEXT
+struct VkSemaphoreSignalInfo
 {
        VkStructureType sType;
-       void*                   pNext;
-       VkBool32                depthClipEnable;
+       const void*             pNext;
+       VkSemaphore             semaphore;
+       uint64_t                value;
 };
 
-struct VkPipelineRasterizationDepthClipStateCreateInfoEXT
+struct VkVertexInputBindingDivisorDescriptionEXT
 {
-       VkStructureType                                                                         sType;
-       const void*                                                                                     pNext;
-       VkPipelineRasterizationDepthClipStateCreateFlagsEXT     flags;
-       VkBool32                                                                                        depthClipEnable;
+       uint32_t        binding;
+       uint32_t        divisor;
 };
 
-struct VkXYColorEXT
+struct VkPipelineVertexInputDivisorStateCreateInfoEXT
 {
-       float   x;
-       float   y;
+       VkStructureType                                                                         sType;
+       const void*                                                                                     pNext;
+       uint32_t                                                                                        vertexBindingDivisorCount;
+       const VkVertexInputBindingDivisorDescriptionEXT*        pVertexBindingDivisors;
 };
 
-struct VkHdrMetadataEXT
+struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
 {
        VkStructureType sType;
-       const void*             pNext;
-       VkXYColorEXT    displayPrimaryRed;
-       VkXYColorEXT    displayPrimaryGreen;
-       VkXYColorEXT    displayPrimaryBlue;
-       VkXYColorEXT    whitePoint;
-       float                   maxLuminance;
-       float                   minLuminance;
-       float                   maxContentLightLevel;
-       float                   maxFrameAverageLightLevel;
+       void*                   pNext;
+       uint32_t                maxVertexAttribDivisor;
 };
 
-struct VkDebugUtilsLabelEXT
+struct VkPhysicalDevicePCIBusInfoPropertiesEXT
 {
        VkStructureType sType;
-       const void*             pNext;
-       const char*             pLabelName;
-       float                   color[4];
+       void*                   pNext;
+       uint32_t                pciDomain;
+       uint32_t                pciBus;
+       uint32_t                pciDevice;
+       uint32_t                pciFunction;
 };
 
-struct VkDebugUtilsObjectNameInfoEXT
+struct VkImportAndroidHardwareBufferInfoANDROID
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkObjectType    objectType;
-       uint64_t                objectHandle;
-       const char*             pObjectName;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       struct pt::AndroidHardwareBufferPtr     buffer;
 };
 
-struct VkDebugUtilsMessengerCallbackDataEXT
+struct VkAndroidHardwareBufferUsageANDROID
 {
-       VkStructureType                                                         sType;
-       const void*                                                                     pNext;
-       VkDebugUtilsMessengerCallbackDataFlagsEXT       flags;
-       const char*                                                                     pMessageIdName;
-       int32_t                                                                         messageIdNumber;
-       const char*                                                                     pMessage;
-       uint32_t                                                                        queueLabelCount;
-       const VkDebugUtilsLabelEXT*                                     pQueueLabels;
-       uint32_t                                                                        cmdBufLabelCount;
-       const VkDebugUtilsLabelEXT*                                     pCmdBufLabels;
-       uint32_t                                                                        objectCount;
-       const VkDebugUtilsObjectNameInfoEXT*            pObjects;
+       VkStructureType sType;
+       void*                   pNext;
+       uint64_t                androidHardwareBufferUsage;
 };
 
-struct VkDebugUtilsMessengerCreateInfoEXT
+struct VkAndroidHardwareBufferPropertiesANDROID
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkDebugUtilsMessengerCreateFlagsEXT             flags;
-       VkDebugUtilsMessageSeverityFlagsEXT             messageSeverity;
-       VkDebugUtilsMessageTypeFlagsEXT                 messageType;
-       PFN_vkDebugUtilsMessengerCallbackEXT    pfnUserCallback;
-       void*                                                                   pUserData;
+       VkStructureType sType;
+       void*                   pNext;
+       VkDeviceSize    allocationSize;
+       uint32_t                memoryTypeBits;
 };
 
-struct VkDebugUtilsObjectTagInfoEXT
+struct VkMemoryGetAndroidHardwareBufferInfoANDROID
 {
        VkStructureType sType;
        const void*             pNext;
-       VkObjectType    objectType;
-       uint64_t                objectHandle;
-       uint64_t                tagName;
-       size_t                  tagSize;
-       const void*             pTag;
+       VkDeviceMemory  memory;
 };
 
-struct VkSampleLocationEXT
+struct VkAndroidHardwareBufferFormatPropertiesANDROID
 {
-       float   x;
-       float   y;
+       VkStructureType                                 sType;
+       void*                                                   pNext;
+       VkFormat                                                format;
+       uint64_t                                                externalFormat;
+       VkFormatFeatureFlags                    formatFeatures;
+       VkComponentMapping                              samplerYcbcrConversionComponents;
+       VkSamplerYcbcrModelConversion   suggestedYcbcrModel;
+       VkSamplerYcbcrRange                             suggestedYcbcrRange;
+       VkChromaLocation                                suggestedXChromaOffset;
+       VkChromaLocation                                suggestedYChromaOffset;
 };
 
-struct VkSampleLocationsInfoEXT
+struct VkCommandBufferInheritanceConditionalRenderingInfoEXT
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkSampleCountFlagBits           sampleLocationsPerPixel;
-       VkExtent2D                                      sampleLocationGridSize;
-       uint32_t                                        sampleLocationsCount;
-       const VkSampleLocationEXT*      pSampleLocations;
+       VkStructureType sType;
+       const void*             pNext;
+       VkBool32                conditionalRenderingEnable;
 };
 
-struct VkAttachmentSampleLocationsEXT
+struct VkExternalFormatANDROID
 {
-       uint32_t                                        attachmentIndex;
-       VkSampleLocationsInfoEXT        sampleLocationsInfo;
+       VkStructureType sType;
+       void*                   pNext;
+       uint64_t                externalFormat;
 };
 
-struct VkSubpassSampleLocationsEXT
+struct VkPhysicalDevice8BitStorageFeatures
 {
-       uint32_t                                        subpassIndex;
-       VkSampleLocationsInfoEXT        sampleLocationsInfo;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                storageBuffer8BitAccess;
+       VkBool32                uniformAndStorageBuffer8BitAccess;
+       VkBool32                storagePushConstant8;
 };
-
-struct VkRenderPassSampleLocationsBeginInfoEXT
-{
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       uint32_t                                                                attachmentInitialSampleLocationsCount;
-       const VkAttachmentSampleLocationsEXT*   pAttachmentInitialSampleLocations;
-       uint32_t                                                                postSubpassSampleLocationsCount;
-       const VkSubpassSampleLocationsEXT*              pPostSubpassSampleLocations;
+
+struct VkPhysicalDeviceConditionalRenderingFeaturesEXT
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                conditionalRendering;
+       VkBool32                inheritedConditionalRendering;
 };
 
-struct VkPipelineSampleLocationsStateCreateInfoEXT
+struct VkPhysicalDeviceVulkanMemoryModelFeatures
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkBool32                                        sampleLocationsEnable;
-       VkSampleLocationsInfoEXT        sampleLocationsInfo;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                vulkanMemoryModel;
+       VkBool32                vulkanMemoryModelDeviceScope;
+       VkBool32                vulkanMemoryModelAvailabilityVisibilityChains;
 };
 
-struct VkPhysicalDeviceSampleLocationsPropertiesEXT
+struct VkPhysicalDeviceShaderAtomicInt64Features
 {
-       VkStructureType         sType;
-       void*                           pNext;
-       VkSampleCountFlags      sampleLocationSampleCounts;
-       VkExtent2D                      maxSampleLocationGridSize;
-       float                           sampleLocationCoordinateRange[2];
-       uint32_t                        sampleLocationSubPixelBits;
-       VkBool32                        variableSampleLocations;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                shaderBufferInt64Atomics;
+       VkBool32                shaderSharedInt64Atomics;
 };
 
-struct VkMultisamplePropertiesEXT
+struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkExtent2D              maxSampleLocationGridSize;
+       VkBool32                shaderBufferFloat32Atomics;
+       VkBool32                shaderBufferFloat32AtomicAdd;
+       VkBool32                shaderBufferFloat64Atomics;
+       VkBool32                shaderBufferFloat64AtomicAdd;
+       VkBool32                shaderSharedFloat32Atomics;
+       VkBool32                shaderSharedFloat32AtomicAdd;
+       VkBool32                shaderSharedFloat64Atomics;
+       VkBool32                shaderSharedFloat64AtomicAdd;
+       VkBool32                shaderImageFloat32Atomics;
+       VkBool32                shaderImageFloat32AtomicAdd;
+       VkBool32                sparseImageFloat32Atomics;
+       VkBool32                sparseImageFloat32AtomicAdd;
 };
 
-struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                advancedBlendCoherentOperations;
+       VkBool32                shaderBufferFloat16Atomics;
+       VkBool32                shaderBufferFloat16AtomicAdd;
+       VkBool32                shaderBufferFloat16AtomicMinMax;
+       VkBool32                shaderBufferFloat32AtomicMinMax;
+       VkBool32                shaderBufferFloat64AtomicMinMax;
+       VkBool32                shaderSharedFloat16Atomics;
+       VkBool32                shaderSharedFloat16AtomicAdd;
+       VkBool32                shaderSharedFloat16AtomicMinMax;
+       VkBool32                shaderSharedFloat32AtomicMinMax;
+       VkBool32                shaderSharedFloat64AtomicMinMax;
+       VkBool32                shaderImageFloat32AtomicMinMax;
+       VkBool32                sparseImageFloat32AtomicMinMax;
 };
 
-struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       uint32_t                advancedBlendMaxColorAttachments;
-       VkBool32                advancedBlendIndependentBlend;
-       VkBool32                advancedBlendNonPremultipliedSrcColor;
-       VkBool32                advancedBlendNonPremultipliedDstColor;
-       VkBool32                advancedBlendCorrelatedOverlap;
-       VkBool32                advancedBlendAllOperations;
+       VkBool32                vertexAttributeInstanceRateDivisor;
+       VkBool32                vertexAttributeInstanceRateZeroDivisor;
 };
 
-struct VkPipelineColorBlendAdvancedStateCreateInfoEXT
+struct VkQueueFamilyCheckpointPropertiesNV
+{
+       VkStructureType                 sType;
+       void*                                   pNext;
+       VkPipelineStageFlags    checkpointExecutionStageMask;
+};
+
+struct VkCheckpointDataNV
+{
+       VkStructureType                 sType;
+       void*                                   pNext;
+       VkPipelineStageFlagBits stage;
+       void*                                   pCheckpointMarker;
+};
+
+struct VkPhysicalDeviceDepthStencilResolveProperties
 {
        VkStructureType         sType;
-       const void*                     pNext;
-       VkBool32                        srcPremultiplied;
-       VkBool32                        dstPremultiplied;
-       VkBlendOverlapEXT       blendOverlap;
+       void*                           pNext;
+       VkResolveModeFlags      supportedDepthResolveModes;
+       VkResolveModeFlags      supportedStencilResolveModes;
+       VkBool32                        independentResolveNone;
+       VkBool32                        independentResolve;
 };
 
-struct VkPipelineCoverageToColorStateCreateInfoNV
+struct VkSubpassDescriptionDepthStencilResolve
 {
-       VkStructureType                                                         sType;
-       const void*                                                                     pNext;
-       VkPipelineCoverageToColorStateCreateFlagsNV     flags;
-       VkBool32                                                                        coverageToColorEnable;
-       uint32_t                                                                        coverageToColorLocation;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkResolveModeFlagBits                   depthResolveMode;
+       VkResolveModeFlagBits                   stencilResolveMode;
+       const VkAttachmentReference2*   pDepthStencilResolveAttachment;
 };
 
-struct VkPipelineCoverageModulationStateCreateInfoNV
+struct VkImageViewASTCDecodeModeEXT
 {
-       VkStructureType                                                                 sType;
-       const void*                                                                             pNext;
-       VkPipelineCoverageModulationStateCreateFlagsNV  flags;
-       VkCoverageModulationModeNV                                              coverageModulationMode;
-       VkBool32                                                                                coverageModulationTableEnable;
-       uint32_t                                                                                coverageModulationTableCount;
-       const float*                                                                    pCoverageModulationTable;
+       VkStructureType sType;
+       const void*             pNext;
+       VkFormat                decodeMode;
 };
 
-struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV
+struct VkPhysicalDeviceASTCDecodeFeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       uint32_t                shaderSMCount;
-       uint32_t                shaderWarpsPerSM;
+       VkBool32                decodeModeSharedExponent;
 };
 
-struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV
+struct VkPhysicalDeviceTransformFeedbackFeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                shaderSMBuiltins;
+       VkBool32                transformFeedback;
+       VkBool32                geometryStreams;
 };
 
-struct VkDrmFormatModifierPropertiesEXT
+struct VkPhysicalDeviceTransformFeedbackPropertiesEXT
 {
-       uint64_t                                drmFormatModifier;
-       uint32_t                                drmFormatModifierPlaneCount;
-       VkFormatFeatureFlags    drmFormatModifierTilingFeatures;
+       VkStructureType sType;
+       void*                   pNext;
+       uint32_t                maxTransformFeedbackStreams;
+       uint32_t                maxTransformFeedbackBuffers;
+       VkDeviceSize    maxTransformFeedbackBufferSize;
+       uint32_t                maxTransformFeedbackStreamDataSize;
+       uint32_t                maxTransformFeedbackBufferDataSize;
+       uint32_t                maxTransformFeedbackBufferDataStride;
+       VkBool32                transformFeedbackQueries;
+       VkBool32                transformFeedbackStreamsLinesTriangles;
+       VkBool32                transformFeedbackRasterizationStreamSelect;
+       VkBool32                transformFeedbackDraw;
 };
 
-struct VkDrmFormatModifierPropertiesListEXT
+struct VkPipelineRasterizationStateStreamCreateInfoEXT
 {
-       VkStructureType                                         sType;
-       void*                                                           pNext;
-       uint32_t                                                        drmFormatModifierCount;
-       VkDrmFormatModifierPropertiesEXT*       pDrmFormatModifierProperties;
+       VkStructureType                                                                         sType;
+       const void*                                                                                     pNext;
+       VkPipelineRasterizationStateStreamCreateFlagsEXT        flags;
+       uint32_t                                                                                        rasterizationStream;
 };
 
-struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT
+struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV
 {
        VkStructureType sType;
-       const void*             pNext;
-       uint64_t                drmFormatModifier;
-       VkSharingMode   sharingMode;
-       uint32_t                queueFamilyIndexCount;
-       const uint32_t* pQueueFamilyIndices;
+       void*                   pNext;
+       VkBool32                representativeFragmentTest;
 };
 
-struct VkImageDrmFormatModifierListCreateInfoEXT
+struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV
 {
        VkStructureType sType;
        const void*             pNext;
-       uint32_t                drmFormatModifierCount;
-       const uint64_t* pDrmFormatModifiers;
+       VkBool32                representativeFragmentTestEnable;
 };
 
-struct VkImageDrmFormatModifierExplicitCreateInfoEXT
+struct VkPhysicalDeviceExclusiveScissorFeaturesNV
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       uint64_t                                        drmFormatModifier;
-       uint32_t                                        drmFormatModifierPlaneCount;
-       const VkSubresourceLayout*      pPlaneLayouts;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                exclusiveScissor;
 };
 
-struct VkImageDrmFormatModifierPropertiesEXT
+struct VkPipelineViewportExclusiveScissorStateCreateInfoNV
 {
        VkStructureType sType;
-       void*                   pNext;
-       uint64_t                drmFormatModifier;
+       const void*             pNext;
+       uint32_t                exclusiveScissorCount;
+       const VkRect2D* pExclusiveScissors;
 };
 
-struct VkDrmFormatModifierProperties2EXT
+struct VkPhysicalDeviceCornerSampledImageFeaturesNV
 {
-       uint64_t                                drmFormatModifier;
-       uint32_t                                drmFormatModifierPlaneCount;
-       VkFormatFeatureFlags2   drmFormatModifierTilingFeatures;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                cornerSampledImage;
 };
 
-struct VkDrmFormatModifierPropertiesList2EXT
+struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV
 {
-       VkStructureType                                         sType;
-       void*                                                           pNext;
-       uint32_t                                                        drmFormatModifierCount;
-       VkDrmFormatModifierProperties2EXT*      pDrmFormatModifierProperties;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                computeDerivativeGroupQuads;
+       VkBool32                computeDerivativeGroupLinear;
 };
 
-struct VkValidationCacheCreateInfoEXT
+struct VkPhysicalDeviceShaderImageFootprintFeaturesNV
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkValidationCacheCreateFlagsEXT flags;
-       size_t                                                  initialDataSize;
-       const void*                                             pInitialData;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                imageFootprint;
 };
 
-struct VkShaderModuleValidationCacheCreateInfoEXT
+struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkValidationCacheEXT    validationCache;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                dedicatedAllocationImageAliasing;
 };
 
 struct VkShadingRatePaletteNV
@@ -4397,6 +3887,13 @@ struct VkPhysicalDeviceShadingRateImagePropertiesNV
        uint32_t                shadingRateMaxCoarseSamples;
 };
 
+struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                invocationMask;
+};
+
 struct VkCoarseSampleLocationNV
 {
        uint32_t        pixelX;
@@ -4404,21 +3901,54 @@ struct VkCoarseSampleLocationNV
        uint32_t        sample;
 };
 
-struct VkCoarseSampleOrderCustomNV
+struct VkCoarseSampleOrderCustomNV
+{
+       VkShadingRatePaletteEntryNV             shadingRate;
+       uint32_t                                                sampleCount;
+       uint32_t                                                sampleLocationCount;
+       const VkCoarseSampleLocationNV* pSampleLocations;
+};
+
+struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV
+{
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkCoarseSampleOrderTypeNV                       sampleOrderType;
+       uint32_t                                                        customSampleOrderCount;
+       const VkCoarseSampleOrderCustomNV*      pCustomSampleOrders;
+};
+
+struct VkPhysicalDeviceMeshShaderFeaturesNV
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                taskShader;
+       VkBool32                meshShader;
+};
+
+struct VkPhysicalDeviceMeshShaderPropertiesNV
 {
-       VkShadingRatePaletteEntryNV             shadingRate;
-       uint32_t                                                sampleCount;
-       uint32_t                                                sampleLocationCount;
-       const VkCoarseSampleLocationNV* pSampleLocations;
+       VkStructureType sType;
+       void*                   pNext;
+       uint32_t                maxDrawMeshTasksCount;
+       uint32_t                maxTaskWorkGroupInvocations;
+       uint32_t                maxTaskWorkGroupSize[3];
+       uint32_t                maxTaskTotalMemorySize;
+       uint32_t                maxTaskOutputCount;
+       uint32_t                maxMeshWorkGroupInvocations;
+       uint32_t                maxMeshWorkGroupSize[3];
+       uint32_t                maxMeshTotalMemorySize;
+       uint32_t                maxMeshOutputVertices;
+       uint32_t                maxMeshOutputPrimitives;
+       uint32_t                maxMeshMultiviewViewCount;
+       uint32_t                meshOutputPerVertexGranularity;
+       uint32_t                meshOutputPerPrimitiveGranularity;
 };
 
-struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV
+struct VkDrawMeshTasksIndirectCommandNV
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkCoarseSampleOrderTypeNV                       sampleOrderType;
-       uint32_t                                                        customSampleOrderCount;
-       const VkCoarseSampleOrderCustomNV*      pCustomSampleOrders;
+       uint32_t        taskCount;
+       uint32_t        firstTask;
 };
 
 struct VkRayTracingShaderGroupCreateInfoNV
@@ -4432,6 +3962,18 @@ struct VkRayTracingShaderGroupCreateInfoNV
        uint32_t                                                intersectionShader;
 };
 
+struct VkRayTracingShaderGroupCreateInfoKHR
+{
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkRayTracingShaderGroupTypeKHR  type;
+       uint32_t                                                generalShader;
+       uint32_t                                                closestHitShader;
+       uint32_t                                                anyHitShader;
+       uint32_t                                                intersectionShader;
+       const void*                                             pShaderGroupCaptureReplayHandle;
+};
+
 struct VkRayTracingPipelineCreateInfoNV
 {
        VkStructureType                                                         sType;
@@ -4519,505 +4061,721 @@ struct VkBindAccelerationStructureMemoryInfoNV
        const uint32_t*                         pDeviceIndices;
 };
 
-struct VkWriteDescriptorSetAccelerationStructureNV
+struct VkWriteDescriptorSetAccelerationStructureKHR
+{
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       uint32_t                                                        accelerationStructureCount;
+       const VkAccelerationStructureKHR*       pAccelerationStructures;
+};
+
+struct VkWriteDescriptorSetAccelerationStructureNV
+{
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       uint32_t                                                        accelerationStructureCount;
+       const VkAccelerationStructureNV*        pAccelerationStructures;
+};
+
+struct VkAccelerationStructureMemoryRequirementsInfoNV
+{
+       VkStructureType                                                                 sType;
+       const void*                                                                             pNext;
+       VkAccelerationStructureMemoryRequirementsTypeNV type;
+       VkAccelerationStructureNV                                               accelerationStructure;
+};
+
+struct VkPhysicalDeviceAccelerationStructureFeaturesKHR
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                accelerationStructure;
+       VkBool32                accelerationStructureCaptureReplay;
+       VkBool32                accelerationStructureIndirectBuild;
+       VkBool32                accelerationStructureHostCommands;
+       VkBool32                descriptorBindingAccelerationStructureUpdateAfterBind;
+};
+
+struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                rayTracingPipeline;
+       VkBool32                rayTracingPipelineShaderGroupHandleCaptureReplay;
+       VkBool32                rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
+       VkBool32                rayTracingPipelineTraceRaysIndirect;
+       VkBool32                rayTraversalPrimitiveCulling;
+};
+
+struct VkPhysicalDeviceRayQueryFeaturesKHR
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                rayQuery;
+};
+
+struct VkPhysicalDeviceAccelerationStructurePropertiesKHR
+{
+       VkStructureType sType;
+       void*                   pNext;
+       uint64_t                maxGeometryCount;
+       uint64_t                maxInstanceCount;
+       uint64_t                maxPrimitiveCount;
+       uint32_t                maxPerStageDescriptorAccelerationStructures;
+       uint32_t                maxPerStageDescriptorUpdateAfterBindAccelerationStructures;
+       uint32_t                maxDescriptorSetAccelerationStructures;
+       uint32_t                maxDescriptorSetUpdateAfterBindAccelerationStructures;
+       uint32_t                minAccelerationStructureScratchOffsetAlignment;
+};
+
+struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR
+{
+       VkStructureType sType;
+       void*                   pNext;
+       uint32_t                shaderGroupHandleSize;
+       uint32_t                maxRayRecursionDepth;
+       uint32_t                maxShaderGroupStride;
+       uint32_t                shaderGroupBaseAlignment;
+       uint32_t                shaderGroupHandleCaptureReplaySize;
+       uint32_t                maxRayDispatchInvocationCount;
+       uint32_t                shaderGroupHandleAlignment;
+       uint32_t                maxRayHitAttributeSize;
+};
+
+struct VkPhysicalDeviceRayTracingPropertiesNV
+{
+       VkStructureType sType;
+       void*                   pNext;
+       uint32_t                shaderGroupHandleSize;
+       uint32_t                maxRecursionDepth;
+       uint32_t                maxShaderGroupStride;
+       uint32_t                shaderGroupBaseAlignment;
+       uint64_t                maxGeometryCount;
+       uint64_t                maxInstanceCount;
+       uint64_t                maxTriangleCount;
+       uint32_t                maxDescriptorSetAccelerationStructures;
+};
+
+struct VkStridedDeviceAddressRegionKHR
+{
+       VkDeviceAddress deviceAddress;
+       VkDeviceSize    stride;
+       VkDeviceSize    size;
+};
+
+struct VkTraceRaysIndirectCommandKHR
+{
+       uint32_t        width;
+       uint32_t        height;
+       uint32_t        depth;
+};
+
+struct VkTraceRaysIndirectCommand2KHR
+{
+       VkDeviceAddress raygenShaderRecordAddress;
+       VkDeviceSize    raygenShaderRecordSize;
+       VkDeviceAddress missShaderBindingTableAddress;
+       VkDeviceSize    missShaderBindingTableSize;
+       VkDeviceSize    missShaderBindingTableStride;
+       VkDeviceAddress hitShaderBindingTableAddress;
+       VkDeviceSize    hitShaderBindingTableSize;
+       VkDeviceSize    hitShaderBindingTableStride;
+       VkDeviceAddress callableShaderBindingTableAddress;
+       VkDeviceSize    callableShaderBindingTableSize;
+       VkDeviceSize    callableShaderBindingTableStride;
+       uint32_t                width;
+       uint32_t                height;
+       uint32_t                depth;
+};
+
+struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                rayTracingMaintenance1;
+       VkBool32                rayTracingPipelineTraceRaysIndirect2;
+};
+
+struct VkDrmFormatModifierPropertiesEXT
+{
+       uint64_t                                drmFormatModifier;
+       uint32_t                                drmFormatModifierPlaneCount;
+       VkFormatFeatureFlags    drmFormatModifierTilingFeatures;
+};
+
+struct VkDrmFormatModifierPropertiesListEXT
+{
+       VkStructureType                                         sType;
+       void*                                                           pNext;
+       uint32_t                                                        drmFormatModifierCount;
+       VkDrmFormatModifierPropertiesEXT*       pDrmFormatModifierProperties;
+};
+
+struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT
+{
+       VkStructureType sType;
+       const void*             pNext;
+       uint64_t                drmFormatModifier;
+       VkSharingMode   sharingMode;
+       uint32_t                queueFamilyIndexCount;
+       const uint32_t* pQueueFamilyIndices;
+};
+
+struct VkImageDrmFormatModifierListCreateInfoEXT
+{
+       VkStructureType sType;
+       const void*             pNext;
+       uint32_t                drmFormatModifierCount;
+       const uint64_t* pDrmFormatModifiers;
+};
+
+struct VkImageDrmFormatModifierExplicitCreateInfoEXT
+{
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       uint64_t                                        drmFormatModifier;
+       uint32_t                                        drmFormatModifierPlaneCount;
+       const VkSubresourceLayout*      pPlaneLayouts;
+};
+
+struct VkImageDrmFormatModifierPropertiesEXT
+{
+       VkStructureType sType;
+       void*                   pNext;
+       uint64_t                drmFormatModifier;
+};
+
+struct VkImageStencilUsageCreateInfo
+{
+       VkStructureType         sType;
+       const void*                     pNext;
+       VkImageUsageFlags       stencilUsage;
+};
+
+struct VkDeviceMemoryOverallocationCreateInfoAMD
+{
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkMemoryOverallocationBehaviorAMD       overallocationBehavior;
+};
+
+struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                fragmentDensityMap;
+       VkBool32                fragmentDensityMapDynamic;
+       VkBool32                fragmentDensityMapNonSubsampledImages;
+};
+
+struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                fragmentDensityMapDeferred;
+};
+
+struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       uint32_t                                                        accelerationStructureCount;
-       const VkAccelerationStructureNV*        pAccelerationStructures;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                fragmentDensityMapOffset;
 };
 
-struct VkAccelerationStructureMemoryRequirementsInfoNV
+struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT
 {
-       VkStructureType                                                                 sType;
-       const void*                                                                             pNext;
-       VkAccelerationStructureMemoryRequirementsTypeNV type;
-       VkAccelerationStructureNV                                               accelerationStructure;
+       VkStructureType sType;
+       void*                   pNext;
+       VkExtent2D              minFragmentDensityTexelSize;
+       VkExtent2D              maxFragmentDensityTexelSize;
+       VkBool32                fragmentDensityInvocations;
 };
 
-struct VkPhysicalDeviceRayTracingPropertiesNV
+struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       uint32_t                shaderGroupHandleSize;
-       uint32_t                maxRecursionDepth;
-       uint32_t                maxShaderGroupStride;
-       uint32_t                shaderGroupBaseAlignment;
-       uint64_t                maxGeometryCount;
-       uint64_t                maxInstanceCount;
-       uint64_t                maxTriangleCount;
-       uint32_t                maxDescriptorSetAccelerationStructures;
+       VkBool32                subsampledLoads;
+       VkBool32                subsampledCoarseReconstructionEarlyAccess;
+       uint32_t                maxSubsampledArrayLayers;
+       uint32_t                maxDescriptorSetSubsampledSamplers;
 };
 
-struct VkTransformMatrixKHR
+struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM
 {
-       float   matrix[3][4];
+       VkStructureType sType;
+       void*                   pNext;
+       VkExtent2D              fragmentDensityOffsetGranularity;
 };
 
-struct VkAabbPositionsKHR
+struct VkRenderPassFragmentDensityMapCreateInfoEXT
 {
-       float   minX;
-       float   minY;
-       float   minZ;
-       float   maxX;
-       float   maxY;
-       float   maxZ;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkAttachmentReference   fragmentDensityMapAttachment;
 };
 
-struct VkAccelerationStructureInstanceKHR
+struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM
 {
-       VkTransformMatrixKHR            transform;
-       uint32_t                                        instanceCustomIndex:24;
-       uint32_t                                        mask:8;
-       uint32_t                                        instanceShaderBindingTableRecordOffset:24;
-       VkGeometryInstanceFlagsKHR      flags:8;
-       uint64_t                                        accelerationStructureReference;
+       VkStructureType         sType;
+       const void*                     pNext;
+       uint32_t                        fragmentDensityOffsetCount;
+       const VkOffset2D*       pFragmentDensityOffsets;
 };
 
-struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV
+struct VkPhysicalDeviceScalarBlockLayoutFeatures
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                representativeFragmentTest;
+       VkBool32                scalarBlockLayout;
 };
 
-struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV
+struct VkSurfaceProtectedCapabilitiesKHR
 {
        VkStructureType sType;
        const void*             pNext;
-       VkBool32                representativeFragmentTestEnable;
+       VkBool32                supportsProtected;
 };
 
-struct VkPhysicalDeviceImageViewImageFormatInfoEXT
+struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures
 {
        VkStructureType sType;
        void*                   pNext;
-       VkImageViewType imageViewType;
+       VkBool32                uniformBufferStandardLayout;
 };
 
-struct VkFilterCubicImageViewImageFormatPropertiesEXT
+struct VkPhysicalDeviceDepthClipEnableFeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                filterCubic;
-       VkBool32                filterCubicMinmax;
+       VkBool32                depthClipEnable;
 };
 
-struct VkImportMemoryHostPointerInfoEXT
+struct VkPipelineRasterizationDepthClipStateCreateInfoEXT
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkExternalMemoryHandleTypeFlagBits      handleType;
-       void*                                                           pHostPointer;
+       VkStructureType                                                                         sType;
+       const void*                                                                                     pNext;
+       VkPipelineRasterizationDepthClipStateCreateFlagsEXT     flags;
+       VkBool32                                                                                        depthClipEnable;
 };
 
-struct VkMemoryHostPointerPropertiesEXT
+struct VkPhysicalDeviceMemoryBudgetPropertiesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       uint32_t                memoryTypeBits;
+       VkDeviceSize    heapBudget[VK_MAX_MEMORY_HEAPS];
+       VkDeviceSize    heapUsage[VK_MAX_MEMORY_HEAPS];
 };
 
-struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+struct VkPhysicalDeviceMemoryPriorityFeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkDeviceSize    minImportedHostPointerAlignment;
-};
-
-struct VkPipelineCompilerControlCreateInfoAMD
-{
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkPipelineCompilerControlFlagsAMD       compilerControlFlags;
+       VkBool32                memoryPriority;
 };
 
-struct VkCalibratedTimestampInfoEXT
+struct VkMemoryPriorityAllocateInfoEXT
 {
        VkStructureType sType;
        const void*             pNext;
-       VkTimeDomainEXT timeDomain;
+       float                   priority;
 };
 
-struct VkPhysicalDeviceShaderCorePropertiesAMD
+struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       uint32_t                shaderEngineCount;
-       uint32_t                shaderArraysPerEngineCount;
-       uint32_t                computeUnitsPerShaderArray;
-       uint32_t                simdPerComputeUnit;
-       uint32_t                wavefrontsPerSimd;
-       uint32_t                wavefrontSize;
-       uint32_t                sgprsPerSimd;
-       uint32_t                minSgprAllocation;
-       uint32_t                maxSgprAllocation;
-       uint32_t                sgprAllocationGranularity;
-       uint32_t                vgprsPerSimd;
-       uint32_t                minVgprAllocation;
-       uint32_t                maxVgprAllocation;
-       uint32_t                vgprAllocationGranularity;
+       VkBool32                pageableDeviceLocalMemory;
 };
 
-struct VkDeviceMemoryOverallocationCreateInfoAMD
+struct VkPhysicalDeviceBufferDeviceAddressFeatures
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkMemoryOverallocationBehaviorAMD       overallocationBehavior;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                bufferDeviceAddress;
+       VkBool32                bufferDeviceAddressCaptureReplay;
+       VkBool32                bufferDeviceAddressMultiDevice;
 };
 
-struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       uint32_t                maxVertexAttribDivisor;
+       VkBool32                bufferDeviceAddress;
+       VkBool32                bufferDeviceAddressCaptureReplay;
+       VkBool32                bufferDeviceAddressMultiDevice;
 };
 
-struct VkVertexInputBindingDivisorDescriptionEXT
+struct VkBufferDeviceAddressInfo
 {
-       uint32_t        binding;
-       uint32_t        divisor;
+       VkStructureType sType;
+       const void*             pNext;
+       VkBuffer                buffer;
 };
 
-struct VkPipelineVertexInputDivisorStateCreateInfoEXT
+struct VkBufferOpaqueCaptureAddressCreateInfo
 {
-       VkStructureType                                                                         sType;
-       const void*                                                                                     pNext;
-       uint32_t                                                                                        vertexBindingDivisorCount;
-       const VkVertexInputBindingDivisorDescriptionEXT*        pVertexBindingDivisors;
+       VkStructureType sType;
+       const void*             pNext;
+       uint64_t                opaqueCaptureAddress;
 };
 
-struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT
+struct VkBufferDeviceAddressCreateInfoEXT
 {
        VkStructureType sType;
-       void*                   pNext;
-       VkBool32                vertexAttributeInstanceRateDivisor;
-       VkBool32                vertexAttributeInstanceRateZeroDivisor;
+       const void*             pNext;
+       VkDeviceAddress deviceAddress;
 };
 
-struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV
+struct VkPhysicalDeviceImageViewImageFormatInfoEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                computeDerivativeGroupQuads;
-       VkBool32                computeDerivativeGroupLinear;
+       VkImageViewType imageViewType;
 };
 
-struct VkPhysicalDeviceMeshShaderFeaturesNV
+struct VkFilterCubicImageViewImageFormatPropertiesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                taskShader;
-       VkBool32                meshShader;
+       VkBool32                filterCubic;
+       VkBool32                filterCubicMinmax;
 };
 
-struct VkPhysicalDeviceMeshShaderPropertiesNV
+struct VkPhysicalDeviceImagelessFramebufferFeatures
 {
        VkStructureType sType;
        void*                   pNext;
-       uint32_t                maxDrawMeshTasksCount;
-       uint32_t                maxTaskWorkGroupInvocations;
-       uint32_t                maxTaskWorkGroupSize[3];
-       uint32_t                maxTaskTotalMemorySize;
-       uint32_t                maxTaskOutputCount;
-       uint32_t                maxMeshWorkGroupInvocations;
-       uint32_t                maxMeshWorkGroupSize[3];
-       uint32_t                maxMeshTotalMemorySize;
-       uint32_t                maxMeshOutputVertices;
-       uint32_t                maxMeshOutputPrimitives;
-       uint32_t                maxMeshMultiviewViewCount;
-       uint32_t                meshOutputPerVertexGranularity;
-       uint32_t                meshOutputPerPrimitiveGranularity;
+       VkBool32                imagelessFramebuffer;
 };
 
-struct VkDrawMeshTasksIndirectCommandNV
+struct VkFramebufferAttachmentImageInfo
 {
-       uint32_t        taskCount;
-       uint32_t        firstTask;
+       VkStructureType         sType;
+       const void*                     pNext;
+       VkImageCreateFlags      flags;
+       VkImageUsageFlags       usage;
+       uint32_t                        width;
+       uint32_t                        height;
+       uint32_t                        layerCount;
+       uint32_t                        viewFormatCount;
+       const VkFormat*         pViewFormats;
 };
 
-struct VkPhysicalDeviceShaderImageFootprintFeaturesNV
+struct VkFramebufferAttachmentsCreateInfo
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                imageFootprint;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       uint32_t                                                                attachmentImageInfoCount;
+       const VkFramebufferAttachmentImageInfo* pAttachmentImageInfos;
 };
 
-struct VkPipelineViewportExclusiveScissorStateCreateInfoNV
+struct VkRenderPassAttachmentBeginInfo
+{
+       VkStructureType         sType;
+       const void*                     pNext;
+       uint32_t                        attachmentCount;
+       const VkImageView*      pAttachments;
+};
+
+struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures
 {
        VkStructureType sType;
-       const void*             pNext;
-       uint32_t                exclusiveScissorCount;
-       const VkRect2D* pExclusiveScissors;
+       void*                   pNext;
+       VkBool32                textureCompressionASTC_HDR;
 };
 
-struct VkPhysicalDeviceExclusiveScissorFeaturesNV
+struct VkPhysicalDeviceCooperativeMatrixFeaturesNV
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                exclusiveScissor;
+       VkBool32                cooperativeMatrix;
+       VkBool32                cooperativeMatrixRobustBufferAccess;
+};
+
+struct VkPhysicalDeviceCooperativeMatrixPropertiesNV
+{
+       VkStructureType         sType;
+       void*                           pNext;
+       VkShaderStageFlags      cooperativeMatrixSupportedStages;
+};
+
+struct VkCooperativeMatrixPropertiesNV
+{
+       VkStructureType         sType;
+       void*                           pNext;
+       uint32_t                        MSize;
+       uint32_t                        NSize;
+       uint32_t                        KSize;
+       VkComponentTypeNV       AType;
+       VkComponentTypeNV       BType;
+       VkComponentTypeNV       CType;
+       VkComponentTypeNV       DType;
+       VkScopeNV                       scope;
 };
 
-struct VkQueueFamilyCheckpointPropertiesNV
+struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT
 {
-       VkStructureType                 sType;
-       void*                                   pNext;
-       VkPipelineStageFlags    checkpointExecutionStageMask;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                ycbcrImageArrays;
 };
 
-struct VkCheckpointDataNV
+struct VkImageViewHandleInfoNVX
 {
-       VkStructureType                 sType;
-       void*                                   pNext;
-       VkPipelineStageFlagBits stage;
-       void*                                   pCheckpointMarker;
+       VkStructureType         sType;
+       const void*                     pNext;
+       VkImageView                     imageView;
+       VkDescriptorType        descriptorType;
+       VkSampler                       sampler;
 };
 
-struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
+struct VkImageViewAddressPropertiesNVX
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                shaderIntegerFunctions2;
+       VkDeviceAddress deviceAddress;
+       VkDeviceSize    size;
 };
 
-union VkPerformanceValueDataINTEL
+struct VkPresentFrameTokenGGP
 {
-       uint32_t        value32;
-       uint64_t        value64;
-       float           valueFloat;
-       VkBool32        valueBool;
-       const char*     valueString;
+       VkStructureType         sType;
+       const void*                     pNext;
+       pt::GgpFrameToken       frameToken;
 };
 
-struct VkPerformanceValueINTEL
+struct VkPipelineCreationFeedback
 {
-       VkPerformanceValueTypeINTEL     type;
-       VkPerformanceValueDataINTEL     data;
+       VkPipelineCreationFeedbackFlags flags;
+       uint64_t                                                duration;
 };
 
-struct VkInitializePerformanceApiInfoINTEL
+struct VkPipelineCreationFeedbackCreateInfo
 {
-       VkStructureType sType;
-       const void*             pNext;
-       void*                   pUserData;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkPipelineCreationFeedback*     pPipelineCreationFeedback;
+       uint32_t                                        pipelineStageCreationFeedbackCount;
+       VkPipelineCreationFeedback*     pPipelineStageCreationFeedbacks;
 };
 
-struct VkQueryPoolPerformanceQueryCreateInfoINTEL
+struct VkSurfaceFullScreenExclusiveInfoEXT
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkQueryPoolSamplingModeINTEL    performanceCountersSampling;
+       VkStructureType                         sType;
+       void*                                           pNext;
+       VkFullScreenExclusiveEXT        fullScreenExclusive;
 };
 
-struct VkPerformanceMarkerInfoINTEL
+struct VkSurfaceFullScreenExclusiveWin32InfoEXT
 {
-       VkStructureType sType;
-       const void*             pNext;
-       uint64_t                marker;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       pt::Win32MonitorHandle  hmonitor;
 };
 
-struct VkPerformanceStreamMarkerInfoINTEL
+struct VkSurfaceCapabilitiesFullScreenExclusiveEXT
 {
        VkStructureType sType;
-       const void*             pNext;
-       uint32_t                marker;
+       void*                   pNext;
+       VkBool32                fullScreenExclusiveSupported;
 };
 
-struct VkPerformanceOverrideInfoINTEL
+struct VkPhysicalDevicePerformanceQueryFeaturesKHR
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkPerformanceOverrideTypeINTEL  type;
-       VkBool32                                                enable;
-       uint64_t                                                parameter;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                performanceCounterQueryPools;
+       VkBool32                performanceCounterMultipleQueryPools;
 };
 
-struct VkPerformanceConfigurationAcquireInfoINTEL
+struct VkPhysicalDevicePerformanceQueryPropertiesKHR
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkPerformanceConfigurationTypeINTEL     type;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                allowCommandBufferQueryCopies;
 };
 
-struct VkPhysicalDevicePCIBusInfoPropertiesEXT
+struct VkPerformanceCounterKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       uint32_t                pciDomain;
-       uint32_t                pciBus;
-       uint32_t                pciDevice;
-       uint32_t                pciFunction;
+       VkStructureType                                 sType;
+       void*                                                   pNext;
+       VkPerformanceCounterUnitKHR             unit;
+       VkPerformanceCounterScopeKHR    scope;
+       VkPerformanceCounterStorageKHR  storage;
+       uint8_t                                                 uuid[VK_UUID_SIZE];
 };
 
-struct VkDisplayNativeHdrSurfaceCapabilitiesAMD
+struct VkPerformanceCounterDescriptionKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                localDimmingSupport;
+       VkStructureType                                                 sType;
+       void*                                                                   pNext;
+       VkPerformanceCounterDescriptionFlagsKHR flags;
+       char                                                                    name[VK_MAX_DESCRIPTION_SIZE];
+       char                                                                    category[VK_MAX_DESCRIPTION_SIZE];
+       char                                                                    description[VK_MAX_DESCRIPTION_SIZE];
 };
 
-struct VkSwapchainDisplayNativeHdrCreateInfoAMD
+struct VkQueryPoolPerformanceCreateInfoKHR
 {
        VkStructureType sType;
        const void*             pNext;
-       VkBool32                localDimmingEnable;
+       uint32_t                queueFamilyIndex;
+       uint32_t                counterIndexCount;
+       const uint32_t* pCounterIndices;
 };
 
-struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT
+union VkPerformanceCounterResultKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                fragmentDensityMap;
-       VkBool32                fragmentDensityMapDynamic;
-       VkBool32                fragmentDensityMapNonSubsampledImages;
+       int32_t         int32;
+       int64_t         int64;
+       uint32_t        uint32;
+       uint64_t        uint64;
+       float           float32;
+       double          float64;
 };
 
-struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT
+struct VkAcquireProfilingLockInfoKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkExtent2D              minFragmentDensityTexelSize;
-       VkExtent2D              maxFragmentDensityTexelSize;
-       VkBool32                fragmentDensityInvocations;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkAcquireProfilingLockFlagsKHR  flags;
+       uint64_t                                                timeout;
 };
 
-struct VkRenderPassFragmentDensityMapCreateInfoEXT
+struct VkPerformanceQuerySubmitInfoKHR
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkAttachmentReference   fragmentDensityMapAttachment;
+       VkStructureType sType;
+       const void*             pNext;
+       uint32_t                counterPassIndex;
 };
 
-struct VkPhysicalDeviceShaderCoreProperties2AMD
+struct VkHeadlessSurfaceCreateInfoEXT
 {
        VkStructureType                                 sType;
-       void*                                                   pNext;
-       VkShaderCorePropertiesFlagsAMD  shaderCoreFeatures;
-       uint32_t                                                activeComputeUnitCount;
+       const void*                                             pNext;
+       VkHeadlessSurfaceCreateFlagsEXT flags;
 };
 
-struct VkPhysicalDeviceCoherentMemoryFeaturesAMD
+struct VkPhysicalDeviceCoverageReductionModeFeaturesNV
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                deviceCoherentMemory;
+       VkBool32                coverageReductionMode;
 };
 
-struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT
+struct VkPipelineCoverageReductionStateCreateInfoNV
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                shaderImageInt64Atomics;
-       VkBool32                sparseImageInt64Atomics;
+       VkStructureType                                                                 sType;
+       const void*                                                                             pNext;
+       VkPipelineCoverageReductionStateCreateFlagsNV   flags;
+       VkCoverageReductionModeNV                                               coverageReductionMode;
 };
 
-struct VkPhysicalDeviceMemoryBudgetPropertiesEXT
+struct VkFramebufferMixedSamplesCombinationNV
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkDeviceSize    heapBudget[VK_MAX_MEMORY_HEAPS];
-       VkDeviceSize    heapUsage[VK_MAX_MEMORY_HEAPS];
+       VkStructureType                         sType;
+       void*                                           pNext;
+       VkCoverageReductionModeNV       coverageReductionMode;
+       VkSampleCountFlagBits           rasterizationSamples;
+       VkSampleCountFlags                      depthStencilSamples;
+       VkSampleCountFlags                      colorSamples;
 };
 
-struct VkPhysicalDeviceMemoryPriorityFeaturesEXT
+struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                memoryPriority;
+       VkBool32                shaderIntegerFunctions2;
 };
 
-struct VkMemoryPriorityAllocateInfoEXT
+union VkPerformanceValueDataINTEL
 {
-       VkStructureType sType;
-       const void*             pNext;
-       float                   priority;
+       uint32_t        value32;
+       uint64_t        value64;
+       float           valueFloat;
+       VkBool32        valueBool;
+       const char*     valueString;
 };
 
-struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
+struct VkPerformanceValueINTEL
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                dedicatedAllocationImageAliasing;
+       VkPerformanceValueTypeINTEL     type;
+       VkPerformanceValueDataINTEL     data;
 };
 
-struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT
+struct VkInitializePerformanceApiInfoINTEL
 {
        VkStructureType sType;
-       void*                   pNext;
-       VkBool32                bufferDeviceAddress;
-       VkBool32                bufferDeviceAddressCaptureReplay;
-       VkBool32                bufferDeviceAddressMultiDevice;
+       const void*             pNext;
+       void*                   pUserData;
 };
 
-struct VkBufferDeviceAddressCreateInfoEXT
+struct VkQueryPoolPerformanceQueryCreateInfoINTEL
+{
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkQueryPoolSamplingModeINTEL    performanceCountersSampling;
+};
+
+struct VkPerformanceMarkerInfoINTEL
 {
        VkStructureType sType;
        const void*             pNext;
-       VkDeviceAddress deviceAddress;
+       uint64_t                marker;
 };
 
-struct VkValidationFeaturesEXT
+struct VkPerformanceStreamMarkerInfoINTEL
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       uint32_t                                                                enabledValidationFeatureCount;
-       const VkValidationFeatureEnableEXT*             pEnabledValidationFeatures;
-       uint32_t                                                                disabledValidationFeatureCount;
-       const VkValidationFeatureDisableEXT*    pDisabledValidationFeatures;
+       VkStructureType sType;
+       const void*             pNext;
+       uint32_t                marker;
 };
 
-struct VkCooperativeMatrixPropertiesNV
+struct VkPerformanceOverrideInfoINTEL
 {
-       VkStructureType         sType;
-       void*                           pNext;
-       uint32_t                        MSize;
-       uint32_t                        NSize;
-       uint32_t                        KSize;
-       VkComponentTypeNV       AType;
-       VkComponentTypeNV       BType;
-       VkComponentTypeNV       CType;
-       VkComponentTypeNV       DType;
-       VkScopeNV                       scope;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkPerformanceOverrideTypeINTEL  type;
+       VkBool32                                                enable;
+       uint64_t                                                parameter;
 };
 
-struct VkPhysicalDeviceCooperativeMatrixFeaturesNV
+struct VkPerformanceConfigurationAcquireInfoINTEL
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                cooperativeMatrix;
-       VkBool32                cooperativeMatrixRobustBufferAccess;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkPerformanceConfigurationTypeINTEL     type;
 };
 
-struct VkPhysicalDeviceCooperativeMatrixPropertiesNV
+struct VkPhysicalDeviceShaderClockFeaturesKHR
 {
-       VkStructureType         sType;
-       void*                           pNext;
-       VkShaderStageFlags      cooperativeMatrixSupportedStages;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                shaderSubgroupClock;
+       VkBool32                shaderDeviceClock;
 };
 
-struct VkPhysicalDeviceCoverageReductionModeFeaturesNV
+struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                coverageReductionMode;
+       VkBool32                indexTypeUint8;
 };
 
-struct VkPipelineCoverageReductionStateCreateInfoNV
+struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV
 {
-       VkStructureType                                                                 sType;
-       const void*                                                                             pNext;
-       VkPipelineCoverageReductionStateCreateFlagsNV   flags;
-       VkCoverageReductionModeNV                                               coverageReductionMode;
+       VkStructureType sType;
+       void*                   pNext;
+       uint32_t                shaderSMCount;
+       uint32_t                shaderWarpsPerSM;
 };
 
-struct VkFramebufferMixedSamplesCombinationNV
+struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV
 {
-       VkStructureType                         sType;
-       void*                                           pNext;
-       VkCoverageReductionModeNV       coverageReductionMode;
-       VkSampleCountFlagBits           rasterizationSamples;
-       VkSampleCountFlags                      depthStencilSamples;
-       VkSampleCountFlags                      colorSamples;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                shaderSMBuiltins;
 };
 
 struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT
@@ -5029,336 +4787,456 @@ struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT
        VkBool32                fragmentShaderShadingRateInterlock;
 };
 
-struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT
+struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                ycbcrImageArrays;
+       VkBool32                separateDepthStencilLayouts;
 };
 
-struct VkPhysicalDeviceProvokingVertexFeaturesEXT
+struct VkAttachmentReferenceStencilLayout
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                provokingVertexLast;
-       VkBool32                transformFeedbackPreservesProvokingVertex;
+       VkImageLayout   stencilLayout;
 };
 
-struct VkPhysicalDeviceProvokingVertexPropertiesEXT
+struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                provokingVertexModePerPipeline;
-       VkBool32                transformFeedbackPreservesTriangleFanProvokingVertex;
-};
-
-struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT
-{
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkProvokingVertexModeEXT        provokingVertexMode;
+       VkBool32                primitiveTopologyListRestart;
+       VkBool32                primitiveTopologyPatchListRestart;
 };
 
-struct VkHeadlessSurfaceCreateInfoEXT
+struct VkAttachmentDescriptionStencilLayout
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkHeadlessSurfaceCreateFlagsEXT flags;
+       VkStructureType sType;
+       void*                   pNext;
+       VkImageLayout   stencilInitialLayout;
+       VkImageLayout   stencilFinalLayout;
 };
 
-struct VkPhysicalDeviceLineRasterizationFeaturesEXT
+struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                rectangularLines;
-       VkBool32                bresenhamLines;
-       VkBool32                smoothLines;
-       VkBool32                stippledRectangularLines;
-       VkBool32                stippledBresenhamLines;
-       VkBool32                stippledSmoothLines;
+       VkBool32                pipelineExecutableInfo;
 };
 
-struct VkPhysicalDeviceLineRasterizationPropertiesEXT
+struct VkPipelineInfoKHR
 {
        VkStructureType sType;
-       void*                   pNext;
-       uint32_t                lineSubPixelPrecisionBits;
+       const void*             pNext;
+       VkPipeline              pipeline;
 };
 
-struct VkPipelineRasterizationLineStateCreateInfoEXT
+struct VkPipelineExecutablePropertiesKHR
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkLineRasterizationModeEXT      lineRasterizationMode;
-       VkBool32                                        stippledLineEnable;
-       uint32_t                                        lineStippleFactor;
-       uint16_t                                        lineStipplePattern;
+       VkStructureType         sType;
+       void*                           pNext;
+       VkShaderStageFlags      stages;
+       char                            name[VK_MAX_DESCRIPTION_SIZE];
+       char                            description[VK_MAX_DESCRIPTION_SIZE];
+       uint32_t                        subgroupSize;
 };
 
-struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT
+struct VkPipelineExecutableInfoKHR
 {
        VkStructureType sType;
-       void*                   pNext;
-       VkBool32                shaderBufferFloat32Atomics;
-       VkBool32                shaderBufferFloat32AtomicAdd;
-       VkBool32                shaderBufferFloat64Atomics;
-       VkBool32                shaderBufferFloat64AtomicAdd;
-       VkBool32                shaderSharedFloat32Atomics;
-       VkBool32                shaderSharedFloat32AtomicAdd;
-       VkBool32                shaderSharedFloat64Atomics;
-       VkBool32                shaderSharedFloat64AtomicAdd;
-       VkBool32                shaderImageFloat32Atomics;
-       VkBool32                shaderImageFloat32AtomicAdd;
-       VkBool32                sparseImageFloat32Atomics;
-       VkBool32                sparseImageFloat32AtomicAdd;
+       const void*             pNext;
+       VkPipeline              pipeline;
+       uint32_t                executableIndex;
 };
 
-struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT
+union VkPipelineExecutableStatisticValueKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                indexTypeUint8;
+       VkBool32        b32;
+       int64_t         i64;
+       uint64_t        u64;
+       double          f64;
 };
 
-struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT
+struct VkPipelineExecutableStatisticKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                extendedDynamicState;
+       VkStructureType                                                 sType;
+       void*                                                                   pNext;
+       char                                                                    name[VK_MAX_DESCRIPTION_SIZE];
+       char                                                                    description[VK_MAX_DESCRIPTION_SIZE];
+       VkPipelineExecutableStatisticFormatKHR  format;
+       VkPipelineExecutableStatisticValueKHR   value;
 };
 
-struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT
+struct VkPipelineExecutableInternalRepresentationKHR
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                shaderBufferFloat16Atomics;
-       VkBool32                shaderBufferFloat16AtomicAdd;
-       VkBool32                shaderBufferFloat16AtomicMinMax;
-       VkBool32                shaderBufferFloat32AtomicMinMax;
-       VkBool32                shaderBufferFloat64AtomicMinMax;
-       VkBool32                shaderSharedFloat16Atomics;
-       VkBool32                shaderSharedFloat16AtomicAdd;
-       VkBool32                shaderSharedFloat16AtomicMinMax;
-       VkBool32                shaderSharedFloat32AtomicMinMax;
-       VkBool32                shaderSharedFloat64AtomicMinMax;
-       VkBool32                shaderImageFloat32AtomicMinMax;
-       VkBool32                sparseImageFloat32AtomicMinMax;
+       char                    name[VK_MAX_DESCRIPTION_SIZE];
+       char                    description[VK_MAX_DESCRIPTION_SIZE];
+       VkBool32                isText;
+       size_t                  dataSize;
+       void*                   pData;
 };
 
-struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV
+struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures
 {
        VkStructureType sType;
        void*                   pNext;
-       uint32_t                maxGraphicsShaderGroupCount;
-       uint32_t                maxIndirectSequenceCount;
-       uint32_t                maxIndirectCommandsTokenCount;
-       uint32_t                maxIndirectCommandsStreamCount;
-       uint32_t                maxIndirectCommandsTokenOffset;
-       uint32_t                maxIndirectCommandsStreamStride;
-       uint32_t                minSequencesCountBufferOffsetAlignment;
-       uint32_t                minSequencesIndexBufferOffsetAlignment;
-       uint32_t                minIndirectCommandsBufferOffsetAlignment;
+       VkBool32                shaderDemoteToHelperInvocation;
 };
 
-struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV
+struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                deviceGeneratedCommands;
-};
-
-struct VkGraphicsShaderGroupCreateInfoNV
-{
-       VkStructureType                                                                 sType;
-       const void*                                                                             pNext;
-       uint32_t                                                                                stageCount;
-       const VkPipelineShaderStageCreateInfo*                  pStages;
-       const VkPipelineVertexInputStateCreateInfo*             pVertexInputState;
-       const VkPipelineTessellationStateCreateInfo*    pTessellationState;
-};
-
-struct VkGraphicsPipelineShaderGroupsCreateInfoNV
-{
-       VkStructureType                                                         sType;
-       const void*                                                                     pNext;
-       uint32_t                                                                        groupCount;
-       const VkGraphicsShaderGroupCreateInfoNV*        pGroups;
-       uint32_t                                                                        pipelineCount;
-       const VkPipeline*                                                       pPipelines;
-};
-
-struct VkBindShaderGroupIndirectCommandNV
-{
-       uint32_t        groupIndex;
+       VkBool32                texelBufferAlignment;
 };
 
-struct VkBindIndexBufferIndirectCommandNV
+struct VkPhysicalDeviceTexelBufferAlignmentProperties
 {
-       VkDeviceAddress bufferAddress;
-       uint32_t                size;
-       VkIndexType             indexType;
+       VkStructureType sType;
+       void*                   pNext;
+       VkDeviceSize    storageTexelBufferOffsetAlignmentBytes;
+       VkBool32                storageTexelBufferOffsetSingleTexelAlignment;
+       VkDeviceSize    uniformTexelBufferOffsetAlignmentBytes;
+       VkBool32                uniformTexelBufferOffsetSingleTexelAlignment;
 };
 
-struct VkBindVertexBufferIndirectCommandNV
+struct VkPhysicalDeviceSubgroupSizeControlFeatures
 {
-       VkDeviceAddress bufferAddress;
-       uint32_t                size;
-       uint32_t                stride;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                subgroupSizeControl;
+       VkBool32                computeFullSubgroups;
 };
 
-struct VkSetStateFlagsIndirectCommandNV
+struct VkPhysicalDeviceSubgroupSizeControlProperties
 {
-       uint32_t        data;
+       VkStructureType         sType;
+       void*                           pNext;
+       uint32_t                        minSubgroupSize;
+       uint32_t                        maxSubgroupSize;
+       uint32_t                        maxComputeWorkgroupSubgroups;
+       VkShaderStageFlags      requiredSubgroupSizeStages;
 };
 
-struct VkIndirectCommandsStreamNV
+struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo
 {
-       VkBuffer                buffer;
-       VkDeviceSize    offset;
+       VkStructureType sType;
+       void*                   pNext;
+       uint32_t                requiredSubgroupSize;
 };
 
-struct VkIndirectCommandsLayoutTokenNV
+struct VkSubpassShadingPipelineCreateInfoHUAWEI
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkIndirectCommandsTokenTypeNV   tokenType;
-       uint32_t                                                stream;
-       uint32_t                                                offset;
-       uint32_t                                                vertexBindingUnit;
-       VkBool32                                                vertexDynamicStride;
-       VkPipelineLayout                                pushconstantPipelineLayout;
-       VkShaderStageFlags                              pushconstantShaderStageFlags;
-       uint32_t                                                pushconstantOffset;
-       uint32_t                                                pushconstantSize;
-       VkIndirectStateFlagsNV                  indirectStateFlags;
-       uint32_t                                                indexTypeCount;
-       const VkIndexType*                              pIndexTypes;
-       const uint32_t*                                 pIndexTypeValues;
+       VkStructureType sType;
+       void*                   pNext;
+       VkRenderPass    renderPass;
+       uint32_t                subpass;
 };
 
-struct VkIndirectCommandsLayoutCreateInfoNV
+struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkIndirectCommandsLayoutUsageFlagsNV    flags;
-       VkPipelineBindPoint                                             pipelineBindPoint;
-       uint32_t                                                                tokenCount;
-       const VkIndirectCommandsLayoutTokenNV*  pTokens;
-       uint32_t                                                                streamCount;
-       const uint32_t*                                                 pStreamStrides;
+       VkStructureType sType;
+       void*                   pNext;
+       uint32_t                maxSubpassShadingWorkgroupSizeAspectRatio;
 };
 
-struct VkGeneratedCommandsInfoNV
+struct VkMemoryOpaqueCaptureAddressAllocateInfo
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkPipelineBindPoint                                     pipelineBindPoint;
-       VkPipeline                                                      pipeline;
-       VkIndirectCommandsLayoutNV                      indirectCommandsLayout;
-       uint32_t                                                        streamCount;
-       const VkIndirectCommandsStreamNV*       pStreams;
-       uint32_t                                                        sequencesCount;
-       VkBuffer                                                        preprocessBuffer;
-       VkDeviceSize                                            preprocessOffset;
-       VkDeviceSize                                            preprocessSize;
-       VkBuffer                                                        sequencesCountBuffer;
-       VkDeviceSize                                            sequencesCountOffset;
-       VkBuffer                                                        sequencesIndexBuffer;
-       VkDeviceSize                                            sequencesIndexOffset;
+       VkStructureType sType;
+       const void*             pNext;
+       uint64_t                opaqueCaptureAddress;
 };
 
-struct VkGeneratedCommandsMemoryRequirementsInfoNV
+struct VkDeviceMemoryOpaqueCaptureAddressInfo
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkPipelineBindPoint                     pipelineBindPoint;
-       VkPipeline                                      pipeline;
-       VkIndirectCommandsLayoutNV      indirectCommandsLayout;
-       uint32_t                                        maxSequencesCount;
+       VkStructureType sType;
+       const void*             pNext;
+       VkDeviceMemory  memory;
 };
 
-struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV
+struct VkPhysicalDeviceLineRasterizationFeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                inheritedViewportScissor2D;
+       VkBool32                rectangularLines;
+       VkBool32                bresenhamLines;
+       VkBool32                smoothLines;
+       VkBool32                stippledRectangularLines;
+       VkBool32                stippledBresenhamLines;
+       VkBool32                stippledSmoothLines;
 };
 
-struct VkCommandBufferInheritanceViewportScissorInfoNV
+struct VkPhysicalDeviceLineRasterizationPropertiesEXT
 {
-       VkStructureType         sType;
-       const void*                     pNext;
-       VkBool32                        viewportScissor2D;
-       uint32_t                        viewportDepthCount;
-       const VkViewport*       pViewportDepths;
+       VkStructureType sType;
+       void*                   pNext;
+       uint32_t                lineSubPixelPrecisionBits;
 };
 
-struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT
+struct VkPipelineRasterizationLineStateCreateInfoEXT
+{
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkLineRasterizationModeEXT      lineRasterizationMode;
+       VkBool32                                        stippledLineEnable;
+       uint32_t                                        lineStippleFactor;
+       uint16_t                                        lineStipplePattern;
+};
+
+struct VkPhysicalDevicePipelineCreationCacheControlFeatures
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                texelBufferAlignment;
+       VkBool32                pipelineCreationCacheControl;
 };
 
-struct VkRenderPassTransformBeginInfoQCOM
+struct VkPhysicalDeviceVulkan11Features
 {
-       VkStructureType                                 sType;
-       void*                                                   pNext;
-       VkSurfaceTransformFlagBitsKHR   transform;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                storageBuffer16BitAccess;
+       VkBool32                uniformAndStorageBuffer16BitAccess;
+       VkBool32                storagePushConstant16;
+       VkBool32                storageInputOutput16;
+       VkBool32                multiview;
+       VkBool32                multiviewGeometryShader;
+       VkBool32                multiviewTessellationShader;
+       VkBool32                variablePointersStorageBuffer;
+       VkBool32                variablePointers;
+       VkBool32                protectedMemory;
+       VkBool32                samplerYcbcrConversion;
+       VkBool32                shaderDrawParameters;
 };
 
-struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM
+struct VkPhysicalDeviceVulkan11Properties
 {
-       VkStructureType                                 sType;
-       void*                                                   pNext;
-       VkSurfaceTransformFlagBitsKHR   transform;
-       VkRect2D                                                renderArea;
+       VkStructureType                 sType;
+       void*                                   pNext;
+       uint8_t                                 deviceUUID[VK_UUID_SIZE];
+       uint8_t                                 driverUUID[VK_UUID_SIZE];
+       uint8_t                                 deviceLUID[VK_LUID_SIZE];
+       uint32_t                                deviceNodeMask;
+       VkBool32                                deviceLUIDValid;
+       uint32_t                                subgroupSize;
+       VkShaderStageFlags              subgroupSupportedStages;
+       VkSubgroupFeatureFlags  subgroupSupportedOperations;
+       VkBool32                                subgroupQuadOperationsInAllStages;
+       VkPointClippingBehavior pointClippingBehavior;
+       uint32_t                                maxMultiviewViewCount;
+       uint32_t                                maxMultiviewInstanceIndex;
+       VkBool32                                protectedNoFault;
+       uint32_t                                maxPerSetDescriptors;
+       VkDeviceSize                    maxMemoryAllocationSize;
 };
 
-struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT
+struct VkPhysicalDeviceVulkan12Features
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                deviceMemoryReport;
+       VkBool32                samplerMirrorClampToEdge;
+       VkBool32                drawIndirectCount;
+       VkBool32                storageBuffer8BitAccess;
+       VkBool32                uniformAndStorageBuffer8BitAccess;
+       VkBool32                storagePushConstant8;
+       VkBool32                shaderBufferInt64Atomics;
+       VkBool32                shaderSharedInt64Atomics;
+       VkBool32                shaderFloat16;
+       VkBool32                shaderInt8;
+       VkBool32                descriptorIndexing;
+       VkBool32                shaderInputAttachmentArrayDynamicIndexing;
+       VkBool32                shaderUniformTexelBufferArrayDynamicIndexing;
+       VkBool32                shaderStorageTexelBufferArrayDynamicIndexing;
+       VkBool32                shaderUniformBufferArrayNonUniformIndexing;
+       VkBool32                shaderSampledImageArrayNonUniformIndexing;
+       VkBool32                shaderStorageBufferArrayNonUniformIndexing;
+       VkBool32                shaderStorageImageArrayNonUniformIndexing;
+       VkBool32                shaderInputAttachmentArrayNonUniformIndexing;
+       VkBool32                shaderUniformTexelBufferArrayNonUniformIndexing;
+       VkBool32                shaderStorageTexelBufferArrayNonUniformIndexing;
+       VkBool32                descriptorBindingUniformBufferUpdateAfterBind;
+       VkBool32                descriptorBindingSampledImageUpdateAfterBind;
+       VkBool32                descriptorBindingStorageImageUpdateAfterBind;
+       VkBool32                descriptorBindingStorageBufferUpdateAfterBind;
+       VkBool32                descriptorBindingUniformTexelBufferUpdateAfterBind;
+       VkBool32                descriptorBindingStorageTexelBufferUpdateAfterBind;
+       VkBool32                descriptorBindingUpdateUnusedWhilePending;
+       VkBool32                descriptorBindingPartiallyBound;
+       VkBool32                descriptorBindingVariableDescriptorCount;
+       VkBool32                runtimeDescriptorArray;
+       VkBool32                samplerFilterMinmax;
+       VkBool32                scalarBlockLayout;
+       VkBool32                imagelessFramebuffer;
+       VkBool32                uniformBufferStandardLayout;
+       VkBool32                shaderSubgroupExtendedTypes;
+       VkBool32                separateDepthStencilLayouts;
+       VkBool32                hostQueryReset;
+       VkBool32                timelineSemaphore;
+       VkBool32                bufferDeviceAddress;
+       VkBool32                bufferDeviceAddressCaptureReplay;
+       VkBool32                bufferDeviceAddressMultiDevice;
+       VkBool32                vulkanMemoryModel;
+       VkBool32                vulkanMemoryModelDeviceScope;
+       VkBool32                vulkanMemoryModelAvailabilityVisibilityChains;
+       VkBool32                shaderOutputViewportIndex;
+       VkBool32                shaderOutputLayer;
+       VkBool32                subgroupBroadcastDynamicId;
 };
 
-struct VkDeviceMemoryReportCallbackDataEXT
+struct VkPhysicalDeviceVulkan12Properties
 {
        VkStructureType                                         sType;
        void*                                                           pNext;
-       VkDeviceMemoryReportFlagsEXT            flags;
-       VkDeviceMemoryReportEventTypeEXT        type;
-       uint64_t                                                        memoryObjectId;
-       VkDeviceSize                                            size;
-       VkObjectType                                            objectType;
-       uint64_t                                                        objectHandle;
-       uint32_t                                                        heapIndex;
+       VkDriverId                                                      driverID;
+       char                                                            driverName[VK_MAX_DRIVER_NAME_SIZE];
+       char                                                            driverInfo[VK_MAX_DRIVER_INFO_SIZE];
+       VkConformanceVersion                            conformanceVersion;
+       VkShaderFloatControlsIndependence       denormBehaviorIndependence;
+       VkShaderFloatControlsIndependence       roundingModeIndependence;
+       VkBool32                                                        shaderSignedZeroInfNanPreserveFloat16;
+       VkBool32                                                        shaderSignedZeroInfNanPreserveFloat32;
+       VkBool32                                                        shaderSignedZeroInfNanPreserveFloat64;
+       VkBool32                                                        shaderDenormPreserveFloat16;
+       VkBool32                                                        shaderDenormPreserveFloat32;
+       VkBool32                                                        shaderDenormPreserveFloat64;
+       VkBool32                                                        shaderDenormFlushToZeroFloat16;
+       VkBool32                                                        shaderDenormFlushToZeroFloat32;
+       VkBool32                                                        shaderDenormFlushToZeroFloat64;
+       VkBool32                                                        shaderRoundingModeRTEFloat16;
+       VkBool32                                                        shaderRoundingModeRTEFloat32;
+       VkBool32                                                        shaderRoundingModeRTEFloat64;
+       VkBool32                                                        shaderRoundingModeRTZFloat16;
+       VkBool32                                                        shaderRoundingModeRTZFloat32;
+       VkBool32                                                        shaderRoundingModeRTZFloat64;
+       uint32_t                                                        maxUpdateAfterBindDescriptorsInAllPools;
+       VkBool32                                                        shaderUniformBufferArrayNonUniformIndexingNative;
+       VkBool32                                                        shaderSampledImageArrayNonUniformIndexingNative;
+       VkBool32                                                        shaderStorageBufferArrayNonUniformIndexingNative;
+       VkBool32                                                        shaderStorageImageArrayNonUniformIndexingNative;
+       VkBool32                                                        shaderInputAttachmentArrayNonUniformIndexingNative;
+       VkBool32                                                        robustBufferAccessUpdateAfterBind;
+       VkBool32                                                        quadDivergentImplicitLod;
+       uint32_t                                                        maxPerStageDescriptorUpdateAfterBindSamplers;
+       uint32_t                                                        maxPerStageDescriptorUpdateAfterBindUniformBuffers;
+       uint32_t                                                        maxPerStageDescriptorUpdateAfterBindStorageBuffers;
+       uint32_t                                                        maxPerStageDescriptorUpdateAfterBindSampledImages;
+       uint32_t                                                        maxPerStageDescriptorUpdateAfterBindStorageImages;
+       uint32_t                                                        maxPerStageDescriptorUpdateAfterBindInputAttachments;
+       uint32_t                                                        maxPerStageUpdateAfterBindResources;
+       uint32_t                                                        maxDescriptorSetUpdateAfterBindSamplers;
+       uint32_t                                                        maxDescriptorSetUpdateAfterBindUniformBuffers;
+       uint32_t                                                        maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
+       uint32_t                                                        maxDescriptorSetUpdateAfterBindStorageBuffers;
+       uint32_t                                                        maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
+       uint32_t                                                        maxDescriptorSetUpdateAfterBindSampledImages;
+       uint32_t                                                        maxDescriptorSetUpdateAfterBindStorageImages;
+       uint32_t                                                        maxDescriptorSetUpdateAfterBindInputAttachments;
+       VkResolveModeFlags                                      supportedDepthResolveModes;
+       VkResolveModeFlags                                      supportedStencilResolveModes;
+       VkBool32                                                        independentResolveNone;
+       VkBool32                                                        independentResolve;
+       VkBool32                                                        filterMinmaxSingleComponentFormats;
+       VkBool32                                                        filterMinmaxImageComponentMapping;
+       uint64_t                                                        maxTimelineSemaphoreValueDifference;
+       VkSampleCountFlags                                      framebufferIntegerColorSampleCounts;
+};
+
+struct VkPhysicalDeviceVulkan13Features
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                robustImageAccess;
+       VkBool32                inlineUniformBlock;
+       VkBool32                descriptorBindingInlineUniformBlockUpdateAfterBind;
+       VkBool32                pipelineCreationCacheControl;
+       VkBool32                privateData;
+       VkBool32                shaderDemoteToHelperInvocation;
+       VkBool32                shaderTerminateInvocation;
+       VkBool32                subgroupSizeControl;
+       VkBool32                computeFullSubgroups;
+       VkBool32                synchronization2;
+       VkBool32                textureCompressionASTC_HDR;
+       VkBool32                shaderZeroInitializeWorkgroupMemory;
+       VkBool32                dynamicRendering;
+       VkBool32                shaderIntegerDotProduct;
+       VkBool32                maintenance4;
+};
+
+struct VkPhysicalDeviceVulkan13Properties
+{
+       VkStructureType         sType;
+       void*                           pNext;
+       uint32_t                        minSubgroupSize;
+       uint32_t                        maxSubgroupSize;
+       uint32_t                        maxComputeWorkgroupSubgroups;
+       VkShaderStageFlags      requiredSubgroupSizeStages;
+       uint32_t                        maxInlineUniformBlockSize;
+       uint32_t                        maxPerStageDescriptorInlineUniformBlocks;
+       uint32_t                        maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
+       uint32_t                        maxDescriptorSetInlineUniformBlocks;
+       uint32_t                        maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
+       uint32_t                        maxInlineUniformTotalSize;
+       VkBool32                        integerDotProduct8BitUnsignedAccelerated;
+       VkBool32                        integerDotProduct8BitSignedAccelerated;
+       VkBool32                        integerDotProduct8BitMixedSignednessAccelerated;
+       VkBool32                        integerDotProduct4x8BitPackedUnsignedAccelerated;
+       VkBool32                        integerDotProduct4x8BitPackedSignedAccelerated;
+       VkBool32                        integerDotProduct4x8BitPackedMixedSignednessAccelerated;
+       VkBool32                        integerDotProduct16BitUnsignedAccelerated;
+       VkBool32                        integerDotProduct16BitSignedAccelerated;
+       VkBool32                        integerDotProduct16BitMixedSignednessAccelerated;
+       VkBool32                        integerDotProduct32BitUnsignedAccelerated;
+       VkBool32                        integerDotProduct32BitSignedAccelerated;
+       VkBool32                        integerDotProduct32BitMixedSignednessAccelerated;
+       VkBool32                        integerDotProduct64BitUnsignedAccelerated;
+       VkBool32                        integerDotProduct64BitSignedAccelerated;
+       VkBool32                        integerDotProduct64BitMixedSignednessAccelerated;
+       VkBool32                        integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
+       VkBool32                        integerDotProductAccumulatingSaturating8BitSignedAccelerated;
+       VkBool32                        integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
+       VkBool32                        integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
+       VkBool32                        integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
+       VkBool32                        integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
+       VkBool32                        integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
+       VkBool32                        integerDotProductAccumulatingSaturating16BitSignedAccelerated;
+       VkBool32                        integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
+       VkBool32                        integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
+       VkBool32                        integerDotProductAccumulatingSaturating32BitSignedAccelerated;
+       VkBool32                        integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
+       VkBool32                        integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
+       VkBool32                        integerDotProductAccumulatingSaturating64BitSignedAccelerated;
+       VkBool32                        integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
+       VkDeviceSize            storageTexelBufferOffsetAlignmentBytes;
+       VkBool32                        storageTexelBufferOffsetSingleTexelAlignment;
+       VkDeviceSize            uniformTexelBufferOffsetAlignmentBytes;
+       VkBool32                        uniformTexelBufferOffsetSingleTexelAlignment;
+       VkDeviceSize            maxBufferSize;
 };
 
-struct VkDeviceDeviceMemoryReportCreateInfoEXT
+struct VkPipelineCompilerControlCreateInfoAMD
 {
        VkStructureType                                         sType;
        const void*                                                     pNext;
-       VkDeviceMemoryReportFlagsEXT            flags;
-       PFN_vkDeviceMemoryReportCallbackEXT     pfnUserCallback;
-       void*                                                           pUserData;
+       VkPipelineCompilerControlFlagsAMD       compilerControlFlags;
 };
 
-struct VkPhysicalDeviceRobustness2FeaturesEXT
+struct VkPhysicalDeviceCoherentMemoryFeaturesAMD
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                robustBufferAccess2;
-       VkBool32                robustImageAccess2;
-       VkBool32                nullDescriptor;
+       VkBool32                deviceCoherentMemory;
 };
 
-struct VkPhysicalDeviceRobustness2PropertiesEXT
+struct VkPhysicalDeviceToolProperties
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkDeviceSize    robustStorageBufferAccessSizeAlignment;
-       VkDeviceSize    robustUniformBufferAccessSizeAlignment;
+       VkStructureType         sType;
+       void*                           pNext;
+       char                            name[VK_MAX_EXTENSION_NAME_SIZE];
+       char                            version[VK_MAX_EXTENSION_NAME_SIZE];
+       VkToolPurposeFlags      purposes;
+       char                            description[VK_MAX_DESCRIPTION_SIZE];
+       char                            layer[VK_MAX_EXTENSION_NAME_SIZE];
 };
 
 struct VkSamplerCustomBorderColorCreateInfoEXT
@@ -5384,99 +5262,132 @@ struct VkPhysicalDeviceCustomBorderColorFeaturesEXT
        VkBool32                customBorderColorWithoutFormat;
 };
 
-struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV
+struct VkSamplerBorderColorComponentMappingCreateInfoEXT
+{
+       VkStructureType         sType;
+       const void*                     pNext;
+       VkComponentMapping      components;
+       VkBool32                        srgb;
+};
+
+struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                diagnosticsConfig;
+       VkBool32                borderColorSwizzle;
+       VkBool32                borderColorSwizzleFromImage;
 };
 
-struct VkDeviceDiagnosticsConfigCreateInfoNV
+union VkDeviceOrHostAddressKHR
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkDeviceDiagnosticsConfigFlagsNV        flags;
+       VkDeviceAddress deviceAddress;
+       void*                   hostAddress;
 };
 
-struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
+union VkDeviceOrHostAddressConstKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                graphicsPipelineLibrary;
+       VkDeviceAddress deviceAddress;
+       const void*             hostAddress;
 };
 
-struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
+struct VkAccelerationStructureGeometryTrianglesDataKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                graphicsPipelineLibraryFastLinking;
-       VkBool32                graphicsPipelineLibraryIndependentInterpolationDecoration;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkFormat                                                vertexFormat;
+       VkDeviceOrHostAddressConstKHR   vertexData;
+       VkDeviceSize                                    vertexStride;
+       uint32_t                                                maxVertex;
+       VkIndexType                                             indexType;
+       VkDeviceOrHostAddressConstKHR   indexData;
+       VkDeviceOrHostAddressConstKHR   transformData;
 };
 
-struct VkGraphicsPipelineLibraryCreateInfoEXT
+struct VkAccelerationStructureGeometryAabbsDataKHR
 {
-       VkStructureType                                         sType;
-       void*                                                           pNext;
-       VkGraphicsPipelineLibraryFlagsEXT       flags;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkDeviceOrHostAddressConstKHR   data;
+       VkDeviceSize                                    stride;
 };
 
-struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD
+struct VkAccelerationStructureGeometryInstancesDataKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                shaderEarlyAndLateFragmentTests;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkBool32                                                arrayOfPointers;
+       VkDeviceOrHostAddressConstKHR   data;
 };
 
-struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV
+union VkAccelerationStructureGeometryDataKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                fragmentShadingRateEnums;
-       VkBool32                supersampleFragmentShadingRates;
-       VkBool32                noInvocationFragmentShadingRates;
+       VkAccelerationStructureGeometryTrianglesDataKHR triangles;
+       VkAccelerationStructureGeometryAabbsDataKHR             aabbs;
+       VkAccelerationStructureGeometryInstancesDataKHR instances;
 };
 
-struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV
+struct VkAccelerationStructureGeometryKHR
 {
-       VkStructureType                 sType;
-       void*                                   pNext;
-       VkSampleCountFlagBits   maxFragmentShadingRateInvocationCount;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkGeometryTypeKHR                                               geometryType;
+       VkAccelerationStructureGeometryDataKHR  geometry;
+       VkGeometryFlagsKHR                                              flags;
 };
 
-struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV
+struct VkAccelerationStructureBuildGeometryInfoKHR
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkFragmentShadingRateTypeNV                     shadingRateType;
-       VkFragmentShadingRateNV                         shadingRate;
-       VkFragmentShadingRateCombinerOpKHR      combinerOps[2];
+       VkStructureType                                                                         sType;
+       const void*                                                                                     pNext;
+       VkAccelerationStructureTypeKHR                                          type;
+       VkBuildAccelerationStructureFlagsKHR                            flags;
+       VkBuildAccelerationStructureModeKHR                                     mode;
+       VkAccelerationStructureKHR                                                      srcAccelerationStructure;
+       VkAccelerationStructureKHR                                                      dstAccelerationStructure;
+       uint32_t                                                                                        geometryCount;
+       const VkAccelerationStructureGeometryKHR*                       pGeometries;
+       const VkAccelerationStructureGeometryKHR* const*        ppGeometries;
+       VkDeviceOrHostAddressKHR                                                        scratchData;
 };
 
-union VkDeviceOrHostAddressConstKHR
+struct VkAccelerationStructureBuildRangeInfoKHR
 {
-       VkDeviceAddress deviceAddress;
-       const void*             hostAddress;
+       uint32_t        primitiveCount;
+       uint32_t        primitiveOffset;
+       uint32_t        firstVertex;
+       uint32_t        transformOffset;
 };
 
-struct VkAccelerationStructureGeometryMotionTrianglesDataNV
+struct VkAccelerationStructureCreateInfoKHR
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkDeviceOrHostAddressConstKHR   vertexData;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkAccelerationStructureCreateFlagsKHR   createFlags;
+       VkBuffer                                                                buffer;
+       VkDeviceSize                                                    offset;
+       VkDeviceSize                                                    size;
+       VkAccelerationStructureTypeKHR                  type;
+       VkDeviceAddress                                                 deviceAddress;
 };
 
-struct VkAccelerationStructureMotionInfoNV
+struct VkAabbPositionsKHR
 {
-       VkStructureType                                                         sType;
-       const void*                                                                     pNext;
-       uint32_t                                                                        maxInstances;
-       VkAccelerationStructureMotionInfoFlagsNV        flags;
+       float   minX;
+       float   minY;
+       float   minZ;
+       float   maxX;
+       float   maxY;
+       float   maxZ;
 };
 
-struct VkAccelerationStructureMatrixMotionInstanceNV
+struct VkTransformMatrixKHR
 {
-       VkTransformMatrixKHR            transformT0;
-       VkTransformMatrixKHR            transformT1;
+       float   matrix[3][4];
+};
+
+struct VkAccelerationStructureInstanceKHR
+{
+       VkTransformMatrixKHR            transform;
        uint32_t                                        instanceCustomIndex:24;
        uint32_t                                        mask:8;
        uint32_t                                        instanceShaderBindingTableRecordOffset:24;
@@ -5484,81 +5395,102 @@ struct VkAccelerationStructureMatrixMotionInstanceNV
        uint64_t                                        accelerationStructureReference;
 };
 
-struct VkSRTDataNV
+struct VkAccelerationStructureDeviceAddressInfoKHR
 {
-       float   sx;
-       float   a;
-       float   b;
-       float   pvx;
-       float   sy;
-       float   c;
-       float   pvy;
-       float   sz;
-       float   pvz;
-       float   qx;
-       float   qy;
-       float   qz;
-       float   qw;
-       float   tx;
-       float   ty;
-       float   tz;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkAccelerationStructureKHR      accelerationStructure;
+};
+
+struct VkAccelerationStructureVersionInfoKHR
+{
+       VkStructureType sType;
+       const void*             pNext;
+       const uint8_t*  pVersionData;
+};
+
+struct VkCopyAccelerationStructureInfoKHR
+{
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkAccelerationStructureKHR                      src;
+       VkAccelerationStructureKHR                      dst;
+       VkCopyAccelerationStructureModeKHR      mode;
+};
+
+struct VkCopyAccelerationStructureToMemoryInfoKHR
+{
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkAccelerationStructureKHR                      src;
+       VkDeviceOrHostAddressKHR                        dst;
+       VkCopyAccelerationStructureModeKHR      mode;
 };
 
-struct VkAccelerationStructureSRTMotionInstanceNV
+struct VkCopyMemoryToAccelerationStructureInfoKHR
 {
-       VkSRTDataNV                                     transformT0;
-       VkSRTDataNV                                     transformT1;
-       uint32_t                                        instanceCustomIndex:24;
-       uint32_t                                        mask:8;
-       uint32_t                                        instanceShaderBindingTableRecordOffset:24;
-       VkGeometryInstanceFlagsKHR      flags:8;
-       uint64_t                                        accelerationStructureReference;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkDeviceOrHostAddressConstKHR           src;
+       VkAccelerationStructureKHR                      dst;
+       VkCopyAccelerationStructureModeKHR      mode;
 };
 
-union VkAccelerationStructureMotionInstanceDataNV
+struct VkRayTracingPipelineInterfaceCreateInfoKHR
 {
-       VkAccelerationStructureInstanceKHR                              staticInstance;
-       VkAccelerationStructureMatrixMotionInstanceNV   matrixMotionInstance;
-       VkAccelerationStructureSRTMotionInstanceNV              srtMotionInstance;
+       VkStructureType sType;
+       const void*             pNext;
+       uint32_t                maxPipelineRayPayloadSize;
+       uint32_t                maxPipelineRayHitAttributeSize;
 };
 
-struct VkAccelerationStructureMotionInstanceNV
+struct VkPipelineLibraryCreateInfoKHR
 {
-       VkAccelerationStructureMotionInstanceTypeNV             type;
-       VkAccelerationStructureMotionInstanceFlagsNV    flags;
-       VkAccelerationStructureMotionInstanceDataNV             data;
+       VkStructureType         sType;
+       const void*                     pNext;
+       uint32_t                        libraryCount;
+       const VkPipeline*       pLibraries;
 };
 
-struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV
+struct VkRayTracingPipelineCreateInfoKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                rayTracingMotionBlur;
-       VkBool32                rayTracingMotionBlurPipelineTraceRaysIndirect;
+       VkStructureType                                                                         sType;
+       const void*                                                                                     pNext;
+       VkPipelineCreateFlags                                                           flags;
+       uint32_t                                                                                        stageCount;
+       const VkPipelineShaderStageCreateInfo*                          pStages;
+       uint32_t                                                                                        groupCount;
+       const VkRayTracingShaderGroupCreateInfoKHR*                     pGroups;
+       uint32_t                                                                                        maxPipelineRayRecursionDepth;
+       const VkPipelineLibraryCreateInfoKHR*                           pLibraryInfo;
+       const VkRayTracingPipelineInterfaceCreateInfoKHR*       pLibraryInterface;
+       const VkPipelineDynamicStateCreateInfo*                         pDynamicState;
+       VkPipelineLayout                                                                        layout;
+       VkPipeline                                                                                      basePipelineHandle;
+       int32_t                                                                                         basePipelineIndex;
 };
 
-struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
+struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                ycbcr2plane444Formats;
+       VkBool32                extendedDynamicState;
 };
 
-struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT
+struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                fragmentDensityMapDeferred;
+       VkBool32                extendedDynamicState2;
+       VkBool32                extendedDynamicState2LogicOp;
+       VkBool32                extendedDynamicState2PatchControlPoints;
 };
 
-struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT
+struct VkRenderPassTransformBeginInfoQCOM
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                subsampledLoads;
-       VkBool32                subsampledCoarseReconstructionEarlyAccess;
-       uint32_t                maxSubsampledArrayLayers;
-       uint32_t                maxDescriptorSetSubsampledSamplers;
+       VkStructureType                                 sType;
+       void*                                                   pNext;
+       VkSurfaceTransformFlagBitsKHR   transform;
 };
 
 struct VkCopyCommandTransformInfoQCOM
@@ -5568,2082 +5500,1987 @@ struct VkCopyCommandTransformInfoQCOM
        VkSurfaceTransformFlagBitsKHR   transform;
 };
 
-struct VkPhysicalDeviceImageCompressionControlFeaturesEXT
+struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM
+{
+       VkStructureType                                 sType;
+       void*                                                   pNext;
+       VkSurfaceTransformFlagBitsKHR   transform;
+       VkRect2D                                                renderArea;
+};
+
+struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                imageCompressionControl;
+       VkBool32                diagnosticsConfig;
 };
 
-struct VkImageCompressionControlEXT
+struct VkDeviceDiagnosticsConfigCreateInfoNV
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkImageCompressionFlagsEXT                              flags;
-       uint32_t                                                                compressionControlPlaneCount;
-       VkImageCompressionFixedRateFlagsEXT*    pFixedRateFlags;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkDeviceDiagnosticsConfigFlagsNV        flags;
 };
 
-struct VkSubresourceLayout2EXT
+struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
 {
-       VkStructureType         sType;
-       void*                           pNext;
-       VkSubresourceLayout     subresourceLayout;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                shaderZeroInitializeWorkgroupMemory;
 };
 
-struct VkImageSubresource2EXT
+struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
 {
-       VkStructureType         sType;
-       void*                           pNext;
-       VkImageSubresource      imageSubresource;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                shaderSubgroupUniformControlFlow;
 };
 
-struct VkImageCompressionPropertiesEXT
+struct VkPhysicalDeviceRobustness2FeaturesEXT
 {
-       VkStructureType                                         sType;
-       void*                                                           pNext;
-       VkImageCompressionFlagsEXT                      imageCompressionFlags;
-       VkImageCompressionFixedRateFlagsEXT     imageCompressionFixedRateFlags;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                robustBufferAccess2;
+       VkBool32                robustImageAccess2;
+       VkBool32                nullDescriptor;
 };
 
-struct VkPhysicalDevice4444FormatsFeaturesEXT
+struct VkPhysicalDeviceRobustness2PropertiesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                formatA4R4G4B4;
-       VkBool32                formatA4B4G4R4;
+       VkDeviceSize    robustStorageBufferAccessSizeAlignment;
+       VkDeviceSize    robustUniformBufferAccessSizeAlignment;
 };
 
-struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM
+struct VkPhysicalDeviceImageRobustnessFeatures
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                rasterizationOrderColorAttachmentAccess;
-       VkBool32                rasterizationOrderDepthAttachmentAccess;
-       VkBool32                rasterizationOrderStencilAttachmentAccess;
+       VkBool32                robustImageAccess;
 };
 
-struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT
+struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                formatRgba10x6WithoutYCbCrSampler;
+       VkBool32                workgroupMemoryExplicitLayout;
+       VkBool32                workgroupMemoryExplicitLayoutScalarBlockLayout;
+       VkBool32                workgroupMemoryExplicitLayout8BitAccess;
+       VkBool32                workgroupMemoryExplicitLayout16BitAccess;
 };
 
-struct VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE
+struct VkPhysicalDevicePortabilitySubsetFeaturesKHR
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                mutableDescriptorType;
+       VkBool32                constantAlphaColorBlendFactors;
+       VkBool32                events;
+       VkBool32                imageViewFormatReinterpretation;
+       VkBool32                imageViewFormatSwizzle;
+       VkBool32                imageView2DOn3DImage;
+       VkBool32                multisampleArrayImage;
+       VkBool32                mutableComparisonSamplers;
+       VkBool32                pointPolygons;
+       VkBool32                samplerMipLodBias;
+       VkBool32                separateStencilMaskRef;
+       VkBool32                shaderSampleRateInterpolationFunctions;
+       VkBool32                tessellationIsolines;
+       VkBool32                tessellationPointMode;
+       VkBool32                triangleFans;
+       VkBool32                vertexAttributeAccessBeyondStride;
 };
 
-struct VkMutableDescriptorTypeListVALVE
+struct VkPhysicalDevicePortabilitySubsetPropertiesKHR
 {
-       uint32_t                                descriptorTypeCount;
-       const VkDescriptorType* pDescriptorTypes;
+       VkStructureType sType;
+       void*                   pNext;
+       uint32_t                minVertexInputBindingStrideAlignment;
 };
 
-struct VkMutableDescriptorTypeCreateInfoVALVE
+struct VkPhysicalDevice4444FormatsFeaturesEXT
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       uint32_t                                                                mutableDescriptorTypeListCount;
-       const VkMutableDescriptorTypeListVALVE* pMutableDescriptorTypeLists;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                formatA4R4G4B4;
+       VkBool32                formatA4B4G4R4;
 };
 
-struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT
+struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                vertexInputDynamicState;
+       VkBool32                subpassShading;
 };
 
-struct VkVertexInputBindingDescription2EXT
+struct VkBufferCopy2
 {
-       VkStructureType         sType;
-       void*                           pNext;
-       uint32_t                        binding;
-       uint32_t                        stride;
-       VkVertexInputRate       inputRate;
-       uint32_t                        divisor;
+       VkStructureType sType;
+       const void*             pNext;
+       VkDeviceSize    srcOffset;
+       VkDeviceSize    dstOffset;
+       VkDeviceSize    size;
 };
 
-struct VkVertexInputAttributeDescription2EXT
+struct VkImageCopy2
 {
-       VkStructureType sType;
-       void*                   pNext;
-       uint32_t                location;
-       uint32_t                binding;
-       VkFormat                format;
-       uint32_t                offset;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkImageSubresourceLayers        srcSubresource;
+       VkOffset3D                                      srcOffset;
+       VkImageSubresourceLayers        dstSubresource;
+       VkOffset3D                                      dstOffset;
+       VkExtent3D                                      extent;
 };
 
-struct VkPhysicalDeviceDrmPropertiesEXT
+struct VkImageBlit2
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                hasPrimary;
-       VkBool32                hasRender;
-       int64_t                 primaryMajor;
-       int64_t                 primaryMinor;
-       int64_t                 renderMajor;
-       int64_t                 renderMinor;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkImageSubresourceLayers        srcSubresource;
+       VkOffset3D                                      srcOffsets[2];
+       VkImageSubresourceLayers        dstSubresource;
+       VkOffset3D                                      dstOffsets[2];
+};
+
+struct VkBufferImageCopy2
+{
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkDeviceSize                            bufferOffset;
+       uint32_t                                        bufferRowLength;
+       uint32_t                                        bufferImageHeight;
+       VkImageSubresourceLayers        imageSubresource;
+       VkOffset3D                                      imageOffset;
+       VkExtent3D                                      imageExtent;
+};
+
+struct VkImageResolve2
+{
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkImageSubresourceLayers        srcSubresource;
+       VkOffset3D                                      srcOffset;
+       VkImageSubresourceLayers        dstSubresource;
+       VkOffset3D                                      dstOffset;
+       VkExtent3D                                      extent;
+};
+
+struct VkCopyBufferInfo2
+{
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkBuffer                                srcBuffer;
+       VkBuffer                                dstBuffer;
+       uint32_t                                regionCount;
+       const VkBufferCopy2*    pRegions;
 };
 
-struct VkPhysicalDeviceDepthClipControlFeaturesEXT
+struct VkCopyImageInfo2
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                depthClipControl;
+       VkStructureType         sType;
+       const void*                     pNext;
+       VkImage                         srcImage;
+       VkImageLayout           srcImageLayout;
+       VkImage                         dstImage;
+       VkImageLayout           dstImageLayout;
+       uint32_t                        regionCount;
+       const VkImageCopy2*     pRegions;
 };
 
-struct VkPipelineViewportDepthClipControlCreateInfoEXT
+struct VkBlitImageInfo2
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkBool32                negativeOneToOne;
+       VkStructureType         sType;
+       const void*                     pNext;
+       VkImage                         srcImage;
+       VkImageLayout           srcImageLayout;
+       VkImage                         dstImage;
+       VkImageLayout           dstImageLayout;
+       uint32_t                        regionCount;
+       const VkImageBlit2*     pRegions;
+       VkFilter                        filter;
 };
 
-struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
+struct VkCopyBufferToImageInfo2
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                primitiveTopologyListRestart;
-       VkBool32                primitiveTopologyPatchListRestart;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkBuffer                                        srcBuffer;
+       VkImage                                         dstImage;
+       VkImageLayout                           dstImageLayout;
+       uint32_t                                        regionCount;
+       const VkBufferImageCopy2*       pRegions;
 };
 
-struct VkSubpassShadingPipelineCreateInfoHUAWEI
+struct VkCopyImageToBufferInfo2
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkRenderPass    renderPass;
-       uint32_t                subpass;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkImage                                         srcImage;
+       VkImageLayout                           srcImageLayout;
+       VkBuffer                                        dstBuffer;
+       uint32_t                                        regionCount;
+       const VkBufferImageCopy2*       pRegions;
 };
 
-struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI
+struct VkResolveImageInfo2
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                subpassShading;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkImage                                 srcImage;
+       VkImageLayout                   srcImageLayout;
+       VkImage                                 dstImage;
+       VkImageLayout                   dstImageLayout;
+       uint32_t                                regionCount;
+       const VkImageResolve2*  pRegions;
 };
 
-struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI
+struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       uint32_t                maxSubpassShadingWorkgroupSizeAspectRatio;
+       VkBool32                shaderImageInt64Atomics;
+       VkBool32                sparseImageInt64Atomics;
 };
 
-struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI
+struct VkFragmentShadingRateAttachmentInfoKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                invocationMask;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       const VkAttachmentReference2*   pFragmentShadingRateAttachment;
+       VkExtent2D                                              shadingRateAttachmentTexelSize;
 };
 
-struct VkMemoryGetRemoteAddressInfoNV
+struct VkPipelineFragmentShadingRateStateCreateInfoKHR
 {
        VkStructureType                                         sType;
        const void*                                                     pNext;
-       VkDeviceMemory                                          memory;
-       VkExternalMemoryHandleTypeFlagBits      handleType;
+       VkExtent2D                                                      fragmentSize;
+       VkFragmentShadingRateCombinerOpKHR      combinerOps[2];
 };
 
-struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV
+struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                externalMemoryRDMA;
+       VkBool32                pipelineFragmentShadingRate;
+       VkBool32                primitiveFragmentShadingRate;
+       VkBool32                attachmentFragmentShadingRate;
 };
 
-struct VkPipelinePropertiesIdentifierEXT
+struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       uint8_t                 pipelineIdentifier[VK_UUID_SIZE];
+       VkStructureType                 sType;
+       void*                                   pNext;
+       VkExtent2D                              minFragmentShadingRateAttachmentTexelSize;
+       VkExtent2D                              maxFragmentShadingRateAttachmentTexelSize;
+       uint32_t                                maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
+       VkBool32                                primitiveFragmentShadingRateWithMultipleViewports;
+       VkBool32                                layeredShadingRateAttachments;
+       VkBool32                                fragmentShadingRateNonTrivialCombinerOps;
+       VkExtent2D                              maxFragmentSize;
+       uint32_t                                maxFragmentSizeAspectRatio;
+       uint32_t                                maxFragmentShadingRateCoverageSamples;
+       VkSampleCountFlagBits   maxFragmentShadingRateRasterizationSamples;
+       VkBool32                                fragmentShadingRateWithShaderDepthStencilWrites;
+       VkBool32                                fragmentShadingRateWithSampleMask;
+       VkBool32                                fragmentShadingRateWithShaderSampleMask;
+       VkBool32                                fragmentShadingRateWithConservativeRasterization;
+       VkBool32                                fragmentShadingRateWithFragmentShaderInterlock;
+       VkBool32                                fragmentShadingRateWithCustomSampleLocations;
+       VkBool32                                fragmentShadingRateStrictMultiplyCombiner;
 };
 
-struct VkPhysicalDevicePipelinePropertiesFeaturesEXT
+struct VkPhysicalDeviceFragmentShadingRateKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                pipelinePropertiesIdentifier;
+       VkStructureType         sType;
+       void*                           pNext;
+       VkSampleCountFlags      sampleCounts;
+       VkExtent2D                      fragmentSize;
 };
 
-struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
+struct VkPhysicalDeviceShaderTerminateInvocationFeatures
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                multisampledRenderToSingleSampled;
+       VkBool32                shaderTerminateInvocation;
 };
 
-struct VkSubpassResolvePerformanceQueryEXT
+struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                optimal;
+       VkBool32                fragmentShadingRateEnums;
+       VkBool32                supersampleFragmentShadingRates;
+       VkBool32                noInvocationFragmentShadingRates;
 };
 
-struct VkMultisampledRenderToSingleSampledInfoEXT
+struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV
 {
        VkStructureType                 sType;
-       const void*                             pNext;
-       VkBool32                                multisampledRenderToSingleSampledEnable;
-       VkSampleCountFlagBits   rasterizationSamples;
+       void*                                   pNext;
+       VkSampleCountFlagBits   maxFragmentShadingRateInvocationCount;
 };
 
-struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT
+struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                extendedDynamicState2;
-       VkBool32                extendedDynamicState2LogicOp;
-       VkBool32                extendedDynamicState2PatchControlPoints;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkFragmentShadingRateTypeNV                     shadingRateType;
+       VkFragmentShadingRateNV                         shadingRate;
+       VkFragmentShadingRateCombinerOpKHR      combinerOps[2];
 };
 
-struct VkPhysicalDeviceColorWriteEnableFeaturesEXT
+struct VkAccelerationStructureBuildSizesInfoKHR
 {
        VkStructureType sType;
-       void*                   pNext;
-       VkBool32                colorWriteEnable;
+       const void*             pNext;
+       VkDeviceSize    accelerationStructureSize;
+       VkDeviceSize    updateScratchSize;
+       VkDeviceSize    buildScratchSize;
 };
 
-struct VkPipelineColorWriteCreateInfoEXT
+struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT
 {
        VkStructureType sType;
-       const void*             pNext;
-       uint32_t                attachmentCount;
-       const VkBool32* pColorWriteEnables;
+       void*                   pNext;
+       VkBool32                image2DViewOf3D;
+       VkBool32                sampler2DViewOf3D;
 };
 
-struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT
+struct VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                primitivesGeneratedQuery;
-       VkBool32                primitivesGeneratedQueryWithRasterizerDiscard;
-       VkBool32                primitivesGeneratedQueryWithNonZeroStreams;
+       VkBool32                mutableDescriptorType;
 };
 
-struct VkPhysicalDeviceImageViewMinLodFeaturesEXT
+struct VkMutableDescriptorTypeListVALVE
+{
+       uint32_t                                descriptorTypeCount;
+       const VkDescriptorType* pDescriptorTypes;
+};
+
+struct VkMutableDescriptorTypeCreateInfoVALVE
+{
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       uint32_t                                                                mutableDescriptorTypeListCount;
+       const VkMutableDescriptorTypeListVALVE* pMutableDescriptorTypeLists;
+};
+
+struct VkPhysicalDeviceDepthClipControlFeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                minLod;
+       VkBool32                depthClipControl;
 };
 
-struct VkImageViewMinLodCreateInfoEXT
+struct VkPipelineViewportDepthClipControlCreateInfoEXT
 {
        VkStructureType sType;
        const void*             pNext;
-       float                   minLod;
+       VkBool32                negativeOneToOne;
 };
 
-struct VkPhysicalDeviceMultiDrawFeaturesEXT
+struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                multiDraw;
+       VkBool32                vertexInputDynamicState;
 };
 
-struct VkPhysicalDeviceMultiDrawPropertiesEXT
+struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV
 {
        VkStructureType sType;
        void*                   pNext;
-       uint32_t                maxMultiDrawCount;
-};
-
-struct VkMultiDrawInfoEXT
-{
-       uint32_t        firstVertex;
-       uint32_t        vertexCount;
+       VkBool32                externalMemoryRDMA;
 };
 
-struct VkMultiDrawIndexedInfoEXT
+struct VkVertexInputBindingDescription2EXT
 {
-       uint32_t        firstIndex;
-       uint32_t        indexCount;
-       int32_t         vertexOffset;
+       VkStructureType         sType;
+       void*                           pNext;
+       uint32_t                        binding;
+       uint32_t                        stride;
+       VkVertexInputRate       inputRate;
+       uint32_t                        divisor;
 };
 
-struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT
+struct VkVertexInputAttributeDescription2EXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                image2DViewOf3D;
-       VkBool32                sampler2DViewOf3D;
+       uint32_t                location;
+       uint32_t                binding;
+       VkFormat                format;
+       uint32_t                offset;
 };
 
-struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT
+struct VkPhysicalDeviceColorWriteEnableFeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                borderColorSwizzle;
-       VkBool32                borderColorSwizzleFromImage;
-};
-
-struct VkSamplerBorderColorComponentMappingCreateInfoEXT
-{
-       VkStructureType         sType;
-       const void*                     pNext;
-       VkComponentMapping      components;
-       VkBool32                        srgb;
+       VkBool32                colorWriteEnable;
 };
 
-struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
+struct VkPipelineColorWriteCreateInfoEXT
 {
        VkStructureType sType;
-       void*                   pNext;
-       VkBool32                pageableDeviceLocalMemory;
+       const void*             pNext;
+       uint32_t                attachmentCount;
+       const VkBool32* pColorWriteEnables;
 };
 
-struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE
+struct VkMemoryBarrier2
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                descriptorSetHostMapping;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkPipelineStageFlags2   srcStageMask;
+       VkAccessFlags2                  srcAccessMask;
+       VkPipelineStageFlags2   dstStageMask;
+       VkAccessFlags2                  dstAccessMask;
 };
 
-struct VkDescriptorSetBindingReferenceVALVE
+struct VkImageMemoryBarrier2
 {
        VkStructureType                 sType;
        const void*                             pNext;
-       VkDescriptorSetLayout   descriptorSetLayout;
-       uint32_t                                binding;
+       VkPipelineStageFlags2   srcStageMask;
+       VkAccessFlags2                  srcAccessMask;
+       VkPipelineStageFlags2   dstStageMask;
+       VkAccessFlags2                  dstAccessMask;
+       VkImageLayout                   oldLayout;
+       VkImageLayout                   newLayout;
+       uint32_t                                srcQueueFamilyIndex;
+       uint32_t                                dstQueueFamilyIndex;
+       VkImage                                 image;
+       VkImageSubresourceRange subresourceRange;
 };
 
-struct VkDescriptorSetLayoutHostMappingInfoVALVE
+struct VkBufferMemoryBarrier2
 {
-       VkStructureType sType;
-       void*                   pNext;
-       size_t                  descriptorOffset;
-       uint32_t                descriptorSize;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkPipelineStageFlags2   srcStageMask;
+       VkAccessFlags2                  srcAccessMask;
+       VkPipelineStageFlags2   dstStageMask;
+       VkAccessFlags2                  dstAccessMask;
+       uint32_t                                srcQueueFamilyIndex;
+       uint32_t                                dstQueueFamilyIndex;
+       VkBuffer                                buffer;
+       VkDeviceSize                    offset;
+       VkDeviceSize                    size;
 };
 
-struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT
+struct VkDependencyInfo
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                nonSeamlessCubeMap;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkDependencyFlags                               dependencyFlags;
+       uint32_t                                                memoryBarrierCount;
+       const VkMemoryBarrier2*                 pMemoryBarriers;
+       uint32_t                                                bufferMemoryBarrierCount;
+       const VkBufferMemoryBarrier2*   pBufferMemoryBarriers;
+       uint32_t                                                imageMemoryBarrierCount;
+       const VkImageMemoryBarrier2*    pImageMemoryBarriers;
 };
 
-struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM
+struct VkSemaphoreSubmitInfo
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                fragmentDensityMapOffset;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkSemaphore                             semaphore;
+       uint64_t                                value;
+       VkPipelineStageFlags2   stageMask;
+       uint32_t                                deviceIndex;
 };
 
-struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM
+struct VkCommandBufferSubmitInfo
 {
        VkStructureType sType;
-       void*                   pNext;
-       VkExtent2D              fragmentDensityOffsetGranularity;
+       const void*             pNext;
+       VkCommandBuffer commandBuffer;
+       uint32_t                deviceMask;
 };
 
-struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM
+struct VkSubmitInfo2
 {
-       VkStructureType         sType;
-       const void*                     pNext;
-       uint32_t                        fragmentDensityOffsetCount;
-       const VkOffset2D*       pFragmentDensityOffsets;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkSubmitFlags                                           flags;
+       uint32_t                                                        waitSemaphoreInfoCount;
+       const VkSemaphoreSubmitInfo*            pWaitSemaphoreInfos;
+       uint32_t                                                        commandBufferInfoCount;
+       const VkCommandBufferSubmitInfo*        pCommandBufferInfos;
+       uint32_t                                                        signalSemaphoreInfoCount;
+       const VkSemaphoreSubmitInfo*            pSignalSemaphoreInfos;
 };
 
-struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV
+struct VkQueueFamilyCheckpointProperties2NV
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                linearColorAttachment;
+       VkStructureType                 sType;
+       void*                                   pNext;
+       VkPipelineStageFlags2   checkpointExecutionStageMask;
 };
 
-struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
+struct VkCheckpointData2NV
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                imageCompressionControlSwapchain;
+       VkStructureType                 sType;
+       void*                                   pNext;
+       VkPipelineStageFlags2   stage;
+       void*                                   pCheckpointMarker;
 };
 
-struct VkImageViewSampleWeightCreateInfoQCOM
+struct VkPhysicalDeviceSynchronization2Features
 {
        VkStructureType sType;
-       const void*             pNext;
-       VkOffset2D              filterCenter;
-       VkExtent2D              filterSize;
-       uint32_t                numPhases;
+       void*                   pNext;
+       VkBool32                synchronization2;
 };
 
-struct VkPhysicalDeviceImageProcessingFeaturesQCOM
+struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                textureSampleWeighted;
-       VkBool32                textureBoxFilter;
-       VkBool32                textureBlockMatch;
+       VkBool32                primitivesGeneratedQuery;
+       VkBool32                primitivesGeneratedQueryWithRasterizerDiscard;
+       VkBool32                primitivesGeneratedQueryWithNonZeroStreams;
 };
 
-struct VkPhysicalDeviceImageProcessingPropertiesQCOM
+struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       uint32_t                maxWeightFilterPhases;
-       VkExtent2D              maxWeightFilterDimension;
-       VkExtent2D              maxBlockMatchRegion;
-       VkExtent2D              maxBoxFilterBlockSize;
+       VkBool32                multisampledRenderToSingleSampled;
 };
 
-struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT
+struct VkSubpassResolvePerformanceQueryEXT
 {
        VkStructureType sType;
        void*                   pNext;
-       VkBool32                subpassMergeFeedback;
+       VkBool32                optimal;
 };
 
-struct VkRenderPassCreationControlEXT
+struct VkMultisampledRenderToSingleSampledInfoEXT
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkBool32                disallowMerging;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkBool32                                multisampledRenderToSingleSampledEnable;
+       VkSampleCountFlagBits   rasterizationSamples;
 };
 
-struct VkRenderPassCreationFeedbackInfoEXT
+struct VkVideoQueueFamilyProperties2KHR
 {
-       uint32_t        postMergeSubpassCount;
+       VkStructureType                                 sType;
+       void*                                                   pNext;
+       VkVideoCodecOperationFlagsKHR   videoCodecOperations;
 };
 
-struct VkRenderPassCreationFeedbackCreateInfoEXT
+struct VkQueueFamilyQueryResultStatusProperties2KHR
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkRenderPassCreationFeedbackInfoEXT*    pRenderPassFeedback;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                queryResultStatusSupport;
 };
 
-struct VkRenderPassSubpassFeedbackInfoEXT
+struct VkPhysicalDeviceVideoFormatInfoKHR
 {
-       VkSubpassMergeStatusEXT subpassMergeStatus;
-       char                                    description[VK_MAX_DESCRIPTION_SIZE];
-       uint32_t                                postMergeIndex;
+        VkStructureType        sType;
+       void*                           pNext;
+       VkImageUsageFlags       imageUsage;
 };
 
-struct VkRenderPassSubpassFeedbackCreateInfoEXT
+struct VkVideoFormatPropertiesKHR
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkRenderPassSubpassFeedbackInfoEXT*     pSubpassFeedback;
+       VkStructureType         sType;
+       void*                           pNext;
+       VkFormat                        format;
+       VkComponentMapping      componentMapping;
+       VkImageCreateFlags      imageCreateFlags;
+       VkImageType                     imageType;
+       VkImageTiling           imageTiling;
+       VkImageUsageFlags       imageUsageFlags;
 };
 
-struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT
+struct VkVideoProfileKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                shaderModuleIdentifier;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkVideoCodecOperationFlagBitsKHR        videoCodecOperation;
+       VkVideoChromaSubsamplingFlagsKHR        chromaSubsampling;
+       VkVideoComponentBitDepthFlagsKHR        lumaBitDepth;
+       VkVideoComponentBitDepthFlagsKHR        chromaBitDepth;
 };
 
-struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT
+struct VkVideoProfilesKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       uint8_t                 shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE];
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       uint32_t                                        profileCount;
+       const VkVideoProfileKHR*        pProfiles;
 };
 
-struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT
+struct VkVideoCapabilitiesKHR
 {
-       VkStructureType sType;
-       const void*             pNext;
-       uint32_t                identifierSize;
-       const uint8_t*  pIdentifier;
+       VkStructureType                         sType;
+       void*                                           pNext;
+       VkVideoCapabilityFlagsKHR       capabilityFlags;
+       VkDeviceSize                            minBitstreamBufferOffsetAlignment;
+       VkDeviceSize                            minBitstreamBufferSizeAlignment;
+       VkExtent2D                                      videoPictureExtentGranularity;
+       VkExtent2D                                      minExtent;
+       VkExtent2D                                      maxExtent;
+       uint32_t                                        maxReferencePicturesSlotsCount;
+       uint32_t                                        maxReferencePicturesActiveCount;
+       VkExtensionProperties           stdHeaderVersion;
 };
 
-struct VkShaderModuleIdentifierEXT
+struct VkVideoGetMemoryPropertiesKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       uint32_t                identifierSize;
-       uint8_t                 identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT];
+       VkStructureType                 sType;
+       const void*                             pNext;
+       uint32_t                                memoryBindIndex;
+       VkMemoryRequirements2*  pMemoryRequirements;
 };
 
-struct VkPhysicalDeviceTilePropertiesFeaturesQCOM
+struct VkVideoBindMemoryKHR
 {
        VkStructureType sType;
-       void*                   pNext;
-       VkBool32                tileProperties;
+       const void*             pNext;
+       uint32_t                memoryBindIndex;
+       VkDeviceMemory  memory;
+       VkDeviceSize    memoryOffset;
+       VkDeviceSize    memorySize;
 };
 
-struct VkTilePropertiesQCOM
+struct VkVideoPictureResourceKHR
 {
        VkStructureType sType;
-       void*                   pNext;
-       VkExtent3D              tileSize;
-       VkExtent2D              apronSize;
-       VkOffset2D              origin;
-};
-
-union VkDeviceOrHostAddressKHR
-{
-       VkDeviceAddress deviceAddress;
-       void*                   hostAddress;
-};
-
-struct VkAccelerationStructureBuildRangeInfoKHR
-{
-       uint32_t        primitiveCount;
-       uint32_t        primitiveOffset;
-       uint32_t        firstVertex;
-       uint32_t        transformOffset;
+       const void*             pNext;
+       VkOffset2D              codedOffset;
+       VkExtent2D              codedExtent;
+       uint32_t                baseArrayLayer;
+       VkImageView             imageViewBinding;
 };
 
-struct VkAccelerationStructureGeometryTrianglesDataKHR
+struct VkVideoReferenceSlotKHR
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkFormat                                                vertexFormat;
-       VkDeviceOrHostAddressConstKHR   vertexData;
-       VkDeviceSize                                    vertexStride;
-       uint32_t                                                maxVertex;
-       VkIndexType                                             indexType;
-       VkDeviceOrHostAddressConstKHR   indexData;
-       VkDeviceOrHostAddressConstKHR   transformData;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       int8_t                                                          slotIndex;
+       const VkVideoPictureResourceKHR*        pPictureResource;
 };
 
-struct VkAccelerationStructureGeometryAabbsDataKHR
+struct VkVideoDecodeCapabilitiesKHR
 {
        VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkDeviceOrHostAddressConstKHR   data;
-       VkDeviceSize                                    stride;
+       void*                                                   pNext;
+       VkVideoDecodeCapabilityFlagsKHR flags;
 };
 
-struct VkAccelerationStructureGeometryInstancesDataKHR
+struct VkVideoDecodeInfoKHR
 {
        VkStructureType                                 sType;
        const void*                                             pNext;
-       VkBool32                                                arrayOfPointers;
-       VkDeviceOrHostAddressConstKHR   data;
-};
-
-union VkAccelerationStructureGeometryDataKHR
-{
-       VkAccelerationStructureGeometryTrianglesDataKHR triangles;
-       VkAccelerationStructureGeometryAabbsDataKHR             aabbs;
-       VkAccelerationStructureGeometryInstancesDataKHR instances;
+       VkVideoDecodeFlagsKHR                   flags;
+       VkBuffer                                                srcBuffer;
+       VkDeviceSize                                    srcBufferOffset;
+       VkDeviceSize                                    srcBufferRange;
+       VkVideoPictureResourceKHR               dstPictureResource;
+       const VkVideoReferenceSlotKHR*  pSetupReferenceSlot;
+       uint32_t                                                referenceSlotCount;
+       const VkVideoReferenceSlotKHR*  pReferenceSlots;
 };
 
-struct VkAccelerationStructureGeometryKHR
+struct VkVideoDecodeH264ProfileEXT
 {
        VkStructureType                                                 sType;
        const void*                                                             pNext;
-       VkGeometryTypeKHR                                               geometryType;
-       VkAccelerationStructureGeometryDataKHR  geometry;
-       VkGeometryFlagsKHR                                              flags;
-};
-
-struct VkAccelerationStructureBuildGeometryInfoKHR
-{
-       VkStructureType                                                                         sType;
-       const void*                                                                                     pNext;
-       VkAccelerationStructureTypeKHR                                          type;
-       VkBuildAccelerationStructureFlagsKHR                            flags;
-       VkBuildAccelerationStructureModeKHR                                     mode;
-       VkAccelerationStructureKHR                                                      srcAccelerationStructure;
-       VkAccelerationStructureKHR                                                      dstAccelerationStructure;
-       uint32_t                                                                                        geometryCount;
-       const VkAccelerationStructureGeometryKHR*                       pGeometries;
-       const VkAccelerationStructureGeometryKHR* const*        ppGeometries;
-       VkDeviceOrHostAddressKHR                                                        scratchData;
+       StdVideoH264ProfileIdc                                  stdProfileIdc;
+       VkVideoDecodeH264PictureLayoutFlagsEXT  pictureLayout;
 };
 
-struct VkAccelerationStructureCreateInfoKHR
+struct VkVideoDecodeH264CapabilitiesEXT
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkAccelerationStructureCreateFlagsKHR   createFlags;
-       VkBuffer                                                                buffer;
-       VkDeviceSize                                                    offset;
-       VkDeviceSize                                                    size;
-       VkAccelerationStructureTypeKHR                  type;
-       VkDeviceAddress                                                 deviceAddress;
+       VkStructureType         sType;
+       void*                           pNext;
+       StdVideoH264Level       maxLevel;
+       VkOffset2D                      fieldOffsetGranularity;
 };
 
-struct VkWriteDescriptorSetAccelerationStructureKHR
+struct VkVideoDecodeH265ProfileEXT
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       uint32_t                                                        accelerationStructureCount;
-       const VkAccelerationStructureKHR*       pAccelerationStructures;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       StdVideoH265ProfileIdc  stdProfileIdc;
 };
 
-struct VkPhysicalDeviceAccelerationStructureFeaturesKHR
+struct VkVideoDecodeH265CapabilitiesEXT
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                accelerationStructure;
-       VkBool32                accelerationStructureCaptureReplay;
-       VkBool32                accelerationStructureIndirectBuild;
-       VkBool32                accelerationStructureHostCommands;
-       VkBool32                descriptorBindingAccelerationStructureUpdateAfterBind;
+       VkStructureType         sType;
+       void*                           pNext;
+       StdVideoH265Level       maxLevel;
 };
 
-struct VkPhysicalDeviceAccelerationStructurePropertiesKHR
+struct VkVideoSessionCreateInfoKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       uint64_t                maxGeometryCount;
-       uint64_t                maxInstanceCount;
-       uint64_t                maxPrimitiveCount;
-       uint32_t                maxPerStageDescriptorAccelerationStructures;
-       uint32_t                maxPerStageDescriptorUpdateAfterBindAccelerationStructures;
-       uint32_t                maxDescriptorSetAccelerationStructures;
-       uint32_t                maxDescriptorSetUpdateAfterBindAccelerationStructures;
-       uint32_t                minAccelerationStructureScratchOffsetAlignment;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       uint32_t                                                queueFamilyIndex;
+       VkVideoSessionCreateFlagsKHR    flags;
+       const VkVideoProfileKHR*                pVideoProfile;
+       VkFormat                                                pictureFormat;
+       VkExtent2D                                              maxCodedExtent;
+       VkFormat                                                referencePicturesFormat;
+       uint32_t                                                maxReferencePicturesSlotsCount;
+       uint32_t                                                maxReferencePicturesActiveCount;
+       const VkExtensionProperties*    pStdHeaderVersion;
 };
 
-struct VkAccelerationStructureDeviceAddressInfoKHR
+struct VkVideoSessionParametersCreateInfoKHR
 {
        VkStructureType                         sType;
        const void*                                     pNext;
-       VkAccelerationStructureKHR      accelerationStructure;
+       VkVideoSessionParametersKHR     videoSessionParametersTemplate;
+       VkVideoSessionKHR                       videoSession;
 };
 
-struct VkAccelerationStructureVersionInfoKHR
+struct VkVideoSessionParametersUpdateInfoKHR
 {
        VkStructureType sType;
        const void*             pNext;
-       const uint8_t*  pVersionData;
-};
-
-struct VkCopyAccelerationStructureToMemoryInfoKHR
-{
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkAccelerationStructureKHR                      src;
-       VkDeviceOrHostAddressKHR                        dst;
-       VkCopyAccelerationStructureModeKHR      mode;
+       uint32_t                updateSequenceCount;
 };
 
-struct VkCopyMemoryToAccelerationStructureInfoKHR
+struct VkVideoBeginCodingInfoKHR
 {
        VkStructureType                                         sType;
        const void*                                                     pNext;
-       VkDeviceOrHostAddressConstKHR           src;
-       VkAccelerationStructureKHR                      dst;
-       VkCopyAccelerationStructureModeKHR      mode;
+       VkVideoBeginCodingFlagsKHR                      flags;
+       VkVideoCodingQualityPresetFlagsKHR      codecQualityPreset;
+       VkVideoSessionKHR                                       videoSession;
+       VkVideoSessionParametersKHR                     videoSessionParameters;
+       uint32_t                                                        referenceSlotCount;
+       const VkVideoReferenceSlotKHR*          pReferenceSlots;
 };
 
-struct VkCopyAccelerationStructureInfoKHR
+struct VkVideoEndCodingInfoKHR
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkAccelerationStructureKHR                      src;
-       VkAccelerationStructureKHR                      dst;
-       VkCopyAccelerationStructureModeKHR      mode;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkVideoEndCodingFlagsKHR        flags;
 };
 
-struct VkAccelerationStructureBuildSizesInfoKHR
+struct VkVideoCodingControlInfoKHR
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkDeviceSize    accelerationStructureSize;
-       VkDeviceSize    updateScratchSize;
-       VkDeviceSize    buildScratchSize;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       VkVideoCodingControlFlagsKHR    flags;
 };
 
-struct VkRayTracingShaderGroupCreateInfoKHR
+struct VkVideoEncodeInfoKHR
 {
        VkStructureType                                 sType;
        const void*                                             pNext;
-       VkRayTracingShaderGroupTypeKHR  type;
-       uint32_t                                                generalShader;
-       uint32_t                                                closestHitShader;
-       uint32_t                                                anyHitShader;
-       uint32_t                                                intersectionShader;
-       const void*                                             pShaderGroupCaptureReplayHandle;
+       VkVideoEncodeFlagsKHR                   flags;
+       uint32_t                                                qualityLevel;
+       VkBuffer                                                dstBitstreamBuffer;
+       VkDeviceSize                                    dstBitstreamBufferOffset;
+       VkDeviceSize                                    dstBitstreamBufferMaxRange;
+       VkVideoPictureResourceKHR               srcPictureResource;
+       const VkVideoReferenceSlotKHR*  pSetupReferenceSlot;
+       uint32_t                                                referenceSlotCount;
+       const VkVideoReferenceSlotKHR*  pReferenceSlots;
+       uint32_t                                                precedingExternallyEncodedBytes;
 };
 
-struct VkRayTracingPipelineInterfaceCreateInfoKHR
+struct VkVideoEncodeRateControlLayerInfoKHR
 {
        VkStructureType sType;
        const void*             pNext;
-       uint32_t                maxPipelineRayPayloadSize;
-       uint32_t                maxPipelineRayHitAttributeSize;
+       uint32_t                averageBitrate;
+       uint32_t                maxBitrate;
+       uint32_t                frameRateNumerator;
+       uint32_t                frameRateDenominator;
+       uint32_t                virtualBufferSizeInMs;
+       uint32_t                initialVirtualBufferSizeInMs;
 };
 
-struct VkRayTracingPipelineCreateInfoKHR
+struct VkVideoEncodeRateControlInfoKHR
 {
-       VkStructureType                                                                         sType;
-       const void*                                                                                     pNext;
-       VkPipelineCreateFlags                                                           flags;
-       uint32_t                                                                                        stageCount;
-       const VkPipelineShaderStageCreateInfo*                          pStages;
-       uint32_t                                                                                        groupCount;
-       const VkRayTracingShaderGroupCreateInfoKHR*                     pGroups;
-       uint32_t                                                                                        maxPipelineRayRecursionDepth;
-       const VkPipelineLibraryCreateInfoKHR*                           pLibraryInfo;
-       const VkRayTracingPipelineInterfaceCreateInfoKHR*       pLibraryInterface;
-       const VkPipelineDynamicStateCreateInfo*                         pDynamicState;
-       VkPipelineLayout                                                                        layout;
-       VkPipeline                                                                                      basePipelineHandle;
-       int32_t                                                                                         basePipelineIndex;
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       VkVideoEncodeRateControlFlagsKHR                        flags;
+       VkVideoEncodeRateControlModeFlagBitsKHR         rateControlMode;
+       uint8_t                                                                         layerCount;
+       const VkVideoEncodeRateControlLayerInfoKHR*     pLayerConfigs;
 };
 
-struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR
+struct VkVideoEncodeCapabilitiesKHR
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                rayTracingPipeline;
-       VkBool32                rayTracingPipelineShaderGroupHandleCaptureReplay;
-       VkBool32                rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
-       VkBool32                rayTracingPipelineTraceRaysIndirect;
-       VkBool32                rayTraversalPrimitiveCulling;
+       VkStructureType                                                 sType;
+       void*                                                                   pNext;
+       VkVideoEncodeCapabilityFlagsKHR                 flags;
+       VkVideoEncodeRateControlModeFlagsKHR    rateControlModes;
+       uint8_t                                                                 rateControlLayerCount;
+       uint8_t                                                                 qualityLevelCount;
+       VkExtent2D                                                              inputImageDataFillAlignment;
 };
 
-struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR
+struct VkVideoEncodeH264CapabilitiesEXT
+{
+       VkStructureType                                         sType;
+       void*                                                           pNext;
+       VkVideoEncodeH264CapabilityFlagsEXT     flags;
+       VkVideoEncodeH264InputModeFlagsEXT      inputModeFlags;
+       VkVideoEncodeH264OutputModeFlagsEXT     outputModeFlags;
+       uint8_t                                                         maxPPictureL0ReferenceCount;
+       uint8_t                                                         maxBPictureL0ReferenceCount;
+       uint8_t                                                         maxL1ReferenceCount;
+       VkBool32                                                        motionVectorsOverPicBoundariesFlag;
+       uint32_t                                                        maxBytesPerPicDenom;
+       uint32_t                                                        maxBitsPerMbDenom;
+       uint32_t                                                        log2MaxMvLengthHorizontal;
+       uint32_t                                                        log2MaxMvLengthVertical;
+};
+
+struct VkVideoEncodeH264EmitPictureParametersEXT
 {
        VkStructureType sType;
-       void*                   pNext;
-       uint32_t                shaderGroupHandleSize;
-       uint32_t                maxRayRecursionDepth;
-       uint32_t                maxShaderGroupStride;
-       uint32_t                shaderGroupBaseAlignment;
-       uint32_t                shaderGroupHandleCaptureReplaySize;
-       uint32_t                maxRayDispatchInvocationCount;
-       uint32_t                shaderGroupHandleAlignment;
-       uint32_t                maxRayHitAttributeSize;
+       const void*             pNext;
+       uint8_t                 spsId;
+       VkBool32                emitSpsEnable;
+       uint32_t                ppsIdEntryCount;
+       const uint8_t*  ppsIdEntries;
 };
 
-struct VkStridedDeviceAddressRegionKHR
+struct VkVideoEncodeH264ProfileEXT
 {
-       VkDeviceAddress deviceAddress;
-       VkDeviceSize    stride;
-       VkDeviceSize    size;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       StdVideoH264ProfileIdc  stdProfileIdc;
 };
 
-struct VkTraceRaysIndirectCommandKHR
+struct VkVideoEncodeH264RateControlInfoEXT
 {
-       uint32_t        width;
-       uint32_t        height;
-       uint32_t        depth;
+       VkStructureType                                                                         sType;
+       const void*                                                                                     pNext;
+       uint32_t                                                                                        gopFrameCount;
+       uint32_t                                                                                        idrPeriod;
+       uint32_t                                                                                        consecutiveBFrameCount;
+       VkVideoEncodeH264RateControlStructureFlagBitsEXT        rateControlStructure;
+       uint8_t                                                                                         temporalLayerCount;
 };
 
-struct VkPhysicalDeviceRayQueryFeaturesKHR
+struct VkVideoEncodeH264QpEXT
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                rayQuery;
+       int32_t qpI;
+       int32_t qpP;
+       int32_t qpB;
 };
 
-struct VkAndroidSurfaceCreateInfoKHR
+struct VkVideoEncodeH264FrameSizeEXT
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkAndroidSurfaceCreateFlagsKHR          flags;
-       struct pt::AndroidNativeWindowPtr       window;
+       uint32_t        frameISize;
+       uint32_t        framePSize;
+       uint32_t        frameBSize;
 };
 
-struct VkAndroidHardwareBufferUsageANDROID
+struct VkVideoEncodeH264RateControlLayerInfoEXT
 {
-       VkStructureType sType;
-       void*                   pNext;
-       uint64_t                androidHardwareBufferUsage;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       uint8_t                                                 temporalLayerId;
+       VkBool32                                                useInitialRcQp;
+       VkVideoEncodeH264QpEXT                  initialRcQp;
+       VkBool32                                                useMinQp;
+       VkVideoEncodeH264QpEXT                  minQp;
+       VkBool32                                                useMaxQp;
+       VkVideoEncodeH264QpEXT                  maxQp;
+       VkBool32                                                useMaxFrameSize;
+       VkVideoEncodeH264FrameSizeEXT   maxFrameSize;
 };
 
-struct VkAndroidHardwareBufferPropertiesANDROID
+struct VkVideoEncodeH265CapabilitiesEXT
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkDeviceSize    allocationSize;
-       uint32_t                memoryTypeBits;
+       VkStructureType                                                         sType;
+       void*                                                                           pNext;
+       VkVideoEncodeH265CapabilityFlagsEXT                     flags;
+       VkVideoEncodeH265InputModeFlagsEXT                      inputModeFlags;
+       VkVideoEncodeH265OutputModeFlagsEXT                     outputModeFlags;
+       VkVideoEncodeH265CtbSizeFlagsEXT                        ctbSizes;
+       VkVideoEncodeH265TransformBlockSizeFlagsEXT     transformBlockSizes;
+       uint8_t                                                                         maxPPictureL0ReferenceCount;
+       uint8_t                                                                         maxBPictureL0ReferenceCount;
+       uint8_t                                                                         maxL1ReferenceCount;
+       uint8_t                                                                         maxSubLayersCount;
+       uint8_t                                                                         minLog2MinLumaCodingBlockSizeMinus3;
+       uint8_t                                                                         maxLog2MinLumaCodingBlockSizeMinus3;
+       uint8_t                                                                         minLog2MinLumaTransformBlockSizeMinus2;
+       uint8_t                                                                         maxLog2MinLumaTransformBlockSizeMinus2;
+       uint8_t                                                                         minMaxTransformHierarchyDepthInter;
+       uint8_t                                                                         maxMaxTransformHierarchyDepthInter;
+       uint8_t                                                                         minMaxTransformHierarchyDepthIntra;
+       uint8_t                                                                         maxMaxTransformHierarchyDepthIntra;
+       uint8_t                                                                         maxDiffCuQpDeltaDepth;
+       uint8_t                                                                         minMaxNumMergeCand;
+       uint8_t                                                                         maxMaxNumMergeCand;
 };
 
-struct VkAndroidHardwareBufferFormatPropertiesANDROID
+struct VkVideoEncodeH265EmitPictureParametersEXT
 {
-       VkStructureType                                 sType;
-       void*                                                   pNext;
-       VkFormat                                                format;
-       uint64_t                                                externalFormat;
-       VkFormatFeatureFlags                    formatFeatures;
-       VkComponentMapping                              samplerYcbcrConversionComponents;
-       VkSamplerYcbcrModelConversion   suggestedYcbcrModel;
-       VkSamplerYcbcrRange                             suggestedYcbcrRange;
-       VkChromaLocation                                suggestedXChromaOffset;
-       VkChromaLocation                                suggestedYChromaOffset;
+       VkStructureType sType;
+       const void*             pNext;
+       uint8_t                 vpsId;
+       uint8_t                 spsId;
+       VkBool32                emitVpsEnable;
+       VkBool32                emitSpsEnable;
+       uint32_t                ppsIdEntryCount;
+       const uint8_t*  ppsIdEntries;
 };
 
-struct VkImportAndroidHardwareBufferInfoANDROID
+struct VkVideoEncodeH265RateControlInfoEXT
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       struct pt::AndroidHardwareBufferPtr     buffer;
+       VkStructureType                                                                         sType;
+       const void*                                                                                     pNext;
+       uint32_t                                                                                        gopFrameCount;
+       uint32_t                                                                                        idrPeriod;
+       uint32_t                                                                                        consecutiveBFrameCount;
+       VkVideoEncodeH265RateControlStructureFlagBitsEXT        rateControlStructure;
+       uint8_t                                                                                         subLayerCount;
 };
 
-struct VkMemoryGetAndroidHardwareBufferInfoANDROID
+struct VkVideoEncodeH265QpEXT
 {
-       VkStructureType sType;
-       const void*             pNext;
-       VkDeviceMemory  memory;
+       int32_t qpI;
+       int32_t qpP;
+       int32_t qpB;
 };
 
-struct VkExternalFormatANDROID
+struct VkVideoEncodeH265FrameSizeEXT
 {
-       VkStructureType sType;
-       void*                   pNext;
-       uint64_t                externalFormat;
+       uint32_t        frameISize;
+       uint32_t        framePSize;
+       uint32_t        frameBSize;
 };
 
-struct VkAndroidHardwareBufferFormatProperties2ANDROID
+struct VkVideoEncodeH265RateControlLayerInfoEXT
 {
        VkStructureType                                 sType;
-       void*                                                   pNext;
-       VkFormat                                                format;
-       uint64_t                                                externalFormat;
-       VkFormatFeatureFlags2                   formatFeatures;
-       VkComponentMapping                              samplerYcbcrConversionComponents;
-       VkSamplerYcbcrModelConversion   suggestedYcbcrModel;
-       VkSamplerYcbcrRange                             suggestedYcbcrRange;
-       VkChromaLocation                                suggestedXChromaOffset;
-       VkChromaLocation                                suggestedYChromaOffset;
+       const void*                                             pNext;
+       uint8_t                                                 temporalId;
+       VkBool32                                                useInitialRcQp;
+       VkVideoEncodeH265QpEXT                  initialRcQp;
+       VkBool32                                                useMinQp;
+       VkVideoEncodeH265QpEXT                  minQp;
+       VkBool32                                                useMaxQp;
+       VkVideoEncodeH265QpEXT                  maxQp;
+       VkBool32                                                useMaxFrameSize;
+       VkVideoEncodeH265FrameSizeEXT   maxFrameSize;
 };
 
-struct VkQueueFamilyQueryResultStatusProperties2KHR
+struct VkVideoEncodeH265ProfileEXT
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                queryResultStatusSupport;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       StdVideoH265ProfileIdc  stdProfileIdc;
 };
 
-struct VkVideoQueueFamilyProperties2KHR
+struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV
 {
-       VkStructureType                                 sType;
-       void*                                                   pNext;
-       VkVideoCodecOperationFlagsKHR   videoCodecOperations;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                inheritedViewportScissor2D;
 };
 
-struct VkVideoProfileKHR
+struct VkCommandBufferInheritanceViewportScissorInfoNV
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkVideoCodecOperationFlagBitsKHR        videoCodecOperation;
-       VkVideoChromaSubsamplingFlagsKHR        chromaSubsampling;
-       VkVideoComponentBitDepthFlagsKHR        lumaBitDepth;
-       VkVideoComponentBitDepthFlagsKHR        chromaBitDepth;
+       VkStructureType         sType;
+       const void*                     pNext;
+       VkBool32                        viewportScissor2D;
+       uint32_t                        viewportDepthCount;
+       const VkViewport*       pViewportDepths;
 };
 
-struct VkVideoProfilesKHR
+struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       uint32_t                                        profileCount;
-       const VkVideoProfileKHR*        pProfiles;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                ycbcr2plane444Formats;
 };
 
-struct VkVideoCapabilitiesKHR
+struct VkPhysicalDeviceProvokingVertexFeaturesEXT
 {
-       VkStructureType                         sType;
-       void*                                           pNext;
-       VkVideoCapabilityFlagsKHR       capabilityFlags;
-       VkDeviceSize                            minBitstreamBufferOffsetAlignment;
-       VkDeviceSize                            minBitstreamBufferSizeAlignment;
-       VkExtent2D                                      videoPictureExtentGranularity;
-       VkExtent2D                                      minExtent;
-       VkExtent2D                                      maxExtent;
-       uint32_t                                        maxReferencePicturesSlotsCount;
-       uint32_t                                        maxReferencePicturesActiveCount;
-       VkExtensionProperties           stdHeaderVersion;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                provokingVertexLast;
+       VkBool32                transformFeedbackPreservesProvokingVertex;
 };
 
-struct VkPhysicalDeviceVideoFormatInfoKHR
+struct VkPhysicalDeviceProvokingVertexPropertiesEXT
 {
-       VkStructureType         sType;
-       void*                           pNext;
-       VkImageUsageFlags       imageUsage;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                provokingVertexModePerPipeline;
+       VkBool32                transformFeedbackPreservesTriangleFanProvokingVertex;
 };
 
-struct VkVideoFormatPropertiesKHR
+struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT
 {
-       VkStructureType         sType;
-       void*                           pNext;
-       VkFormat                        format;
-       VkComponentMapping      componentMapping;
-       VkImageCreateFlags      imageCreateFlags;
-       VkImageType                     imageType;
-       VkImageTiling           imageTiling;
-       VkImageUsageFlags       imageUsageFlags;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkProvokingVertexModeEXT        provokingVertexMode;
 };
 
-struct VkVideoPictureResourceKHR
+struct VkCuModuleCreateInfoNVX
 {
        VkStructureType sType;
        const void*             pNext;
-       VkOffset2D              codedOffset;
-       VkExtent2D              codedExtent;
-       uint32_t                baseArrayLayer;
-       VkImageView             imageViewBinding;
+       size_t                  dataSize;
+       const void*             pData;
 };
-
-struct VkVideoReferenceSlotKHR
-{
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       int8_t                                                          slotIndex;
-       const VkVideoPictureResourceKHR*        pPictureResource;
+
+struct VkCuFunctionCreateInfoNVX
+{
+       VkStructureType sType;
+       const void*             pNext;
+       VkCuModuleNVX   module;
+       const char*             pName;
 };
 
-struct VkVideoGetMemoryPropertiesKHR
+struct VkCuLaunchInfoNVX
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       uint32_t                                memoryBindIndex;
-       VkMemoryRequirements2*  pMemoryRequirements;
+       VkStructureType         sType;
+       const void*                     pNext;
+       VkCuFunctionNVX         function;
+       uint32_t                        gridDimX;
+       uint32_t                        gridDimY;
+       uint32_t                        gridDimZ;
+       uint32_t                        blockDimX;
+       uint32_t                        blockDimY;
+       uint32_t                        blockDimZ;
+       uint32_t                        sharedMemBytes;
+       size_t                          paramCount;
+       const void* const *     pParams;
+       size_t                          extraCount;
+       const void* const *     pExtras;
 };
 
-struct VkVideoBindMemoryKHR
+struct VkPhysicalDeviceShaderIntegerDotProductFeatures
 {
        VkStructureType sType;
-       const void*             pNext;
-       uint32_t                memoryBindIndex;
-       VkDeviceMemory  memory;
-       VkDeviceSize    memoryOffset;
-       VkDeviceSize    memorySize;
+       void*                   pNext;
+       VkBool32                shaderIntegerDotProduct;
 };
 
-struct VkVideoSessionCreateInfoKHR
+struct VkPhysicalDeviceShaderIntegerDotProductProperties
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       uint32_t                                                queueFamilyIndex;
-       VkVideoSessionCreateFlagsKHR    flags;
-       const VkVideoProfileKHR*                pVideoProfile;
-       VkFormat                                                pictureFormat;
-       VkExtent2D                                              maxCodedExtent;
-       VkFormat                                                referencePicturesFormat;
-       uint32_t                                                maxReferencePicturesSlotsCount;
-       uint32_t                                                maxReferencePicturesActiveCount;
-       const VkExtensionProperties*    pStdHeaderVersion;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                integerDotProduct8BitUnsignedAccelerated;
+       VkBool32                integerDotProduct8BitSignedAccelerated;
+       VkBool32                integerDotProduct8BitMixedSignednessAccelerated;
+       VkBool32                integerDotProduct4x8BitPackedUnsignedAccelerated;
+       VkBool32                integerDotProduct4x8BitPackedSignedAccelerated;
+       VkBool32                integerDotProduct4x8BitPackedMixedSignednessAccelerated;
+       VkBool32                integerDotProduct16BitUnsignedAccelerated;
+       VkBool32                integerDotProduct16BitSignedAccelerated;
+       VkBool32                integerDotProduct16BitMixedSignednessAccelerated;
+       VkBool32                integerDotProduct32BitUnsignedAccelerated;
+       VkBool32                integerDotProduct32BitSignedAccelerated;
+       VkBool32                integerDotProduct32BitMixedSignednessAccelerated;
+       VkBool32                integerDotProduct64BitUnsignedAccelerated;
+       VkBool32                integerDotProduct64BitSignedAccelerated;
+       VkBool32                integerDotProduct64BitMixedSignednessAccelerated;
+       VkBool32                integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
+       VkBool32                integerDotProductAccumulatingSaturating8BitSignedAccelerated;
+       VkBool32                integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
+       VkBool32                integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
+       VkBool32                integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
+       VkBool32                integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
+       VkBool32                integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
+       VkBool32                integerDotProductAccumulatingSaturating16BitSignedAccelerated;
+       VkBool32                integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
+       VkBool32                integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
+       VkBool32                integerDotProductAccumulatingSaturating32BitSignedAccelerated;
+       VkBool32                integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
+       VkBool32                integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
+       VkBool32                integerDotProductAccumulatingSaturating64BitSignedAccelerated;
+       VkBool32                integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
 };
 
-struct VkVideoSessionParametersCreateInfoKHR
+struct VkPhysicalDeviceDrmPropertiesEXT
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkVideoSessionParametersKHR     videoSessionParametersTemplate;
-       VkVideoSessionKHR                       videoSession;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                hasPrimary;
+       VkBool32                hasRender;
+       int64_t                 primaryMajor;
+       int64_t                 primaryMinor;
+       int64_t                 renderMajor;
+       int64_t                 renderMinor;
 };
 
-struct VkVideoSessionParametersUpdateInfoKHR
+struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR
 {
        VkStructureType sType;
-       const void*             pNext;
-       uint32_t                updateSequenceCount;
+       void*                   pNext;
+       VkBool32                fragmentShaderBarycentric;
 };
 
-struct VkVideoBeginCodingInfoKHR
+struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkVideoBeginCodingFlagsKHR                      flags;
-       VkVideoCodingQualityPresetFlagsKHR      codecQualityPreset;
-       VkVideoSessionKHR                                       videoSession;
-       VkVideoSessionParametersKHR                     videoSessionParameters;
-       uint32_t                                                        referenceSlotCount;
-       const VkVideoReferenceSlotKHR*          pReferenceSlots;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                triStripVertexOrderIndependentOfProvokingVertex;
 };
 
-struct VkVideoEndCodingInfoKHR
+struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkVideoEndCodingFlagsKHR        flags;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                rayTracingMotionBlur;
+       VkBool32                rayTracingMotionBlurPipelineTraceRaysIndirect;
 };
 
-struct VkVideoCodingControlInfoKHR
+struct VkAccelerationStructureGeometryMotionTrianglesDataNV
 {
        VkStructureType                                 sType;
        const void*                                             pNext;
-       VkVideoCodingControlFlagsKHR    flags;
+       VkDeviceOrHostAddressConstKHR   vertexData;
 };
 
-struct VkVideoDecodeCapabilitiesKHR
+struct VkAccelerationStructureMotionInfoNV
 {
-       VkStructureType                                 sType;
-       void*                                                   pNext;
-       VkVideoDecodeCapabilityFlagsKHR flags;
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       uint32_t                                                                        maxInstances;
+       VkAccelerationStructureMotionInfoFlagsNV        flags;
 };
 
-struct VkVideoDecodeInfoKHR
+struct VkSRTDataNV
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkVideoDecodeFlagsKHR                   flags;
-       VkBuffer                                                srcBuffer;
-       VkDeviceSize                                    srcBufferOffset;
-       VkDeviceSize                                    srcBufferRange;
-       VkVideoPictureResourceKHR               dstPictureResource;
-       const VkVideoReferenceSlotKHR*  pSetupReferenceSlot;
-       uint32_t                                                referenceSlotCount;
-       const VkVideoReferenceSlotKHR*  pReferenceSlots;
+       float   sx;
+       float   a;
+       float   b;
+       float   pvx;
+       float   sy;
+       float   c;
+       float   pvy;
+       float   sz;
+       float   pvz;
+       float   qx;
+       float   qy;
+       float   qz;
+       float   qw;
+       float   tx;
+       float   ty;
+       float   tz;
 };
 
-struct VkPhysicalDevicePortabilitySubsetFeaturesKHR
+struct VkAccelerationStructureSRTMotionInstanceNV
 {
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                constantAlphaColorBlendFactors;
-       VkBool32                events;
-       VkBool32                imageViewFormatReinterpretation;
-       VkBool32                imageViewFormatSwizzle;
-       VkBool32                imageView2DOn3DImage;
-       VkBool32                multisampleArrayImage;
-       VkBool32                mutableComparisonSamplers;
-       VkBool32                pointPolygons;
-       VkBool32                samplerMipLodBias;
-       VkBool32                separateStencilMaskRef;
-       VkBool32                shaderSampleRateInterpolationFunctions;
-       VkBool32                tessellationIsolines;
-       VkBool32                tessellationPointMode;
-       VkBool32                triangleFans;
-       VkBool32                vertexAttributeAccessBeyondStride;
+       VkSRTDataNV                                     transformT0;
+       VkSRTDataNV                                     transformT1;
+       uint32_t                                        instanceCustomIndex:24;
+       uint32_t                                        mask:8;
+       uint32_t                                        instanceShaderBindingTableRecordOffset:24;
+       VkGeometryInstanceFlagsKHR      flags:8;
+       uint64_t                                        accelerationStructureReference;
 };
 
-struct VkPhysicalDevicePortabilitySubsetPropertiesKHR
+struct VkAccelerationStructureMatrixMotionInstanceNV
 {
-       VkStructureType sType;
-       void*                   pNext;
-       uint32_t                minVertexInputBindingStrideAlignment;
+       VkTransformMatrixKHR            transformT0;
+       VkTransformMatrixKHR            transformT1;
+       uint32_t                                        instanceCustomIndex:24;
+       uint32_t                                        mask:8;
+       uint32_t                                        instanceShaderBindingTableRecordOffset:24;
+       VkGeometryInstanceFlagsKHR      flags:8;
+       uint64_t                                        accelerationStructureReference;
 };
 
-struct VkVideoEncodeInfoKHR
+union VkAccelerationStructureMotionInstanceDataNV
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkVideoEncodeFlagsKHR                   flags;
-       uint32_t                                                qualityLevel;
-       VkBuffer                                                dstBitstreamBuffer;
-       VkDeviceSize                                    dstBitstreamBufferOffset;
-       VkDeviceSize                                    dstBitstreamBufferMaxRange;
-       VkVideoPictureResourceKHR               srcPictureResource;
-       const VkVideoReferenceSlotKHR*  pSetupReferenceSlot;
-       uint32_t                                                referenceSlotCount;
-       const VkVideoReferenceSlotKHR*  pReferenceSlots;
-       uint32_t                                                precedingExternallyEncodedBytes;
+       VkAccelerationStructureInstanceKHR                              staticInstance;
+       VkAccelerationStructureMatrixMotionInstanceNV   matrixMotionInstance;
+       VkAccelerationStructureSRTMotionInstanceNV              srtMotionInstance;
 };
 
-struct VkVideoEncodeCapabilitiesKHR
+struct VkAccelerationStructureMotionInstanceNV
 {
-       VkStructureType                                                 sType;
-       void*                                                                   pNext;
-       VkVideoEncodeCapabilityFlagsKHR                 flags;
-       VkVideoEncodeRateControlModeFlagsKHR    rateControlModes;
-       uint8_t                                                                 rateControlLayerCount;
-       uint8_t                                                                 qualityLevelCount;
-       VkExtent2D                                                              inputImageDataFillAlignment;
+       VkAccelerationStructureMotionInstanceTypeNV             type;
+       VkAccelerationStructureMotionInstanceFlagsNV    flags;
+       VkAccelerationStructureMotionInstanceDataNV             data;
 };
 
-struct VkVideoEncodeRateControlLayerInfoKHR
+struct VkMemoryGetRemoteAddressInfoNV
 {
-       VkStructureType sType;
-       const void*             pNext;
-       uint32_t                averageBitrate;
-       uint32_t                maxBitrate;
-       uint32_t                frameRateNumerator;
-       uint32_t                frameRateDenominator;
-       uint32_t                virtualBufferSizeInMs;
-       uint32_t                initialVirtualBufferSizeInMs;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkDeviceMemory                                          memory;
+       VkExternalMemoryHandleTypeFlagBits      handleType;
 };
 
-struct VkVideoEncodeRateControlInfoKHR
+struct VkImportMemoryBufferCollectionFUCHSIA
 {
-       VkStructureType                                                         sType;
-       const void*                                                                     pNext;
-       VkVideoEncodeRateControlFlagsKHR                        flags;
-       VkVideoEncodeRateControlModeFlagBitsKHR         rateControlMode;
-       uint8_t                                                                         layerCount;
-       const VkVideoEncodeRateControlLayerInfoKHR*     pLayerConfigs;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkBufferCollectionFUCHSIA       collection;
+       uint32_t                                        index;
 };
 
-struct StdVideoH264SpsVuiFlags
+struct VkBufferCollectionImageCreateInfoFUCHSIA
 {
-       uint32_t        aspect_ratio_info_present_flag:1;
-       uint32_t        overscan_info_present_flag:1;
-       uint32_t        overscan_appropriate_flag:1;
-       uint32_t        video_signal_type_present_flag:1;
-       uint32_t        video_full_range_flag:1;
-       uint32_t        color_description_present_flag:1;
-       uint32_t        chroma_loc_info_present_flag:1;
-       uint32_t        timing_info_present_flag:1;
-       uint32_t        fixed_frame_rate_flag:1;
-       uint32_t        bitstream_restriction_flag:1;
-       uint32_t        nal_hrd_parameters_present_flag:1;
-       uint32_t        vcl_hrd_parameters_present_flag:1;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkBufferCollectionFUCHSIA       collection;
+       uint32_t                                        index;
 };
 
-struct StdVideoH264HrdParameters
+struct VkBufferCollectionBufferCreateInfoFUCHSIA
 {
-       uint8_t         cpb_cnt_minus1;
-       uint8_t         bit_rate_scale;
-       uint8_t         cpb_size_scale;
-       uint32_t        bit_rate_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE];
-       uint32_t        cpb_size_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE];
-       uint8_t         cbr_flag[STD_VIDEO_H264_CPB_CNT_LIST_SIZE];
-       uint32_t        initial_cpb_removal_delay_length_minus1;
-       uint32_t        cpb_removal_delay_length_minus1;
-       uint32_t        dpb_output_delay_length_minus1;
-       uint32_t        time_offset_length;
+       VkStructureType                         sType;
+       const void*                                     pNext;
+       VkBufferCollectionFUCHSIA       collection;
+       uint32_t                                        index;
 };
 
-struct StdVideoH264SequenceParameterSetVui
+struct VkBufferCollectionCreateInfoFUCHSIA
 {
-       StdVideoH264SpsVuiFlags                         flags;
-       StdVideoH264AspectRatioIdc                      aspect_ratio_idc;
-       uint16_t                                                        sar_width;
-       uint16_t                                                        sar_height;
-       uint8_t                                                         video_format;
-       uint8_t                                                         color_primaries;
-       uint8_t                                                         transfer_characteristics;
-       uint8_t                                                         matrix_coefficients;
-       uint32_t                                                        num_units_in_tick;
-       uint32_t                                                        time_scale;
-       const StdVideoH264HrdParameters*        pHrdParameters;
-       uint8_t                                                         max_num_reorder_frames;
-       uint8_t                                                         max_dec_frame_buffering;
+       VkStructureType sType;
+       const void*             pNext;
+       pt::zx_handle_t collectionToken;
 };
 
-struct StdVideoH264SpsFlags
+struct VkSysmemColorSpaceFUCHSIA
 {
-       uint32_t        constraint_set0_flag:1;
-       uint32_t        constraint_set1_flag:1;
-       uint32_t        constraint_set2_flag:1;
-       uint32_t        constraint_set3_flag:1;
-       uint32_t        constraint_set4_flag:1;
-       uint32_t        constraint_set5_flag:1;
-       uint32_t        direct_8x8_inference_flag:1;
-       uint32_t        mb_adaptive_frame_field_flag:1;
-       uint32_t        frame_mbs_only_flag:1;
-       uint32_t        delta_pic_order_always_zero_flag:1;
-       uint32_t        separate_colour_plane_flag:1;
-       uint32_t        gaps_in_frame_num_value_allowed_flag:1;
-       uint32_t        qpprime_y_zero_transform_bypass_flag:1;
-       uint32_t        frame_cropping_flag:1;
-       uint32_t        seq_scaling_matrix_present_flag:1;
-       uint32_t        vui_parameters_present_flag:1;
+       VkStructureType sType;
+       const void*             pNext;
+       uint32_t                colorSpace;
 };
 
-struct StdVideoH264ScalingLists
+struct VkBufferCollectionPropertiesFUCHSIA
 {
-       uint8_t scaling_list_present_mask;
-       uint8_t use_default_scaling_matrix_mask;
-       uint8_t ScalingList4x4[STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS][STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS];
-       uint8_t ScalingList8x8[STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS][STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS];
+       VkStructureType                                 sType;
+       void*                                                   pNext;
+       uint32_t                                                memoryTypeBits;
+       uint32_t                                                bufferCount;
+       uint32_t                                                createInfoIndex;
+       uint64_t                                                sysmemPixelFormat;
+       VkFormatFeatureFlags                    formatFeatures;
+       VkSysmemColorSpaceFUCHSIA               sysmemColorSpaceIndex;
+       VkComponentMapping                              samplerYcbcrConversionComponents;
+       VkSamplerYcbcrModelConversion   suggestedYcbcrModel;
+       VkSamplerYcbcrRange                             suggestedYcbcrRange;
+       VkChromaLocation                                suggestedXChromaOffset;
+       VkChromaLocation                                suggestedYChromaOffset;
 };
 
-struct StdVideoH264SequenceParameterSet
+struct VkImageFormatConstraintsInfoFUCHSIA
 {
-       StdVideoH264SpsFlags                                            flags;
-       StdVideoH264ProfileIdc                                          profile_idc;
-       StdVideoH264Level                                                       level_idc;
-       uint8_t                                                                         seq_parameter_set_id;
-       StdVideoH264ChromaFormatIdc                                     chroma_format_idc;
-       uint8_t                                                                         bit_depth_luma_minus8;
-       uint8_t                                                                         bit_depth_chroma_minus8;
-       uint8_t                                                                         log2_max_frame_num_minus4;
-       StdVideoH264PocType                                                     pic_order_cnt_type;
-       uint8_t                                                                         log2_max_pic_order_cnt_lsb_minus4;
-       int32_t                                                                         offset_for_non_ref_pic;
-       int32_t                                                                         offset_for_top_to_bottom_field;
-       uint8_t                                                                         num_ref_frames_in_pic_order_cnt_cycle;
-       uint8_t                                                                         max_num_ref_frames;
-       uint32_t                                                                        pic_width_in_mbs_minus1;
-       uint32_t                                                                        pic_height_in_map_units_minus1;
-       uint32_t                                                                        frame_crop_left_offset;
-       uint32_t                                                                        frame_crop_right_offset;
-       uint32_t                                                                        frame_crop_top_offset;
-       uint32_t                                                                        frame_crop_bottom_offset;
-       const int32_t*                                                          pOffsetForRefFrame;
-       const StdVideoH264ScalingLists*                         pScalingLists;
-       const StdVideoH264SequenceParameterSetVui*      pSequenceParameterSetVui;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkImageCreateInfo                                               imageCreateInfo;
+       VkFormatFeatureFlags                                    requiredFormatFeatures;
+       VkImageFormatConstraintsFlagsFUCHSIA    flags;
+       uint64_t                                                                sysmemPixelFormat;
+       uint32_t                                                                colorSpaceCount;
+       const VkSysmemColorSpaceFUCHSIA*                pColorSpaces;
 };
 
-struct StdVideoH264PpsFlags
+struct VkBufferCollectionConstraintsInfoFUCHSIA
 {
-       uint32_t        transform_8x8_mode_flag:1;
-       uint32_t        redundant_pic_cnt_present_flag:1;
-       uint32_t        constrained_intra_pred_flag:1;
-       uint32_t        deblocking_filter_control_present_flag:1;
-       uint32_t        weighted_bipred_idc_flag:1;
-       uint32_t        weighted_pred_flag:1;
-       uint32_t        pic_order_present_flag:1;
-       uint32_t        entropy_coding_mode_flag:1;
-       uint32_t        pic_scaling_matrix_present_flag:1;
+       VkStructureType sType;
+       const void*             pNext;
+       uint32_t                minBufferCount;
+       uint32_t                maxBufferCount;
+       uint32_t                minBufferCountForCamping;
+       uint32_t                minBufferCountForDedicatedSlack;
+       uint32_t                minBufferCountForSharedSlack;
 };
 
-struct StdVideoH264PictureParameterSet
+struct VkBufferConstraintsInfoFUCHSIA
 {
-       StdVideoH264PpsFlags                    flags;
-       uint8_t                                                 seq_parameter_set_id;
-       uint8_t                                                 pic_parameter_set_id;
-       uint8_t                                                 num_ref_idx_l0_default_active_minus1;
-       uint8_t                                                 num_ref_idx_l1_default_active_minus1;
-       StdVideoH264WeightedBipredIdc   weighted_bipred_idc;
-       int8_t                                                  pic_init_qp_minus26;
-       int8_t                                                  pic_init_qs_minus26;
-       int8_t                                                  chroma_qp_index_offset;
-       int8_t                                                  second_chroma_qp_index_offset;
-       const StdVideoH264ScalingLists* pScalingLists;
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       VkBufferCreateInfo                                                      createInfo;
+       VkFormatFeatureFlags                                            requiredFormatFeatures;
+       VkBufferCollectionConstraintsInfoFUCHSIA        bufferCollectionConstraints;
 };
 
-struct StdVideoEncodeH264WeightTableFlags
+struct VkImageConstraintsInfoFUCHSIA
 {
-       uint32_t        luma_weight_l0_flag;
-       uint32_t        chroma_weight_l0_flag;
-       uint32_t        luma_weight_l1_flag;
-       uint32_t        chroma_weight_l1_flag;
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       uint32_t                                                                        formatConstraintsCount;
+       const VkImageFormatConstraintsInfoFUCHSIA*      pFormatConstraints;
+       VkBufferCollectionConstraintsInfoFUCHSIA        bufferCollectionConstraints;
+       VkImageConstraintsInfoFlagsFUCHSIA                      flags;
 };
 
-struct StdVideoEncodeH264WeightTable
+struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT
 {
-       StdVideoEncodeH264WeightTableFlags      flags;
-       uint8_t                                                         luma_log2_weight_denom;
-       uint8_t                                                         chroma_log2_weight_denom;
-       int8_t                                                          luma_weight_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF];
-       int8_t                                                          luma_offset_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF];
-       int8_t                                                          chroma_weight_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES];
-       int8_t                                                          chroma_offset_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES];
-       int8_t                                                          luma_weight_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF];
-       int8_t                                                          luma_offset_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF];
-       int8_t                                                          chroma_weight_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES];
-       int8_t                                                          chroma_offset_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES];
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                formatRgba10x6WithoutYCbCrSampler;
 };
 
-struct StdVideoEncodeH264SliceHeaderFlags
+struct VkFormatProperties3
 {
-       uint32_t        direct_spatial_mv_pred_flag:1;
-       uint32_t        num_ref_idx_active_override_flag:1;
-       uint32_t        no_output_of_prior_pics_flag:1;
-       uint32_t        adaptive_ref_pic_marking_mode_flag:1;
-       uint32_t        no_prior_references_available_flag:1;
+       VkStructureType                 sType;
+       void*                                   pNext;
+       VkFormatFeatureFlags2   linearTilingFeatures;
+       VkFormatFeatureFlags2   optimalTilingFeatures;
+       VkFormatFeatureFlags2   bufferFeatures;
 };
 
-struct StdVideoEncodeH264PictureInfoFlags
+struct VkDrmFormatModifierProperties2EXT
 {
-       uint32_t        idr_flag:1;
-       uint32_t        is_reference_flag:1;
-       uint32_t        used_for_long_term_reference:1;
+       uint64_t                                drmFormatModifier;
+       uint32_t                                drmFormatModifierPlaneCount;
+       VkFormatFeatureFlags2   drmFormatModifierTilingFeatures;
 };
 
-struct StdVideoEncodeH264ReferenceInfoFlags
+struct VkDrmFormatModifierPropertiesList2EXT
 {
-       uint32_t        used_for_long_term_reference:1;
+       VkStructureType                                         sType;
+       void*                                                           pNext;
+       uint32_t                                                        drmFormatModifierCount;
+       VkDrmFormatModifierProperties2EXT*      pDrmFormatModifierProperties;
 };
 
-struct StdVideoEncodeH264RefMgmtFlags
+struct VkAndroidHardwareBufferFormatProperties2ANDROID
 {
-       uint32_t        ref_pic_list_modification_l0_flag:1;
-       uint32_t        ref_pic_list_modification_l1_flag:1;
+       VkStructureType                                 sType;
+       void*                                                   pNext;
+       VkFormat                                                format;
+       uint64_t                                                externalFormat;
+       VkFormatFeatureFlags2                   formatFeatures;
+       VkComponentMapping                              samplerYcbcrConversionComponents;
+       VkSamplerYcbcrModelConversion   suggestedYcbcrModel;
+       VkSamplerYcbcrRange                             suggestedYcbcrRange;
+       VkChromaLocation                                suggestedXChromaOffset;
+       VkChromaLocation                                suggestedYChromaOffset;
 };
 
-struct StdVideoEncodeH264RefListModEntry
+struct VkPipelineRenderingCreateInfo
 {
-       StdVideoH264ModificationOfPicNumsIdc    modification_of_pic_nums_idc;
-       uint16_t                                                                abs_diff_pic_num_minus1;
-       uint16_t                                                                long_term_pic_num;
+       VkStructureType sType;
+       const void*             pNext;
+       uint32_t                viewMask;
+       uint32_t                colorAttachmentCount;
+       const VkFormat* pColorAttachmentFormats;
+       VkFormat                depthAttachmentFormat;
+       VkFormat                stencilAttachmentFormat;
+};
+
+struct VkRenderingAttachmentInfo
+{
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkImageView                             imageView;
+       VkImageLayout                   imageLayout;
+       VkResolveModeFlagBits   resolveMode;
+       VkImageView                             resolveImageView;
+       VkImageLayout                   resolveImageLayout;
+       VkAttachmentLoadOp              loadOp;
+       VkAttachmentStoreOp             storeOp;
+       VkClearValue                    clearValue;
 };
 
-struct StdVideoEncodeH264RefPicMarkingEntry
+struct VkRenderingInfo
 {
-       StdVideoH264MemMgmtControlOp    operation;
-       uint16_t                                                difference_of_pic_nums_minus1;
-       uint16_t                                                long_term_pic_num;
-       uint16_t                                                long_term_frame_idx;
-       uint16_t                                                max_long_term_frame_idx_plus1;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkRenderingFlags                                        flags;
+       VkRect2D                                                        renderArea;
+       uint32_t                                                        layerCount;
+       uint32_t                                                        viewMask;
+       uint32_t                                                        colorAttachmentCount;
+       const VkRenderingAttachmentInfo*        pColorAttachments;
+       const VkRenderingAttachmentInfo*        pDepthAttachment;
+       const VkRenderingAttachmentInfo*        pStencilAttachment;
 };
 
-struct StdVideoEncodeH264RefMemMgmtCtrlOperations
+struct VkRenderingFragmentShadingRateAttachmentInfoKHR
 {
-       StdVideoEncodeH264RefMgmtFlags                          flags;
-       uint8_t                                                                         refList0ModOpCount;
-       const StdVideoEncodeH264RefListModEntry*        pRefList0ModOperations;
-       uint8_t                                                                         refList1ModOpCount;
-       const StdVideoEncodeH264RefListModEntry*        pRefList1ModOperations;
-       uint8_t                                                                         refPicMarkingOpCount;
-       const StdVideoEncodeH264RefPicMarkingEntry*     pRefPicMarkingOperations;
+       VkStructureType sType;
+       const void*             pNext;
+       VkImageView             imageView;
+       VkImageLayout   imageLayout;
+       VkExtent2D              shadingRateAttachmentTexelSize;
 };
 
-struct StdVideoEncodeH264PictureInfo
+struct VkRenderingFragmentDensityMapAttachmentInfoEXT
 {
-       StdVideoEncodeH264PictureInfoFlags      flags;
-       uint8_t                                                         seq_parameter_set_id;
-       uint8_t                                                         pic_parameter_set_id;
-       StdVideoH264PictureType                         pictureType;
-       uint32_t                                                        frame_num;
-       int32_t                                                         PicOrderCnt;
+       VkStructureType sType;
+       const void*             pNext;
+       VkImageView             imageView;
+       VkImageLayout   imageLayout;
 };
 
-struct StdVideoEncodeH264ReferenceInfo
+struct VkPhysicalDeviceDynamicRenderingFeatures
 {
-       StdVideoEncodeH264ReferenceInfoFlags    flags;
-       uint32_t                                                                FrameNum;
-       int32_t                                                                 PicOrderCnt;
-       uint16_t                                                                long_term_pic_num;
-       uint16_t                                                                long_term_frame_idx;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                dynamicRendering;
 };
 
-struct StdVideoEncodeH264SliceHeader
+struct VkCommandBufferInheritanceRenderingInfo
 {
-       StdVideoEncodeH264SliceHeaderFlags              flags;
-       uint32_t                                                                first_mb_in_slice;
-       StdVideoH264SliceType                                   slice_type;
-       uint16_t                                                                idr_pic_id;
-       uint8_t                                                                 num_ref_idx_l0_active_minus1;
-       uint8_t                                                                 num_ref_idx_l1_active_minus1;
-       StdVideoH264CabacInitIdc                                cabac_init_idc;
-       StdVideoH264DisableDeblockingFilterIdc  disable_deblocking_filter_idc;
-       int8_t                                                                  slice_alpha_c0_offset_div2;
-       int8_t                                                                  slice_beta_offset_div2;
-       const StdVideoEncodeH264WeightTable*    pWeightTable;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkRenderingFlags                flags;
+       uint32_t                                viewMask;
+       uint32_t                                colorAttachmentCount;
+       const VkFormat*                 pColorAttachmentFormats;
+       VkFormat                                depthAttachmentFormat;
+       VkFormat                                stencilAttachmentFormat;
+       VkSampleCountFlagBits   rasterizationSamples;
 };
 
-struct VkVideoEncodeH264CapabilitiesEXT
+struct VkAttachmentSampleCountInfoAMD
 {
-       VkStructureType                                         sType;
-       void*                                                           pNext;
-       VkVideoEncodeH264CapabilityFlagsEXT     flags;
-       VkVideoEncodeH264InputModeFlagsEXT      inputModeFlags;
-       VkVideoEncodeH264OutputModeFlagsEXT     outputModeFlags;
-       uint8_t                                                         maxPPictureL0ReferenceCount;
-       uint8_t                                                         maxBPictureL0ReferenceCount;
-       uint8_t                                                         maxL1ReferenceCount;
-       VkBool32                                                        motionVectorsOverPicBoundariesFlag;
-       uint32_t                                                        maxBytesPerPicDenom;
-       uint32_t                                                        maxBitsPerMbDenom;
-       uint32_t                                                        log2MaxMvLengthHorizontal;
-       uint32_t                                                        log2MaxMvLengthVertical;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       uint32_t                                                colorAttachmentCount;
+       const VkSampleCountFlagBits*    pColorAttachmentSamples;
+       VkSampleCountFlagBits                   depthStencilAttachmentSamples;
 };
 
-struct VkVideoEncodeH264SessionParametersAddInfoEXT
+struct VkMultiviewPerViewAttributesInfoNVX
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       uint32_t                                                                spsStdCount;
-       const StdVideoH264SequenceParameterSet* pSpsStd;
-       uint32_t                                                                ppsStdCount;
-       const StdVideoH264PictureParameterSet*  pPpsStd;
+       VkStructureType sType;
+       const void*             pNext;
+       VkBool32                perViewAttributes;
+       VkBool32                perViewAttributesPositionXOnly;
 };
 
-struct VkVideoEncodeH264SessionParametersCreateInfoEXT
+struct VkPhysicalDeviceImageViewMinLodFeaturesEXT
 {
-       VkStructureType                                                                         sType;
-       const void*                                                                                     pNext;
-       uint32_t                                                                                        maxSpsStdCount;
-       uint32_t                                                                                        maxPpsStdCount;
-       const VkVideoEncodeH264SessionParametersAddInfoEXT*     pParametersAddInfo;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                minLod;
 };
 
-struct VkVideoEncodeH264DpbSlotInfoEXT
+struct VkImageViewMinLodCreateInfoEXT
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       int8_t                                                                  slotIndex;
-       const StdVideoEncodeH264ReferenceInfo*  pStdReferenceInfo;
+       VkStructureType sType;
+       const void*             pNext;
+       float                   minLod;
 };
 
-struct VkVideoEncodeH264ReferenceListsEXT
+struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM
 {
-       VkStructureType                                                                         sType;
-       const void*                                                                                     pNext;
-       uint8_t                                                                                         referenceList0EntryCount;
-       const VkVideoEncodeH264DpbSlotInfoEXT*                          pReferenceList0Entries;
-       uint8_t                                                                                         referenceList1EntryCount;
-       const VkVideoEncodeH264DpbSlotInfoEXT*                          pReferenceList1Entries;
-       const StdVideoEncodeH264RefMemMgmtCtrlOperations*       pMemMgmtCtrlOperations;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                rasterizationOrderColorAttachmentAccess;
+       VkBool32                rasterizationOrderDepthAttachmentAccess;
+       VkBool32                rasterizationOrderStencilAttachmentAccess;
 };
 
-struct VkVideoEncodeH264NaluSliceEXT
+struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV
 {
-       VkStructureType                                                         sType;
-       const void*                                                                     pNext;
-       uint32_t                                                                        mbCount;
-       const VkVideoEncodeH264ReferenceListsEXT*       pReferenceFinalLists;
-       const StdVideoEncodeH264SliceHeader*            pSliceHeaderStd;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                linearColorAttachment;
 };
 
-struct VkVideoEncodeH264VclFrameInfoEXT
+struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
 {
-       VkStructureType                                                         sType;
-       const void*                                                                     pNext;
-       const VkVideoEncodeH264ReferenceListsEXT*       pReferenceFinalLists;
-       uint32_t                                                                        naluSliceEntryCount;
-       const VkVideoEncodeH264NaluSliceEXT*            pNaluSliceEntries;
-       const StdVideoEncodeH264PictureInfo*            pCurrentPictureInfo;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                graphicsPipelineLibrary;
 };
 
-struct VkVideoEncodeH264EmitPictureParametersEXT
+struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
 {
        VkStructureType sType;
-       const void*             pNext;
-       uint8_t                 spsId;
-       VkBool32                emitSpsEnable;
-       uint32_t                ppsIdEntryCount;
-       const uint8_t*  ppsIdEntries;
+       void*                   pNext;
+       VkBool32                graphicsPipelineLibraryFastLinking;
+       VkBool32                graphicsPipelineLibraryIndependentInterpolationDecoration;
 };
 
-struct VkVideoEncodeH264ProfileEXT
+struct VkGraphicsPipelineLibraryCreateInfoEXT
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       StdVideoH264ProfileIdc  stdProfileIdc;
+       VkStructureType                                         sType;
+       void*                                                           pNext;
+       VkGraphicsPipelineLibraryFlagsEXT       flags;
 };
 
-struct VkVideoEncodeH264RateControlInfoEXT
+struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE
 {
-       VkStructureType                                                                         sType;
-       const void*                                                                                     pNext;
-       uint32_t                                                                                        gopFrameCount;
-       uint32_t                                                                                        idrPeriod;
-       uint32_t                                                                                        consecutiveBFrameCount;
-       VkVideoEncodeH264RateControlStructureFlagBitsEXT        rateControlStructure;
-       uint8_t                                                                                         temporalLayerCount;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                descriptorSetHostMapping;
 };
 
-struct VkVideoEncodeH264QpEXT
+struct VkDescriptorSetBindingReferenceVALVE
 {
-       int32_t qpI;
-       int32_t qpP;
-       int32_t qpB;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkDescriptorSetLayout   descriptorSetLayout;
+       uint32_t                                binding;
 };
 
-struct VkVideoEncodeH264FrameSizeEXT
+struct VkDescriptorSetLayoutHostMappingInfoVALVE
 {
-       uint32_t        frameISize;
-       uint32_t        framePSize;
-       uint32_t        frameBSize;
+       VkStructureType sType;
+       void*                   pNext;
+       size_t                  descriptorOffset;
+       uint32_t                descriptorSize;
 };
 
-struct VkVideoEncodeH264RateControlLayerInfoEXT
+struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       uint8_t                                                 temporalLayerId;
-       VkBool32                                                useInitialRcQp;
-       VkVideoEncodeH264QpEXT                  initialRcQp;
-       VkBool32                                                useMinQp;
-       VkVideoEncodeH264QpEXT                  minQp;
-       VkBool32                                                useMaxQp;
-       VkVideoEncodeH264QpEXT                  maxQp;
-       VkBool32                                                useMaxFrameSize;
-       VkVideoEncodeH264FrameSizeEXT   maxFrameSize;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                shaderModuleIdentifier;
 };
 
-struct StdVideoH265DecPicBufMgr
+struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT
 {
-       uint32_t        max_latency_increase_plus1[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
-       uint8_t         max_dec_pic_buffering_minus1[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
-       uint8_t         max_num_reorder_pics[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
+       VkStructureType sType;
+       void*                   pNext;
+       uint8_t                 shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE];
 };
 
-struct StdVideoH265SubLayerHrdParameters
+struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT
 {
-       uint32_t        bit_rate_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
-       uint32_t        cpb_size_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
-       uint32_t        cpb_size_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
-       uint32_t        bit_rate_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
-       uint32_t        cbr_flag;
+       VkStructureType sType;
+       const void*             pNext;
+       uint32_t                identifierSize;
+       const uint8_t*  pIdentifier;
 };
 
-struct StdVideoH265HrdFlags
+struct VkShaderModuleIdentifierEXT
 {
-       uint32_t        nal_hrd_parameters_present_flag:1;
-       uint32_t        vcl_hrd_parameters_present_flag:1;
-       uint32_t        sub_pic_hrd_params_present_flag:1;
-       uint32_t        sub_pic_cpb_params_in_pic_timing_sei_flag:1;
-       uint32_t        fixed_pic_rate_general_flag:8;
-       uint32_t        fixed_pic_rate_within_cvs_flag:8;
-       uint32_t        low_delay_hrd_flag:8;
+       VkStructureType sType;
+       void*                   pNext;
+       uint32_t                identifierSize;
+       uint8_t                 identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT];
 };
 
-struct StdVideoH265HrdParameters
+struct VkImageCompressionControlEXT
 {
-       StdVideoH265HrdFlags                                            flags;
-       uint8_t                                                                         tick_divisor_minus2;
-       uint8_t                                                                         du_cpb_removal_delay_increment_length_minus1;
-       uint8_t                                                                         dpb_output_delay_du_length_minus1;
-       uint8_t                                                                         bit_rate_scale;
-       uint8_t                                                                         cpb_size_scale;
-       uint8_t                                                                         cpb_size_du_scale;
-       uint8_t                                                                         initial_cpb_removal_delay_length_minus1;
-       uint8_t                                                                         au_cpb_removal_delay_length_minus1;
-       uint8_t                                                                         dpb_output_delay_length_minus1;
-       uint8_t                                                                         cpb_cnt_minus1[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
-       uint16_t                                                                        elemental_duration_in_tc_minus1[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
-       const StdVideoH265SubLayerHrdParameters*        pSubLayerHrdParametersNal[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
-       const StdVideoH265SubLayerHrdParameters*        pSubLayerHrdParametersVcl[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkImageCompressionFlagsEXT                              flags;
+       uint32_t                                                                compressionControlPlaneCount;
+       VkImageCompressionFixedRateFlagsEXT*    pFixedRateFlags;
 };
 
-struct StdVideoH265VpsFlags
+struct VkPhysicalDeviceImageCompressionControlFeaturesEXT
 {
-       uint32_t        vps_temporal_id_nesting_flag:1;
-       uint32_t        vps_sub_layer_ordering_info_present_flag:1;
-       uint32_t        vps_timing_info_present_flag:1;
-       uint32_t        vps_poc_proportional_to_timing_flag:1;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                imageCompressionControl;
 };
 
-struct StdVideoH265VideoParameterSet
+struct VkImageCompressionPropertiesEXT
 {
-       StdVideoH265VpsFlags                            flags;
-       uint8_t                                                         vps_video_parameter_set_id;
-       uint8_t                                                         vps_max_sub_layers_minus1;
-       uint32_t                                                        vps_num_units_in_tick;
-       uint32_t                                                        vps_time_scale;
-       uint32_t                                                        vps_num_ticks_poc_diff_one_minus1;
-       const StdVideoH265DecPicBufMgr*         pDecPicBufMgr;
-       const StdVideoH265HrdParameters*        pHrdParameters;
+       VkStructureType                                         sType;
+       void*                                                           pNext;
+       VkImageCompressionFlagsEXT                      imageCompressionFlags;
+       VkImageCompressionFixedRateFlagsEXT     imageCompressionFixedRateFlags;
 };
 
-struct StdVideoH265ScalingLists
+struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
 {
-       uint8_t ScalingList4x4[STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS];
-       uint8_t ScalingList8x8[STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS];
-       uint8_t ScalingList16x16[STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS];
-       uint8_t ScalingList32x32[STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS];
-       uint8_t ScalingListDCCoef16x16[STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS];
-       uint8_t ScalingListDCCoef32x32[STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS];
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                imageCompressionControlSwapchain;
 };
 
-struct StdVideoH265SpsVuiFlags
+struct VkImageSubresource2EXT
 {
-       uint32_t        aspect_ratio_info_present_flag:1;
-       uint32_t        overscan_info_present_flag:1;
-       uint32_t        overscan_appropriate_flag:1;
-       uint32_t        video_signal_type_present_flag:1;
-       uint32_t        video_full_range_flag:1;
-       uint32_t        colour_description_present_flag:1;
-       uint32_t        chroma_loc_info_present_flag:1;
-       uint32_t        neutral_chroma_indication_flag:1;
-       uint32_t        field_seq_flag:1;
-       uint32_t        frame_field_info_present_flag:1;
-       uint32_t        default_display_window_flag:1;
-       uint32_t        vui_timing_info_present_flag:1;
-       uint32_t        vui_poc_proportional_to_timing_flag:1;
-       uint32_t        vui_hrd_parameters_present_flag:1;
-       uint32_t        bitstream_restriction_flag:1;
-       uint32_t        tiles_fixed_structure_flag:1;
-       uint32_t        motion_vectors_over_pic_boundaries_flag:1;
-       uint32_t        restricted_ref_pic_lists_flag:1;
+       VkStructureType         sType;
+       void*                           pNext;
+       VkImageSubresource      imageSubresource;
 };
 
-struct StdVideoH265SequenceParameterSetVui
+struct VkSubresourceLayout2EXT
 {
-       StdVideoH265SpsVuiFlags                         flags;
-       uint8_t                                                         aspect_ratio_idc;
-       uint16_t                                                        sar_width;
-       uint16_t                                                        sar_height;
-       uint8_t                                                         video_format;
-       uint8_t                                                         colour_primaries;
-       uint8_t                                                         transfer_characteristics;
-       uint8_t                                                         matrix_coeffs;
-       uint8_t                                                         chroma_sample_loc_type_top_field;
-       uint8_t                                                         chroma_sample_loc_type_bottom_field;
-       uint16_t                                                        def_disp_win_left_offset;
-       uint16_t                                                        def_disp_win_right_offset;
-       uint16_t                                                        def_disp_win_top_offset;
-       uint16_t                                                        def_disp_win_bottom_offset;
-       uint32_t                                                        vui_num_units_in_tick;
-       uint32_t                                                        vui_time_scale;
-       uint32_t                                                        vui_num_ticks_poc_diff_one_minus1;
-       const StdVideoH265HrdParameters*        pHrdParameters;
-       uint16_t                                                        min_spatial_segmentation_idc;
-       uint8_t                                                         max_bytes_per_pic_denom;
-       uint8_t                                                         max_bits_per_min_cu_denom;
-       uint8_t                                                         log2_max_mv_length_horizontal;
-       uint8_t                                                         log2_max_mv_length_vertical;
+       VkStructureType         sType;
+       void*                           pNext;
+       VkSubresourceLayout     subresourceLayout;
 };
 
-struct StdVideoH265PredictorPaletteEntries
+struct VkRenderPassCreationControlEXT
 {
-       uint16_t        PredictorPaletteEntries[STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE][STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE];
+       VkStructureType sType;
+       const void*             pNext;
+       VkBool32                disallowMerging;
 };
 
-struct StdVideoH265SpsFlags
+struct VkRenderPassCreationFeedbackInfoEXT
 {
-       uint32_t        sps_temporal_id_nesting_flag:1;
-       uint32_t        separate_colour_plane_flag:1;
-       uint32_t        scaling_list_enabled_flag:1;
-       uint32_t        sps_scaling_list_data_present_flag:1;
-       uint32_t        amp_enabled_flag:1;
-       uint32_t        sample_adaptive_offset_enabled_flag:1;
-       uint32_t        pcm_enabled_flag:1;
-       uint32_t        pcm_loop_filter_disabled_flag:1;
-       uint32_t        long_term_ref_pics_present_flag:1;
-       uint32_t        sps_temporal_mvp_enabled_flag:1;
-       uint32_t        strong_intra_smoothing_enabled_flag:1;
-       uint32_t        vui_parameters_present_flag:1;
-       uint32_t        sps_extension_present_flag:1;
-       uint32_t        sps_range_extension_flag:1;
-       uint32_t        transform_skip_rotation_enabled_flag:1;
-       uint32_t        transform_skip_context_enabled_flag:1;
-       uint32_t        implicit_rdpcm_enabled_flag:1;
-       uint32_t        explicit_rdpcm_enabled_flag:1;
-       uint32_t        extended_precision_processing_flag:1;
-       uint32_t        intra_smoothing_disabled_flag:1;
-       uint32_t        high_precision_offsets_enabled_flag:1;
-       uint32_t        persistent_rice_adaptation_enabled_flag:1;
-       uint32_t        cabac_bypass_alignment_enabled_flag:1;
-       uint32_t        sps_scc_extension_flag:1;
-       uint32_t        sps_curr_pic_ref_enabled_flag:1;
-       uint32_t        palette_mode_enabled_flag:1;
-       uint32_t        sps_palette_predictor_initializer_present_flag:1;
-       uint32_t        intra_boundary_filtering_disabled_flag:1;
+       uint32_t        postMergeSubpassCount;
 };
 
-struct StdVideoH265SequenceParameterSet
+struct VkRenderPassCreationFeedbackCreateInfoEXT
 {
-       StdVideoH265SpsFlags                                            flags;
-       StdVideoH265ProfileIdc                                          profile_idc;
-       StdVideoH265Level                                                       level_idc;
-       uint32_t                                                                        pic_width_in_luma_samples;
-       uint32_t                                                                        pic_height_in_luma_samples;
-       uint8_t                                                                         sps_video_parameter_set_id;
-       uint8_t                                                                         sps_max_sub_layers_minus1;
-       uint8_t                                                                         sps_seq_parameter_set_id;
-       uint8_t                                                                         chroma_format_idc;
-       uint8_t                                                                         bit_depth_luma_minus8;
-       uint8_t                                                                         bit_depth_chroma_minus8;
-       uint8_t                                                                         log2_max_pic_order_cnt_lsb_minus4;
-       uint8_t                                                                         log2_min_luma_coding_block_size_minus3;
-       uint8_t                                                                         log2_diff_max_min_luma_coding_block_size;
-       uint8_t                                                                         log2_min_luma_transform_block_size_minus2;
-       uint8_t                                                                         log2_diff_max_min_luma_transform_block_size;
-       uint8_t                                                                         max_transform_hierarchy_depth_inter;
-       uint8_t                                                                         max_transform_hierarchy_depth_intra;
-       uint8_t                                                                         num_short_term_ref_pic_sets;
-       uint8_t                                                                         num_long_term_ref_pics_sps;
-       uint8_t                                                                         pcm_sample_bit_depth_luma_minus1;
-       uint8_t                                                                         pcm_sample_bit_depth_chroma_minus1;
-       uint8_t                                                                         log2_min_pcm_luma_coding_block_size_minus3;
-       uint8_t                                                                         log2_diff_max_min_pcm_luma_coding_block_size;
-       uint32_t                                                                        conf_win_left_offset;
-       uint32_t                                                                        conf_win_right_offset;
-       uint32_t                                                                        conf_win_top_offset;
-       uint32_t                                                                        conf_win_bottom_offset;
-       const StdVideoH265DecPicBufMgr*                         pDecPicBufMgr;
-       const StdVideoH265ScalingLists*                         pScalingLists;
-       const StdVideoH265SequenceParameterSetVui*      pSequenceParameterSetVui;
-       uint8_t                                                                         palette_max_size;
-       uint8_t                                                                         delta_palette_max_predictor_size;
-       uint8_t                                                                         motion_vector_resolution_control_idc;
-       uint8_t                                                                         sps_num_palette_predictor_initializer_minus1;
-       const StdVideoH265PredictorPaletteEntries*      pPredictorPaletteEntries;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkRenderPassCreationFeedbackInfoEXT*    pRenderPassFeedback;
 };
 
-struct StdVideoH265PpsFlags
+struct VkRenderPassSubpassFeedbackInfoEXT
 {
-       uint32_t        dependent_slice_segments_enabled_flag:1;
-       uint32_t        output_flag_present_flag:1;
-       uint32_t        sign_data_hiding_enabled_flag:1;
-       uint32_t        cabac_init_present_flag:1;
-       uint32_t        constrained_intra_pred_flag:1;
-       uint32_t        transform_skip_enabled_flag:1;
-       uint32_t        cu_qp_delta_enabled_flag:1;
-       uint32_t        pps_slice_chroma_qp_offsets_present_flag:1;
-       uint32_t        weighted_pred_flag:1;
-       uint32_t        weighted_bipred_flag:1;
-       uint32_t        transquant_bypass_enabled_flag:1;
-       uint32_t        tiles_enabled_flag:1;
-       uint32_t        entropy_coding_sync_enabled_flag:1;
-       uint32_t        uniform_spacing_flag:1;
-       uint32_t        loop_filter_across_tiles_enabled_flag:1;
-       uint32_t        pps_loop_filter_across_slices_enabled_flag:1;
-       uint32_t        deblocking_filter_control_present_flag:1;
-       uint32_t        deblocking_filter_override_enabled_flag:1;
-       uint32_t        pps_deblocking_filter_disabled_flag:1;
-       uint32_t        pps_scaling_list_data_present_flag:1;
-       uint32_t        lists_modification_present_flag:1;
-       uint32_t        slice_segment_header_extension_present_flag:1;
-       uint32_t        pps_extension_present_flag:1;
-       uint32_t        cross_component_prediction_enabled_flag:1;
-       uint32_t        chroma_qp_offset_list_enabled_flag:1;
-       uint32_t        pps_curr_pic_ref_enabled_flag:1;
-       uint32_t        residual_adaptive_colour_transform_enabled_flag:1;
-       uint32_t        pps_slice_act_qp_offsets_present_flag:1;
-       uint32_t        pps_palette_predictor_initializer_present_flag:1;
-       uint32_t        monochrome_palette_flag:1;
-       uint32_t        pps_range_extension_flag:1;
+       VkSubpassMergeStatusEXT subpassMergeStatus;
+       char                                    description[VK_MAX_DESCRIPTION_SIZE];
+       uint32_t                                postMergeIndex;
 };
 
-struct StdVideoH265PictureParameterSet
-{
-       StdVideoH265PpsFlags                                            flags;
-       uint8_t                                                                         pps_pic_parameter_set_id;
-       uint8_t                                                                         pps_seq_parameter_set_id;
-       uint8_t                                                                         num_extra_slice_header_bits;
-       uint8_t                                                                         num_ref_idx_l0_default_active_minus1;
-       uint8_t                                                                         num_ref_idx_l1_default_active_minus1;
-       int8_t                                                                          init_qp_minus26;
-       uint8_t                                                                         diff_cu_qp_delta_depth;
-       int8_t                                                                          pps_cb_qp_offset;
-       int8_t                                                                          pps_cr_qp_offset;
-       uint8_t                                                                         num_tile_columns_minus1;
-       uint8_t                                                                         num_tile_rows_minus1;
-       uint16_t                                                                        column_width_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE];
-       uint16_t                                                                        row_height_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE];
-       int8_t                                                                          pps_beta_offset_div2;
-       int8_t                                                                          pps_tc_offset_div2;
-       uint8_t                                                                         log2_parallel_merge_level_minus2;
-       const StdVideoH265ScalingLists*                         pScalingLists;
-       uint8_t                                                                         log2_max_transform_skip_block_size_minus2;
-       uint8_t                                                                         diff_cu_chroma_qp_offset_depth;
-       uint8_t                                                                         chroma_qp_offset_list_len_minus1;
-       int8_t                                                                          cb_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE];
-       int8_t                                                                          cr_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE];
-       uint8_t                                                                         log2_sao_offset_scale_luma;
-       uint8_t                                                                         log2_sao_offset_scale_chroma;
-       int8_t                                                                          pps_act_y_qp_offset_plus5;
-       int8_t                                                                          pps_act_cb_qp_offset_plus5;
-       int8_t                                                                          pps_act_cr_qp_offset_plus5;
-       uint8_t                                                                         pps_num_palette_predictor_initializer;
-       uint8_t                                                                         luma_bit_depth_entry_minus8;
-       uint8_t                                                                         chroma_bit_depth_entry_minus8;
-       const StdVideoH265PredictorPaletteEntries*      pPredictorPaletteEntries;
+struct VkRenderPassSubpassFeedbackCreateInfoEXT
+{
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkRenderPassSubpassFeedbackInfoEXT*     pSubpassFeedback;
 };
 
-struct StdVideoEncodeH265WeightTableFlags
+struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT
 {
-       uint16_t        luma_weight_l0_flag;
-       uint16_t        chroma_weight_l0_flag;
-       uint16_t        luma_weight_l1_flag;
-       uint16_t        chroma_weight_l1_flag;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                subpassMergeFeedback;
 };
 
-struct StdVideoEncodeH265WeightTable
+struct VkPipelinePropertiesIdentifierEXT
 {
-       StdVideoEncodeH265WeightTableFlags      flags;
-       uint8_t                                                         luma_log2_weight_denom;
-       int8_t                                                          delta_chroma_log2_weight_denom;
-       int8_t                                                          delta_luma_weight_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF];
-       int8_t                                                          luma_offset_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF];
-       int8_t                                                          delta_chroma_weight_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES];
-       int8_t                                                          delta_chroma_offset_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES];
-       int8_t                                                          delta_luma_weight_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF];
-       int8_t                                                          luma_offset_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF];
-       int8_t                                                          delta_chroma_weight_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES];
-       int8_t                                                          delta_chroma_offset_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES];
+       VkStructureType sType;
+       void*                   pNext;
+       uint8_t                 pipelineIdentifier[VK_UUID_SIZE];
 };
 
-struct StdVideoEncodeH265SliceSegmentHeaderFlags
+struct VkPhysicalDevicePipelinePropertiesFeaturesEXT
 {
-       uint32_t        first_slice_segment_in_pic_flag:1;
-       uint32_t        no_output_of_prior_pics_flag:1;
-       uint32_t        dependent_slice_segment_flag:1;
-       uint32_t        pic_output_flag:1;
-       uint32_t        short_term_ref_pic_set_sps_flag:1;
-       uint32_t        slice_temporal_mvp_enable_flag:1;
-       uint32_t        slice_sao_luma_flag:1;
-       uint32_t        slice_sao_chroma_flag:1;
-       uint32_t        num_ref_idx_active_override_flag:1;
-       uint32_t        mvd_l1_zero_flag:1;
-       uint32_t        cabac_init_flag:1;
-       uint32_t        slice_deblocking_filter_disable_flag:1;
-       uint32_t        collocated_from_l0_flag:1;
-       uint32_t        slice_loop_filter_across_slices_enabled_flag:1;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                pipelinePropertiesIdentifier;
 };
 
-struct StdVideoEncodeH265SliceSegmentHeader
+struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD
 {
-       StdVideoEncodeH265SliceSegmentHeaderFlags       flags;
-       StdVideoH265SliceType                                           slice_type;
-       uint8_t                                                                         num_short_term_ref_pic_sets;
-       uint32_t                                                                        slice_segment_address;
-       uint8_t                                                                         short_term_ref_pic_set_idx;
-       uint8_t                                                                         num_long_term_sps;
-       uint8_t                                                                         num_long_term_pics;
-       uint8_t                                                                         collocated_ref_idx;
-       uint8_t                                                                         num_ref_idx_l0_active_minus1;
-       uint8_t                                                                         num_ref_idx_l1_active_minus1;
-       uint8_t                                                                         MaxNumMergeCand;
-       int8_t                                                                          slice_cb_qp_offset;
-       int8_t                                                                          slice_cr_qp_offset;
-       int8_t                                                                          slice_beta_offset_div2;
-       int8_t                                                                          slice_tc_offset_div2;
-       int8_t                                                                          slice_act_y_qp_offset;
-       int8_t                                                                          slice_act_cb_qp_offset;
-       int8_t                                                                          slice_act_cr_qp_offset;
-       const StdVideoEncodeH265WeightTable*            pWeightTable;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                shaderEarlyAndLateFragmentTests;
 };
 
-struct StdVideoEncodeH265ReferenceModificationFlags
+struct VkExportMetalObjectCreateInfoEXT
 {
-       uint32_t        ref_pic_list_modification_flag_l0:1;
-       uint32_t        ref_pic_list_modification_flag_l1:1;
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       VkExportMetalObjectTypeFlagBitsEXT      exportObjectType;
 };
 
-struct StdVideoEncodeH265ReferenceModifications
+struct VkExportMetalObjectsInfoEXT
 {
-       StdVideoEncodeH265ReferenceModificationFlags    flags;
-       uint8_t                                                                                 referenceList0ModificationsCount;
-       const uint8_t*                                                                  pReferenceList0Modifications;
-       uint8_t                                                                                 referenceList1ModificationsCount;
-       const uint8_t*                                                                  pReferenceList1Modifications;
+       VkStructureType sType;
+       const void*             pNext;
 };
 
-struct StdVideoEncodeH265PictureInfoFlags
+struct VkExportMetalDeviceInfoEXT
 {
-       uint32_t        is_reference_flag:1;
-       uint32_t        IrapPicFlag:1;
-       uint32_t        long_term_flag:1;
-       uint32_t        discardable_flag:1;
-       uint32_t        cross_layer_bla_flag:1;
+       VkStructureType         sType;
+       const void*                     pNext;
+       pt::MTLDevice_id        mtlDevice;
 };
 
-struct StdVideoEncodeH265PictureInfo
+struct VkExportMetalCommandQueueInfoEXT
 {
-       StdVideoEncodeH265PictureInfoFlags      flags;
-       StdVideoH265PictureType                         PictureType;
-       uint8_t                                                         sps_video_parameter_set_id;
-       uint8_t                                                         pps_seq_parameter_set_id;
-       uint8_t                                                         pps_pic_parameter_set_id;
-       int32_t                                                         PicOrderCntVal;
-       uint8_t                                                         TemporalId;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkQueue                                 queue;
+       pt::MTLCommandQueue_id  mtlCommandQueue;
 };
 
-struct StdVideoEncodeH265ReferenceInfoFlags
+struct VkExportMetalBufferInfoEXT
 {
-       uint32_t        used_for_long_term_reference:1;
-       uint32_t        unused_for_reference:1;
+       VkStructureType         sType;
+       const void*                     pNext;
+       VkDeviceMemory          memory;
+       pt::MTLBuffer_id        mtlBuffer;
 };
 
-struct StdVideoEncodeH265ReferenceInfo
+struct VkImportMetalBufferInfoEXT
 {
-       StdVideoEncodeH265ReferenceInfoFlags    flags;
-       int32_t                                                                 PicOrderCntVal;
-       uint8_t                                                                 TemporalId;
+       VkStructureType         sType;
+       const void*                     pNext;
+       pt::MTLBuffer_id        mtlBuffer;
 };
 
-struct VkVideoEncodeH265CapabilitiesEXT
+struct VkExportMetalTextureInfoEXT
 {
-       VkStructureType                                                         sType;
-       void*                                                                           pNext;
-       VkVideoEncodeH265CapabilityFlagsEXT                     flags;
-       VkVideoEncodeH265InputModeFlagsEXT                      inputModeFlags;
-       VkVideoEncodeH265OutputModeFlagsEXT                     outputModeFlags;
-       VkVideoEncodeH265CtbSizeFlagsEXT                        ctbSizes;
-       VkVideoEncodeH265TransformBlockSizeFlagsEXT     transformBlockSizes;
-       uint8_t                                                                         maxPPictureL0ReferenceCount;
-       uint8_t                                                                         maxBPictureL0ReferenceCount;
-       uint8_t                                                                         maxL1ReferenceCount;
-       uint8_t                                                                         maxSubLayersCount;
-       uint8_t                                                                         minLog2MinLumaCodingBlockSizeMinus3;
-       uint8_t                                                                         maxLog2MinLumaCodingBlockSizeMinus3;
-       uint8_t                                                                         minLog2MinLumaTransformBlockSizeMinus2;
-       uint8_t                                                                         maxLog2MinLumaTransformBlockSizeMinus2;
-       uint8_t                                                                         minMaxTransformHierarchyDepthInter;
-       uint8_t                                                                         maxMaxTransformHierarchyDepthInter;
-       uint8_t                                                                         minMaxTransformHierarchyDepthIntra;
-       uint8_t                                                                         maxMaxTransformHierarchyDepthIntra;
-       uint8_t                                                                         maxDiffCuQpDeltaDepth;
-       uint8_t                                                                         minMaxNumMergeCand;
-       uint8_t                                                                         maxMaxNumMergeCand;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkImage                                 image;
+       VkImageView                             imageView;
+       VkBufferView                    bufferView;
+       VkImageAspectFlagBits   plane;
+       pt::MTLTexture_id               mtlTexture;
 };
 
-struct VkVideoEncodeH265SessionParametersAddInfoEXT
+struct VkImportMetalTextureInfoEXT
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       uint32_t                                                                vpsStdCount;
-       const StdVideoH265VideoParameterSet*    pVpsStd;
-       uint32_t                                                                spsStdCount;
-       const StdVideoH265SequenceParameterSet* pSpsStd;
-       uint32_t                                                                ppsStdCount;
-       const StdVideoH265PictureParameterSet*  pPpsStd;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkImageAspectFlagBits   plane;
+       pt::MTLTexture_id               mtlTexture;
 };
 
-struct VkVideoEncodeH265SessionParametersCreateInfoEXT
+struct VkExportMetalIOSurfaceInfoEXT
 {
-       VkStructureType                                                                         sType;
-       const void*                                                                                     pNext;
-       uint32_t                                                                                        maxVpsStdCount;
-       uint32_t                                                                                        maxSpsStdCount;
-       uint32_t                                                                                        maxPpsStdCount;
-       const VkVideoEncodeH265SessionParametersAddInfoEXT*     pParametersAddInfo;
+       VkStructureType         sType;
+       const void*                     pNext;
+       VkImage                         image;
+       pt::IOSurfaceRef        ioSurface;
 };
 
-struct VkVideoEncodeH265DpbSlotInfoEXT
+struct VkImportMetalIOSurfaceInfoEXT
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       int8_t                                                                  slotIndex;
-       const StdVideoEncodeH265ReferenceInfo*  pStdReferenceInfo;
+       VkStructureType         sType;
+       const void*                     pNext;
+       pt::IOSurfaceRef        ioSurface;
 };
 
-struct VkVideoEncodeH265ReferenceListsEXT
+struct VkExportMetalSharedEventInfoEXT
 {
-       VkStructureType                                                                 sType;
-       const void*                                                                             pNext;
-       uint8_t                                                                                 referenceList0EntryCount;
-       const VkVideoEncodeH265DpbSlotInfoEXT*                  pReferenceList0Entries;
-       uint8_t                                                                                 referenceList1EntryCount;
-       const VkVideoEncodeH265DpbSlotInfoEXT*                  pReferenceList1Entries;
-       const StdVideoEncodeH265ReferenceModifications* pReferenceModifications;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       VkSemaphore                             semaphore;
+       VkEvent                                 event;
+       pt::MTLSharedEvent_id   mtlSharedEvent;
 };
 
-struct VkVideoEncodeH265NaluSliceSegmentEXT
+struct VkImportMetalSharedEventInfoEXT
 {
-       VkStructureType                                                         sType;
-       const void*                                                                     pNext;
-       uint32_t                                                                        ctbCount;
-       const VkVideoEncodeH265ReferenceListsEXT*       pReferenceFinalLists;
-       const StdVideoEncodeH265SliceSegmentHeader*     pSliceSegmentHeaderStd;
+       VkStructureType                 sType;
+       const void*                             pNext;
+       pt::MTLSharedEvent_id   mtlSharedEvent;
 };
 
-struct VkVideoEncodeH265VclFrameInfoEXT
+struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT
 {
-       VkStructureType                                                         sType;
-       const void*                                                                     pNext;
-       const VkVideoEncodeH265ReferenceListsEXT*       pReferenceFinalLists;
-       uint32_t                                                                        naluSliceSegmentEntryCount;
-       const VkVideoEncodeH265NaluSliceSegmentEXT*     pNaluSliceSegmentEntries;
-       const StdVideoEncodeH265PictureInfo*            pCurrentPictureInfo;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                nonSeamlessCubeMap;
+};
+
+struct VkPhysicalDevicePipelineRobustnessFeaturesEXT
+{
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                pipelineRobustness;
+};
+
+struct VkPipelineRobustnessCreateInfoEXT
+{
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       VkPipelineRobustnessBufferBehaviorEXT   storageBuffers;
+       VkPipelineRobustnessBufferBehaviorEXT   uniformBuffers;
+       VkPipelineRobustnessBufferBehaviorEXT   vertexInputs;
+       VkPipelineRobustnessImageBehaviorEXT    images;
+};
+
+struct VkPhysicalDevicePipelineRobustnessPropertiesEXT
+{
+       VkStructureType                                                 sType;
+       void*                                                                   pNext;
+       VkPipelineRobustnessBufferBehaviorEXT   defaultRobustnessStorageBuffers;
+       VkPipelineRobustnessBufferBehaviorEXT   defaultRobustnessUniformBuffers;
+       VkPipelineRobustnessBufferBehaviorEXT   defaultRobustnessVertexInputs;
+       VkPipelineRobustnessImageBehaviorEXT    defaultRobustnessImages;
 };
 
-struct VkVideoEncodeH265EmitPictureParametersEXT
+struct VkImageViewSampleWeightCreateInfoQCOM
 {
        VkStructureType sType;
        const void*             pNext;
-       uint8_t                 vpsId;
-       uint8_t                 spsId;
-       VkBool32                emitVpsEnable;
-       VkBool32                emitSpsEnable;
-       uint32_t                ppsIdEntryCount;
-       const uint8_t*  ppsIdEntries;
+       VkOffset2D              filterCenter;
+       VkExtent2D              filterSize;
+       uint32_t                numPhases;
 };
 
-struct VkVideoEncodeH265ProfileEXT
+struct VkPhysicalDeviceImageProcessingFeaturesQCOM
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       StdVideoH265ProfileIdc  stdProfileIdc;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                textureSampleWeighted;
+       VkBool32                textureBoxFilter;
+       VkBool32                textureBlockMatch;
 };
 
-struct VkVideoEncodeH265RateControlInfoEXT
+struct VkPhysicalDeviceImageProcessingPropertiesQCOM
 {
-       VkStructureType                                                                         sType;
-       const void*                                                                                     pNext;
-       uint32_t                                                                                        gopFrameCount;
-       uint32_t                                                                                        idrPeriod;
-       uint32_t                                                                                        consecutiveBFrameCount;
-       VkVideoEncodeH265RateControlStructureFlagBitsEXT        rateControlStructure;
-       uint8_t                                                                                         subLayerCount;
+       VkStructureType sType;
+       void*                   pNext;
+       uint32_t                maxWeightFilterPhases;
+       VkExtent2D              maxWeightFilterDimension;
+       VkExtent2D              maxBlockMatchRegion;
+       VkExtent2D              maxBoxFilterBlockSize;
 };
 
-struct VkVideoEncodeH265QpEXT
+struct VkPhysicalDeviceTilePropertiesFeaturesQCOM
 {
-       int32_t qpI;
-       int32_t qpP;
-       int32_t qpB;
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                tileProperties;
 };
 
-struct VkVideoEncodeH265FrameSizeEXT
+struct VkTilePropertiesQCOM
 {
-       uint32_t        frameISize;
-       uint32_t        framePSize;
-       uint32_t        frameBSize;
+       VkStructureType sType;
+       void*                   pNext;
+       VkExtent3D              tileSize;
+       VkExtent2D              apronSize;
+       VkOffset2D              origin;
 };
 
-struct VkVideoEncodeH265RateControlLayerInfoEXT
+struct StdVideoH264SpsVuiFlags
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       uint8_t                                                 temporalId;
-       VkBool32                                                useInitialRcQp;
-       VkVideoEncodeH265QpEXT                  initialRcQp;
-       VkBool32                                                useMinQp;
-       VkVideoEncodeH265QpEXT                  minQp;
-       VkBool32                                                useMaxQp;
-       VkVideoEncodeH265QpEXT                  maxQp;
-       VkBool32                                                useMaxFrameSize;
-       VkVideoEncodeH265FrameSizeEXT   maxFrameSize;
+       uint32_t        aspect_ratio_info_present_flag:1;
+       uint32_t        overscan_info_present_flag:1;
+       uint32_t        overscan_appropriate_flag:1;
+       uint32_t        video_signal_type_present_flag:1;
+       uint32_t        video_full_range_flag:1;
+       uint32_t        color_description_present_flag:1;
+       uint32_t        chroma_loc_info_present_flag:1;
+       uint32_t        timing_info_present_flag:1;
+       uint32_t        fixed_frame_rate_flag:1;
+       uint32_t        bitstream_restriction_flag:1;
+       uint32_t        nal_hrd_parameters_present_flag:1;
+       uint32_t        vcl_hrd_parameters_present_flag:1;
 };
 
-struct StdVideoDecodeH264PictureInfoFlags
+struct StdVideoH264HrdParameters
 {
-       uint32_t        field_pic_flag:1;
-       uint32_t        is_intra:1;
-       uint32_t        IdrPicFlag:1;
-       uint32_t        bottom_field_flag:1;
-       uint32_t        is_reference:1;
-       uint32_t        complementary_field_pair:1;
+       uint8_t         cpb_cnt_minus1;
+       uint8_t         bit_rate_scale;
+       uint8_t         cpb_size_scale;
+       uint32_t        bit_rate_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE];
+       uint32_t        cpb_size_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE];
+       uint8_t         cbr_flag[STD_VIDEO_H264_CPB_CNT_LIST_SIZE];
+       uint32_t        initial_cpb_removal_delay_length_minus1;
+       uint32_t        cpb_removal_delay_length_minus1;
+       uint32_t        dpb_output_delay_length_minus1;
+       uint32_t        time_offset_length;
 };
 
-struct StdVideoDecodeH264PictureInfo
+struct StdVideoH264SequenceParameterSetVui
 {
-       StdVideoDecodeH264PictureInfoFlags      flags;
-       uint8_t                                                         seq_parameter_set_id;
-       uint8_t                                                         pic_parameter_set_id;
-       uint16_t                                                        reserved;
-       uint16_t                                                        frame_num;
-       uint16_t                                                        idr_pic_id;
-       int32_t                                                         PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE];
+       StdVideoH264SpsVuiFlags                         flags;
+       StdVideoH264AspectRatioIdc                      aspect_ratio_idc;
+       uint16_t                                                        sar_width;
+       uint16_t                                                        sar_height;
+       uint8_t                                                         video_format;
+       uint8_t                                                         color_primaries;
+       uint8_t                                                         transfer_characteristics;
+       uint8_t                                                         matrix_coefficients;
+       uint32_t                                                        num_units_in_tick;
+       uint32_t                                                        time_scale;
+       const StdVideoH264HrdParameters*        pHrdParameters;
+       uint8_t                                                         max_num_reorder_frames;
+       uint8_t                                                         max_dec_frame_buffering;
 };
 
-struct StdVideoDecodeH264ReferenceInfoFlags
+struct StdVideoH264SpsFlags
 {
-       uint32_t        top_field_flag:1;
-       uint32_t        bottom_field_flag:1;
-       uint32_t        used_for_long_term_reference:1;
-       uint32_t        is_non_existing:1;
+       uint32_t        constraint_set0_flag:1;
+       uint32_t        constraint_set1_flag:1;
+       uint32_t        constraint_set2_flag:1;
+       uint32_t        constraint_set3_flag:1;
+       uint32_t        constraint_set4_flag:1;
+       uint32_t        constraint_set5_flag:1;
+       uint32_t        direct_8x8_inference_flag:1;
+       uint32_t        mb_adaptive_frame_field_flag:1;
+       uint32_t        frame_mbs_only_flag:1;
+       uint32_t        delta_pic_order_always_zero_flag:1;
+       uint32_t        separate_colour_plane_flag:1;
+       uint32_t        gaps_in_frame_num_value_allowed_flag:1;
+       uint32_t        qpprime_y_zero_transform_bypass_flag:1;
+       uint32_t        frame_cropping_flag:1;
+       uint32_t        seq_scaling_matrix_present_flag:1;
+       uint32_t        vui_parameters_present_flag:1;
 };
 
-struct StdVideoDecodeH264ReferenceInfo
+struct StdVideoH264ScalingLists
 {
-       StdVideoDecodeH264ReferenceInfoFlags    flags;
-       uint16_t                                                                FrameNum;
-       uint16_t                                                                reserved;
-       int32_t                                                                 PicOrderCnt[2];
+       uint8_t scaling_list_present_mask;
+       uint8_t use_default_scaling_matrix_mask;
+       uint8_t ScalingList4x4[STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS][STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS];
+       uint8_t ScalingList8x8[STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS][STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS];
 };
 
-struct StdVideoDecodeH264MvcElementFlags
+struct StdVideoH264SequenceParameterSet
 {
-       uint32_t        non_idr:1;
-       uint32_t        anchor_pic:1;
-       uint32_t        inter_view:1;
+       StdVideoH264SpsFlags                                            flags;
+       StdVideoH264ProfileIdc                                          profile_idc;
+       StdVideoH264Level                                                       level_idc;
+       uint8_t                                                                         seq_parameter_set_id;
+       StdVideoH264ChromaFormatIdc                                     chroma_format_idc;
+       uint8_t                                                                         bit_depth_luma_minus8;
+       uint8_t                                                                         bit_depth_chroma_minus8;
+       uint8_t                                                                         log2_max_frame_num_minus4;
+       StdVideoH264PocType                                                     pic_order_cnt_type;
+       uint8_t                                                                         log2_max_pic_order_cnt_lsb_minus4;
+       int32_t                                                                         offset_for_non_ref_pic;
+       int32_t                                                                         offset_for_top_to_bottom_field;
+       uint8_t                                                                         num_ref_frames_in_pic_order_cnt_cycle;
+       uint8_t                                                                         max_num_ref_frames;
+       uint32_t                                                                        pic_width_in_mbs_minus1;
+       uint32_t                                                                        pic_height_in_map_units_minus1;
+       uint32_t                                                                        frame_crop_left_offset;
+       uint32_t                                                                        frame_crop_right_offset;
+       uint32_t                                                                        frame_crop_top_offset;
+       uint32_t                                                                        frame_crop_bottom_offset;
+       const int32_t*                                                          pOffsetForRefFrame;
+       const StdVideoH264ScalingLists*                         pScalingLists;
+       const StdVideoH264SequenceParameterSetVui*      pSequenceParameterSetVui;
 };
 
-struct StdVideoDecodeH264MvcElement
+struct StdVideoH264PpsFlags
 {
-       StdVideoDecodeH264MvcElementFlags       flags;
-       uint16_t                                                        viewOrderIndex;
-       uint16_t                                                        viewId;
-       uint16_t                                                        temporalId;
-       uint16_t                                                        priorityId;
-       uint16_t                                                        numOfAnchorRefsInL0;
-       uint16_t                                                        viewIdOfAnchorRefsInL0[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
-       uint16_t                                                        numOfAnchorRefsInL1;
-       uint16_t                                                        viewIdOfAnchorRefsInL1[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
-       uint16_t                                                        numOfNonAnchorRefsInL0;
-       uint16_t                                                        viewIdOfNonAnchorRefsInL0[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
-       uint16_t                                                        numOfNonAnchorRefsInL1;
-       uint16_t                                                        viewIdOfNonAnchorRefsInL1[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
+       uint32_t        transform_8x8_mode_flag:1;
+       uint32_t        redundant_pic_cnt_present_flag:1;
+       uint32_t        constrained_intra_pred_flag:1;
+       uint32_t        deblocking_filter_control_present_flag:1;
+       uint32_t        weighted_bipred_idc_flag:1;
+       uint32_t        weighted_pred_flag:1;
+       uint32_t        pic_order_present_flag:1;
+       uint32_t        entropy_coding_mode_flag:1;
+       uint32_t        pic_scaling_matrix_present_flag:1;
 };
 
-struct StdVideoDecodeH264Mvc
+struct StdVideoH264PictureParameterSet
 {
-       uint32_t                                                        viewId0;
-       uint32_t                                                        mvcElementCount;
-       const StdVideoDecodeH264MvcElement*     pMvcElements;
+       StdVideoH264PpsFlags                    flags;
+       uint8_t                                                 seq_parameter_set_id;
+       uint8_t                                                 pic_parameter_set_id;
+       uint8_t                                                 num_ref_idx_l0_default_active_minus1;
+       uint8_t                                                 num_ref_idx_l1_default_active_minus1;
+       StdVideoH264WeightedBipredIdc   weighted_bipred_idc;
+       int8_t                                                  pic_init_qp_minus26;
+       int8_t                                                  pic_init_qs_minus26;
+       int8_t                                                  chroma_qp_index_offset;
+       int8_t                                                  second_chroma_qp_index_offset;
+       const StdVideoH264ScalingLists* pScalingLists;
 };
 
-struct VkVideoDecodeH264ProfileEXT
+struct VkVideoDecodeH264SessionParametersAddInfoEXT
 {
        VkStructureType                                                 sType;
        const void*                                                             pNext;
-       StdVideoH264ProfileIdc                                  stdProfileIdc;
-       VkVideoDecodeH264PictureLayoutFlagsEXT  pictureLayout;
-};
-
-struct VkVideoDecodeH264CapabilitiesEXT
-{
-       VkStructureType         sType;
-       void*                           pNext;
-       StdVideoH264Level       maxLevel;
-       VkOffset2D                      fieldOffsetGranularity;
+       uint32_t                                                                spsStdCount;
+       const StdVideoH264SequenceParameterSet* pSpsStd;
+       uint32_t                                                                ppsStdCount;
+       const StdVideoH264PictureParameterSet*  pPpsStd;
 };
 
-struct VkVideoDecodeH264SessionParametersAddInfoEXT
+struct VkVideoEncodeH264SessionParametersAddInfoEXT
 {
        VkStructureType                                                 sType;
        const void*                                                             pNext;
@@ -7653,13 +7490,43 @@ struct VkVideoDecodeH264SessionParametersAddInfoEXT
        const StdVideoH264PictureParameterSet*  pPpsStd;
 };
 
+struct StdVideoDecodeH264PictureInfoFlags
+{
+       uint32_t        field_pic_flag:1;
+       uint32_t        is_intra:1;
+       uint32_t        IdrPicFlag:1;
+       uint32_t        bottom_field_flag:1;
+       uint32_t        is_reference:1;
+       uint32_t        complementary_field_pair:1;
+};
+
 struct VkVideoDecodeH264SessionParametersCreateInfoEXT
 {
        VkStructureType                                                                         sType;
        const void*                                                                                     pNext;
        uint32_t                                                                                        maxSpsStdCount;
        uint32_t                                                                                        maxPpsStdCount;
-       const VkVideoDecodeH264SessionParametersAddInfoEXT*     pParametersAddInfo;
+       const VkVideoDecodeH264SessionParametersAddInfoEXT*     pParametersAddInfo;
+};
+
+struct VkVideoEncodeH264SessionParametersCreateInfoEXT
+{
+       VkStructureType                                                                         sType;
+       const void*                                                                                     pNext;
+       uint32_t                                                                                        maxSpsStdCount;
+       uint32_t                                                                                        maxPpsStdCount;
+       const VkVideoEncodeH264SessionParametersAddInfoEXT*     pParametersAddInfo;
+};
+
+struct StdVideoDecodeH264PictureInfo
+{
+       StdVideoDecodeH264PictureInfoFlags      flags;
+       uint8_t                                                         seq_parameter_set_id;
+       uint8_t                                                         pic_parameter_set_id;
+       uint16_t                                                        reserved;
+       uint16_t                                                        frame_num;
+       uint16_t                                                        idr_pic_id;
+       int32_t                                                         PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE];
 };
 
 struct VkVideoDecodeH264PictureInfoEXT
@@ -7671,11 +7538,20 @@ struct VkVideoDecodeH264PictureInfoEXT
        const uint32_t*                                                 pSlicesDataOffsets;
 };
 
-struct VkVideoDecodeH264MvcEXT
+struct StdVideoDecodeH264ReferenceInfoFlags
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       const StdVideoDecodeH264Mvc*    pStdMvc;
+       uint32_t        top_field_flag:1;
+       uint32_t        bottom_field_flag:1;
+       uint32_t        used_for_long_term_reference:1;
+       uint32_t        is_non_existing:1;
+};
+
+struct StdVideoDecodeH264ReferenceInfo
+{
+       StdVideoDecodeH264ReferenceInfoFlags    flags;
+       uint16_t                                                                FrameNum;
+       uint16_t                                                                reserved;
+       int32_t                                                                 PicOrderCnt[2];
 };
 
 struct VkVideoDecodeH264DpbSlotInfoEXT
@@ -7685,654 +7561,843 @@ struct VkVideoDecodeH264DpbSlotInfoEXT
        const StdVideoDecodeH264ReferenceInfo*  pStdReferenceInfo;
 };
 
-struct StdVideoDecodeH265PictureInfoFlags
+struct StdVideoDecodeH264MvcElementFlags
 {
-       uint32_t        IrapPicFlag:1;
-       uint32_t        IdrPicFlag:1;
-       uint32_t        IsReference:1;
-       uint32_t        short_term_ref_pic_set_sps_flag:1;
+       uint32_t        non_idr:1;
+       uint32_t        anchor_pic:1;
+       uint32_t        inter_view:1;
 };
 
-struct StdVideoDecodeH265PictureInfo
+struct StdVideoDecodeH264MvcElement
 {
-       StdVideoDecodeH265PictureInfoFlags      flags;
-       uint8_t                                                         sps_video_parameter_set_id;
-       uint8_t                                                         pps_seq_parameter_set_id;
-       uint8_t                                                         pps_pic_parameter_set_id;
-       uint8_t                                                         num_short_term_ref_pic_sets;
-       int32_t                                                         PicOrderCntVal;
-       uint16_t                                                        NumBitsForSTRefPicSetInSlice;
-       uint8_t                                                         NumDeltaPocsOfRefRpsIdx;
-       uint8_t                                                         RefPicSetStCurrBefore[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE];
-       uint8_t                                                         RefPicSetStCurrAfter[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE];
-       uint8_t                                                         RefPicSetLtCurr[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE];
+       StdVideoDecodeH264MvcElementFlags       flags;
+       uint16_t                                                        viewOrderIndex;
+       uint16_t                                                        viewId;
+       uint16_t                                                        temporalId;
+       uint16_t                                                        priorityId;
+       uint16_t                                                        numOfAnchorRefsInL0;
+       uint16_t                                                        viewIdOfAnchorRefsInL0[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
+       uint16_t                                                        numOfAnchorRefsInL1;
+       uint16_t                                                        viewIdOfAnchorRefsInL1[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
+       uint16_t                                                        numOfNonAnchorRefsInL0;
+       uint16_t                                                        viewIdOfNonAnchorRefsInL0[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
+       uint16_t                                                        numOfNonAnchorRefsInL1;
+       uint16_t                                                        viewIdOfNonAnchorRefsInL1[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
 };
 
-struct StdVideoDecodeH265ReferenceInfoFlags
+struct StdVideoDecodeH264Mvc
 {
-       uint32_t        used_for_long_term_reference:1;
-       uint32_t        unused_for_reference:1;
-       uint32_t        is_non_existing:1;
+       uint32_t                                                        viewId0;
+       uint32_t                                                        mvcElementCount;
+       const StdVideoDecodeH264MvcElement*     pMvcElements;
 };
 
-struct StdVideoDecodeH265ReferenceInfo
+struct VkVideoDecodeH264MvcEXT
 {
-       StdVideoDecodeH265ReferenceInfoFlags    flags;
-       int32_t                                                                 PicOrderCntVal;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       const StdVideoDecodeH264Mvc*    pStdMvc;
 };
 
-struct VkVideoDecodeH265ProfileEXT
+struct StdVideoEncodeH264WeightTableFlags
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       StdVideoH265ProfileIdc  stdProfileIdc;
+       uint32_t        luma_weight_l0_flag;
+       uint32_t        chroma_weight_l0_flag;
+       uint32_t        luma_weight_l1_flag;
+       uint32_t        chroma_weight_l1_flag;
 };
 
-struct VkVideoDecodeH265CapabilitiesEXT
+struct StdVideoEncodeH264WeightTable
 {
-       VkStructureType         sType;
-       void*                           pNext;
-       StdVideoH265Level       maxLevel;
+       StdVideoEncodeH264WeightTableFlags      flags;
+       uint8_t                                                         luma_log2_weight_denom;
+       uint8_t                                                         chroma_log2_weight_denom;
+       int8_t                                                          luma_weight_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF];
+       int8_t                                                          luma_offset_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF];
+       int8_t                                                          chroma_weight_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES];
+       int8_t                                                          chroma_offset_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES];
+       int8_t                                                          luma_weight_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF];
+       int8_t                                                          luma_offset_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF];
+       int8_t                                                          chroma_weight_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES];
+       int8_t                                                          chroma_offset_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES];
 };
 
-struct VkVideoDecodeH265SessionParametersAddInfoEXT
+struct StdVideoEncodeH264SliceHeaderFlags
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       uint32_t                                                                vpsStdCount;
-       const StdVideoH265VideoParameterSet*    pVpsStd;
-       uint32_t                                                                spsStdCount;
-       const StdVideoH265SequenceParameterSet* pSpsStd;
-       uint32_t                                                                ppsStdCount;
-       const StdVideoH265PictureParameterSet*  pPpsStd;
+       uint32_t        direct_spatial_mv_pred_flag:1;
+       uint32_t        num_ref_idx_active_override_flag:1;
+       uint32_t        no_output_of_prior_pics_flag:1;
+       uint32_t        adaptive_ref_pic_marking_mode_flag:1;
+       uint32_t        no_prior_references_available_flag:1;
 };
 
-struct VkVideoDecodeH265SessionParametersCreateInfoEXT
+struct StdVideoEncodeH264PictureInfoFlags
 {
-       VkStructureType                                                                         sType;
-       const void*                                                                                     pNext;
-       uint32_t                                                                                        maxVpsStdCount;
-       uint32_t                                                                                        maxSpsStdCount;
-       uint32_t                                                                                        maxPpsStdCount;
-       const VkVideoDecodeH265SessionParametersAddInfoEXT*     pParametersAddInfo;
+       uint32_t        idr_flag:1;
+       uint32_t        is_reference_flag:1;
+       uint32_t        used_for_long_term_reference:1;
 };
 
-struct VkVideoDecodeH265PictureInfoEXT
+struct StdVideoEncodeH264ReferenceInfoFlags
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       StdVideoDecodeH265PictureInfo*  pStdPictureInfo;
-       uint32_t                                                slicesCount;
-       const uint32_t*                                 pSlicesDataOffsets;
+       uint32_t        used_for_long_term_reference:1;
 };
 
-struct VkVideoDecodeH265DpbSlotInfoEXT
+struct StdVideoEncodeH264RefMgmtFlags
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       const StdVideoDecodeH265ReferenceInfo*  pStdReferenceInfo;
+       uint32_t        ref_pic_list_modification_l0_flag:1;
+       uint32_t        ref_pic_list_modification_l1_flag:1;
 };
 
-struct VkImagePipeSurfaceCreateInfoFUCHSIA
+struct StdVideoEncodeH264RefListModEntry
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkImagePipeSurfaceCreateFlagsFUCHSIA    flags;
-       pt::zx_handle_t                                                 imagePipeHandle;
+       StdVideoH264ModificationOfPicNumsIdc    modification_of_pic_nums_idc;
+       uint16_t                                                                abs_diff_pic_num_minus1;
+       uint16_t                                                                long_term_pic_num;
 };
 
-struct VkImportMemoryZirconHandleInfoFUCHSIA
+struct StdVideoEncodeH264RefPicMarkingEntry
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkExternalMemoryHandleTypeFlagBits      handleType;
-       pt::zx_handle_t                                         handle;
+       StdVideoH264MemMgmtControlOp    operation;
+       uint16_t                                                difference_of_pic_nums_minus1;
+       uint16_t                                                long_term_pic_num;
+       uint16_t                                                long_term_frame_idx;
+       uint16_t                                                max_long_term_frame_idx_plus1;
 };
 
-struct VkMemoryZirconHandlePropertiesFUCHSIA
+struct StdVideoEncodeH264RefMemMgmtCtrlOperations
 {
-       VkStructureType sType;
-       void*                   pNext;
-       uint32_t                memoryTypeBits;
+       StdVideoEncodeH264RefMgmtFlags                          flags;
+       uint8_t                                                                         refList0ModOpCount;
+       const StdVideoEncodeH264RefListModEntry*        pRefList0ModOperations;
+       uint8_t                                                                         refList1ModOpCount;
+       const StdVideoEncodeH264RefListModEntry*        pRefList1ModOperations;
+       uint8_t                                                                         refPicMarkingOpCount;
+       const StdVideoEncodeH264RefPicMarkingEntry*     pRefPicMarkingOperations;
 };
 
-struct VkMemoryGetZirconHandleInfoFUCHSIA
+struct StdVideoEncodeH264PictureInfo
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkDeviceMemory                                          memory;
-       VkExternalMemoryHandleTypeFlagBits      handleType;
+       StdVideoEncodeH264PictureInfoFlags      flags;
+       uint8_t                                                         seq_parameter_set_id;
+       uint8_t                                                         pic_parameter_set_id;
+       StdVideoH264PictureType                         pictureType;
+       uint32_t                                                        frame_num;
+       int32_t                                                         PicOrderCnt;
 };
 
-struct VkImportSemaphoreZirconHandleInfoFUCHSIA
+struct StdVideoEncodeH264ReferenceInfo
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkSemaphore                                                             semaphore;
-       VkSemaphoreImportFlags                                  flags;
-       VkExternalSemaphoreHandleTypeFlagBits   handleType;
-       pt::zx_handle_t                                                 zirconHandle;
+       StdVideoEncodeH264ReferenceInfoFlags    flags;
+       uint32_t                                                                FrameNum;
+       int32_t                                                                 PicOrderCnt;
+       uint16_t                                                                long_term_pic_num;
+       uint16_t                                                                long_term_frame_idx;
 };
 
-struct VkSemaphoreGetZirconHandleInfoFUCHSIA
+struct VkVideoEncodeH264DpbSlotInfoEXT
 {
        VkStructureType                                                 sType;
        const void*                                                             pNext;
-       VkSemaphore                                                             semaphore;
-       VkExternalSemaphoreHandleTypeFlagBits   handleType;
-};
-
-struct VkBufferCollectionCreateInfoFUCHSIA
-{
-       VkStructureType sType;
-       const void*             pNext;
-       pt::zx_handle_t collectionToken;
-};
-
-struct VkImportMemoryBufferCollectionFUCHSIA
-{
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkBufferCollectionFUCHSIA       collection;
-       uint32_t                                        index;
+       int8_t                                                                  slotIndex;
+       const StdVideoEncodeH264ReferenceInfo*  pStdReferenceInfo;
 };
 
-struct VkBufferCollectionImageCreateInfoFUCHSIA
+struct StdVideoEncodeH264SliceHeader
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkBufferCollectionFUCHSIA       collection;
-       uint32_t                                        index;
+       StdVideoEncodeH264SliceHeaderFlags              flags;
+       uint32_t                                                                first_mb_in_slice;
+       StdVideoH264SliceType                                   slice_type;
+       uint16_t                                                                idr_pic_id;
+       uint8_t                                                                 num_ref_idx_l0_active_minus1;
+       uint8_t                                                                 num_ref_idx_l1_active_minus1;
+       StdVideoH264CabacInitIdc                                cabac_init_idc;
+       StdVideoH264DisableDeblockingFilterIdc  disable_deblocking_filter_idc;
+       int8_t                                                                  slice_alpha_c0_offset_div2;
+       int8_t                                                                  slice_beta_offset_div2;
+       const StdVideoEncodeH264WeightTable*    pWeightTable;
 };
 
-struct VkBufferCollectionConstraintsInfoFUCHSIA
+struct VkVideoEncodeH264ReferenceListsEXT
 {
-       VkStructureType sType;
-       const void*             pNext;
-       uint32_t                minBufferCount;
-       uint32_t                maxBufferCount;
-       uint32_t                minBufferCountForCamping;
-       uint32_t                minBufferCountForDedicatedSlack;
-       uint32_t                minBufferCountForSharedSlack;
+       VkStructureType                                                                         sType;
+       const void*                                                                                     pNext;
+       uint8_t                                                                                         referenceList0EntryCount;
+       const VkVideoEncodeH264DpbSlotInfoEXT*                          pReferenceList0Entries;
+       uint8_t                                                                                         referenceList1EntryCount;
+       const VkVideoEncodeH264DpbSlotInfoEXT*                          pReferenceList1Entries;
+       const StdVideoEncodeH264RefMemMgmtCtrlOperations*       pMemMgmtCtrlOperations;
 };
 
-struct VkBufferConstraintsInfoFUCHSIA
+struct StdVideoH265DecPicBufMgr
+{
+       uint32_t        max_latency_increase_plus1[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
+       uint8_t         max_dec_pic_buffering_minus1[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
+       uint8_t         max_num_reorder_pics[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
+};
+
+struct VkVideoEncodeH264NaluSliceEXT
 {
        VkStructureType                                                         sType;
        const void*                                                                     pNext;
-       VkBufferCreateInfo                                                      createInfo;
-       VkFormatFeatureFlags                                            requiredFormatFeatures;
-       VkBufferCollectionConstraintsInfoFUCHSIA        bufferCollectionConstraints;
+       uint32_t                                                                        mbCount;
+       const VkVideoEncodeH264ReferenceListsEXT*       pReferenceFinalLists;
+       const StdVideoEncodeH264SliceHeader*            pSliceHeaderStd;
 };
 
-struct VkBufferCollectionBufferCreateInfoFUCHSIA
+struct StdVideoH265SubLayerHrdParameters
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkBufferCollectionFUCHSIA       collection;
-       uint32_t                                        index;
+       uint32_t        bit_rate_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
+       uint32_t        cpb_size_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
+       uint32_t        cpb_size_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
+       uint32_t        bit_rate_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
+       uint32_t        cbr_flag;
 };
 
-struct VkSysmemColorSpaceFUCHSIA
+struct VkVideoEncodeH264VclFrameInfoEXT
 {
-       VkStructureType sType;
-       const void*             pNext;
-       uint32_t                colorSpace;
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       const VkVideoEncodeH264ReferenceListsEXT*       pReferenceFinalLists;
+       uint32_t                                                                        naluSliceEntryCount;
+       const VkVideoEncodeH264NaluSliceEXT*            pNaluSliceEntries;
+       const StdVideoEncodeH264PictureInfo*            pCurrentPictureInfo;
 };
 
-struct VkBufferCollectionPropertiesFUCHSIA
+struct StdVideoH265HrdFlags
 {
-       VkStructureType                                 sType;
-       void*                                                   pNext;
-       uint32_t                                                memoryTypeBits;
-       uint32_t                                                bufferCount;
-       uint32_t                                                createInfoIndex;
-       uint64_t                                                sysmemPixelFormat;
-       VkFormatFeatureFlags                    formatFeatures;
-       VkSysmemColorSpaceFUCHSIA               sysmemColorSpaceIndex;
-       VkComponentMapping                              samplerYcbcrConversionComponents;
-       VkSamplerYcbcrModelConversion   suggestedYcbcrModel;
-       VkSamplerYcbcrRange                             suggestedYcbcrRange;
-       VkChromaLocation                                suggestedXChromaOffset;
-       VkChromaLocation                                suggestedYChromaOffset;
+       uint32_t        nal_hrd_parameters_present_flag:1;
+       uint32_t        vcl_hrd_parameters_present_flag:1;
+       uint32_t        sub_pic_hrd_params_present_flag:1;
+       uint32_t        sub_pic_cpb_params_in_pic_timing_sei_flag:1;
+       uint32_t        fixed_pic_rate_general_flag:8;
+       uint32_t        fixed_pic_rate_within_cvs_flag:8;
+       uint32_t        low_delay_hrd_flag:8;
 };
 
-struct VkImageFormatConstraintsInfoFUCHSIA
+struct StdVideoH265HrdParameters
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkImageCreateInfo                                               imageCreateInfo;
-       VkFormatFeatureFlags                                    requiredFormatFeatures;
-       VkImageFormatConstraintsFlagsFUCHSIA    flags;
-       uint64_t                                                                sysmemPixelFormat;
-       uint32_t                                                                colorSpaceCount;
-       const VkSysmemColorSpaceFUCHSIA*                pColorSpaces;
+       StdVideoH265HrdFlags                                            flags;
+       uint8_t                                                                         tick_divisor_minus2;
+       uint8_t                                                                         du_cpb_removal_delay_increment_length_minus1;
+       uint8_t                                                                         dpb_output_delay_du_length_minus1;
+       uint8_t                                                                         bit_rate_scale;
+       uint8_t                                                                         cpb_size_scale;
+       uint8_t                                                                         cpb_size_du_scale;
+       uint8_t                                                                         initial_cpb_removal_delay_length_minus1;
+       uint8_t                                                                         au_cpb_removal_delay_length_minus1;
+       uint8_t                                                                         dpb_output_delay_length_minus1;
+       uint8_t                                                                         cpb_cnt_minus1[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
+       uint16_t                                                                        elemental_duration_in_tc_minus1[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
+       const StdVideoH265SubLayerHrdParameters*        pSubLayerHrdParametersNal[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
+       const StdVideoH265SubLayerHrdParameters*        pSubLayerHrdParametersVcl[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
 };
 
-struct VkImageConstraintsInfoFUCHSIA
+struct StdVideoH265VpsFlags
 {
-       VkStructureType                                                         sType;
-       const void*                                                                     pNext;
-       uint32_t                                                                        formatConstraintsCount;
-       const VkImageFormatConstraintsInfoFUCHSIA*      pFormatConstraints;
-       VkBufferCollectionConstraintsInfoFUCHSIA        bufferCollectionConstraints;
-       VkImageConstraintsInfoFlagsFUCHSIA                      flags;
+       uint32_t        vps_temporal_id_nesting_flag:1;
+       uint32_t        vps_sub_layer_ordering_info_present_flag:1;
+       uint32_t        vps_timing_info_present_flag:1;
+       uint32_t        vps_poc_proportional_to_timing_flag:1;
 };
 
-struct VkStreamDescriptorSurfaceCreateInfoGGP
+struct StdVideoH265VideoParameterSet
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkStreamDescriptorSurfaceCreateFlagsGGP flags;
-       pt::GgpStreamDescriptor                                 streamDescriptor;
+       StdVideoH265VpsFlags                            flags;
+       uint8_t                                                         vps_video_parameter_set_id;
+       uint8_t                                                         vps_max_sub_layers_minus1;
+       uint32_t                                                        vps_num_units_in_tick;
+       uint32_t                                                        vps_time_scale;
+       uint32_t                                                        vps_num_ticks_poc_diff_one_minus1;
+       const StdVideoH265DecPicBufMgr*         pDecPicBufMgr;
+       const StdVideoH265HrdParameters*        pHrdParameters;
 };
 
-struct VkPresentFrameTokenGGP
+struct StdVideoH265ScalingLists
 {
-       VkStructureType         sType;
-       const void*                     pNext;
-       pt::GgpFrameToken       frameToken;
+       uint8_t ScalingList4x4[STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS];
+       uint8_t ScalingList8x8[STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS];
+       uint8_t ScalingList16x16[STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS];
+       uint8_t ScalingList32x32[STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS];
+       uint8_t ScalingListDCCoef16x16[STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS];
+       uint8_t ScalingListDCCoef32x32[STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS];
 };
 
-struct VkIOSSurfaceCreateInfoMVK
+struct StdVideoH265SpsVuiFlags
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkIOSSurfaceCreateFlagsMVK      flags;
-       const void*                                     pView;
+       uint32_t        aspect_ratio_info_present_flag:1;
+       uint32_t        overscan_info_present_flag:1;
+       uint32_t        overscan_appropriate_flag:1;
+       uint32_t        video_signal_type_present_flag:1;
+       uint32_t        video_full_range_flag:1;
+       uint32_t        colour_description_present_flag:1;
+       uint32_t        chroma_loc_info_present_flag:1;
+       uint32_t        neutral_chroma_indication_flag:1;
+       uint32_t        field_seq_flag:1;
+       uint32_t        frame_field_info_present_flag:1;
+       uint32_t        default_display_window_flag:1;
+       uint32_t        vui_timing_info_present_flag:1;
+       uint32_t        vui_poc_proportional_to_timing_flag:1;
+       uint32_t        vui_hrd_parameters_present_flag:1;
+       uint32_t        bitstream_restriction_flag:1;
+       uint32_t        tiles_fixed_structure_flag:1;
+       uint32_t        motion_vectors_over_pic_boundaries_flag:1;
+       uint32_t        restricted_ref_pic_lists_flag:1;
 };
 
-struct VkMacOSSurfaceCreateInfoMVK
+struct StdVideoH265SequenceParameterSetVui
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkMacOSSurfaceCreateFlagsMVK    flags;
-       const void*                                             pView;
+       StdVideoH265SpsVuiFlags                         flags;
+       uint8_t                                                         aspect_ratio_idc;
+       uint16_t                                                        sar_width;
+       uint16_t                                                        sar_height;
+       uint8_t                                                         video_format;
+       uint8_t                                                         colour_primaries;
+       uint8_t                                                         transfer_characteristics;
+       uint8_t                                                         matrix_coeffs;
+       uint8_t                                                         chroma_sample_loc_type_top_field;
+       uint8_t                                                         chroma_sample_loc_type_bottom_field;
+       uint16_t                                                        def_disp_win_left_offset;
+       uint16_t                                                        def_disp_win_right_offset;
+       uint16_t                                                        def_disp_win_top_offset;
+       uint16_t                                                        def_disp_win_bottom_offset;
+       uint32_t                                                        vui_num_units_in_tick;
+       uint32_t                                                        vui_time_scale;
+       uint32_t                                                        vui_num_ticks_poc_diff_one_minus1;
+       const StdVideoH265HrdParameters*        pHrdParameters;
+       uint16_t                                                        min_spatial_segmentation_idc;
+       uint8_t                                                         max_bytes_per_pic_denom;
+       uint8_t                                                         max_bits_per_min_cu_denom;
+       uint8_t                                                         log2_max_mv_length_horizontal;
+       uint8_t                                                         log2_max_mv_length_vertical;
 };
 
-struct VkMetalSurfaceCreateInfoEXT
+struct StdVideoH265PredictorPaletteEntries
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkMetalSurfaceCreateFlagsEXT    flags;
-       const pt::CAMetalLayer*                 pLayer;
+       uint16_t        PredictorPaletteEntries[STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE][STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE];
 };
 
-struct VkExportMetalObjectCreateInfoEXT
+struct StdVideoH265SpsFlags
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkExportMetalObjectTypeFlagBitsEXT      exportObjectType;
+       uint32_t        sps_temporal_id_nesting_flag:1;
+       uint32_t        separate_colour_plane_flag:1;
+       uint32_t        scaling_list_enabled_flag:1;
+       uint32_t        sps_scaling_list_data_present_flag:1;
+       uint32_t        amp_enabled_flag:1;
+       uint32_t        sample_adaptive_offset_enabled_flag:1;
+       uint32_t        pcm_enabled_flag:1;
+       uint32_t        pcm_loop_filter_disabled_flag:1;
+       uint32_t        long_term_ref_pics_present_flag:1;
+       uint32_t        sps_temporal_mvp_enabled_flag:1;
+       uint32_t        strong_intra_smoothing_enabled_flag:1;
+       uint32_t        vui_parameters_present_flag:1;
+       uint32_t        sps_extension_present_flag:1;
+       uint32_t        sps_range_extension_flag:1;
+       uint32_t        transform_skip_rotation_enabled_flag:1;
+       uint32_t        transform_skip_context_enabled_flag:1;
+       uint32_t        implicit_rdpcm_enabled_flag:1;
+       uint32_t        explicit_rdpcm_enabled_flag:1;
+       uint32_t        extended_precision_processing_flag:1;
+       uint32_t        intra_smoothing_disabled_flag:1;
+       uint32_t        high_precision_offsets_enabled_flag:1;
+       uint32_t        persistent_rice_adaptation_enabled_flag:1;
+       uint32_t        cabac_bypass_alignment_enabled_flag:1;
+       uint32_t        sps_scc_extension_flag:1;
+       uint32_t        sps_curr_pic_ref_enabled_flag:1;
+       uint32_t        palette_mode_enabled_flag:1;
+       uint32_t        sps_palette_predictor_initializer_present_flag:1;
+       uint32_t        intra_boundary_filtering_disabled_flag:1;
 };
 
-struct VkExportMetalObjectsInfoEXT
+struct StdVideoH265SequenceParameterSet
+{
+       StdVideoH265SpsFlags                                            flags;
+       StdVideoH265ProfileIdc                                          profile_idc;
+       StdVideoH265Level                                                       level_idc;
+       uint32_t                                                                        pic_width_in_luma_samples;
+       uint32_t                                                                        pic_height_in_luma_samples;
+       uint8_t                                                                         sps_video_parameter_set_id;
+       uint8_t                                                                         sps_max_sub_layers_minus1;
+       uint8_t                                                                         sps_seq_parameter_set_id;
+       uint8_t                                                                         chroma_format_idc;
+       uint8_t                                                                         bit_depth_luma_minus8;
+       uint8_t                                                                         bit_depth_chroma_minus8;
+       uint8_t                                                                         log2_max_pic_order_cnt_lsb_minus4;
+       uint8_t                                                                         log2_min_luma_coding_block_size_minus3;
+       uint8_t                                                                         log2_diff_max_min_luma_coding_block_size;
+       uint8_t                                                                         log2_min_luma_transform_block_size_minus2;
+       uint8_t                                                                         log2_diff_max_min_luma_transform_block_size;
+       uint8_t                                                                         max_transform_hierarchy_depth_inter;
+       uint8_t                                                                         max_transform_hierarchy_depth_intra;
+       uint8_t                                                                         num_short_term_ref_pic_sets;
+       uint8_t                                                                         num_long_term_ref_pics_sps;
+       uint8_t                                                                         pcm_sample_bit_depth_luma_minus1;
+       uint8_t                                                                         pcm_sample_bit_depth_chroma_minus1;
+       uint8_t                                                                         log2_min_pcm_luma_coding_block_size_minus3;
+       uint8_t                                                                         log2_diff_max_min_pcm_luma_coding_block_size;
+       uint32_t                                                                        conf_win_left_offset;
+       uint32_t                                                                        conf_win_right_offset;
+       uint32_t                                                                        conf_win_top_offset;
+       uint32_t                                                                        conf_win_bottom_offset;
+       const StdVideoH265DecPicBufMgr*                         pDecPicBufMgr;
+       const StdVideoH265ScalingLists*                         pScalingLists;
+       const StdVideoH265SequenceParameterSetVui*      pSequenceParameterSetVui;
+       uint8_t                                                                         palette_max_size;
+       uint8_t                                                                         delta_palette_max_predictor_size;
+       uint8_t                                                                         motion_vector_resolution_control_idc;
+       uint8_t                                                                         sps_num_palette_predictor_initializer_minus1;
+       const StdVideoH265PredictorPaletteEntries*      pPredictorPaletteEntries;
+};
+
+struct StdVideoH265PpsFlags
 {
-       VkStructureType sType;
-       const void*             pNext;
+       uint32_t        dependent_slice_segments_enabled_flag:1;
+       uint32_t        output_flag_present_flag:1;
+       uint32_t        sign_data_hiding_enabled_flag:1;
+       uint32_t        cabac_init_present_flag:1;
+       uint32_t        constrained_intra_pred_flag:1;
+       uint32_t        transform_skip_enabled_flag:1;
+       uint32_t        cu_qp_delta_enabled_flag:1;
+       uint32_t        pps_slice_chroma_qp_offsets_present_flag:1;
+       uint32_t        weighted_pred_flag:1;
+       uint32_t        weighted_bipred_flag:1;
+       uint32_t        transquant_bypass_enabled_flag:1;
+       uint32_t        tiles_enabled_flag:1;
+       uint32_t        entropy_coding_sync_enabled_flag:1;
+       uint32_t        uniform_spacing_flag:1;
+       uint32_t        loop_filter_across_tiles_enabled_flag:1;
+       uint32_t        pps_loop_filter_across_slices_enabled_flag:1;
+       uint32_t        deblocking_filter_control_present_flag:1;
+       uint32_t        deblocking_filter_override_enabled_flag:1;
+       uint32_t        pps_deblocking_filter_disabled_flag:1;
+       uint32_t        pps_scaling_list_data_present_flag:1;
+       uint32_t        lists_modification_present_flag:1;
+       uint32_t        slice_segment_header_extension_present_flag:1;
+       uint32_t        pps_extension_present_flag:1;
+       uint32_t        cross_component_prediction_enabled_flag:1;
+       uint32_t        chroma_qp_offset_list_enabled_flag:1;
+       uint32_t        pps_curr_pic_ref_enabled_flag:1;
+       uint32_t        residual_adaptive_colour_transform_enabled_flag:1;
+       uint32_t        pps_slice_act_qp_offsets_present_flag:1;
+       uint32_t        pps_palette_predictor_initializer_present_flag:1;
+       uint32_t        monochrome_palette_flag:1;
+       uint32_t        pps_range_extension_flag:1;
 };
 
-struct VkExportMetalDeviceInfoEXT
+struct StdVideoH265PictureParameterSet
 {
-       VkStructureType         sType;
-       const void*                     pNext;
-       pt::MTLDevice_id        mtlDevice;
+       StdVideoH265PpsFlags                                            flags;
+       uint8_t                                                                         pps_pic_parameter_set_id;
+       uint8_t                                                                         pps_seq_parameter_set_id;
+       uint8_t                                                                         num_extra_slice_header_bits;
+       uint8_t                                                                         num_ref_idx_l0_default_active_minus1;
+       uint8_t                                                                         num_ref_idx_l1_default_active_minus1;
+       int8_t                                                                          init_qp_minus26;
+       uint8_t                                                                         diff_cu_qp_delta_depth;
+       int8_t                                                                          pps_cb_qp_offset;
+       int8_t                                                                          pps_cr_qp_offset;
+       uint8_t                                                                         num_tile_columns_minus1;
+       uint8_t                                                                         num_tile_rows_minus1;
+       uint16_t                                                                        column_width_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE];
+       uint16_t                                                                        row_height_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE];
+       int8_t                                                                          pps_beta_offset_div2;
+       int8_t                                                                          pps_tc_offset_div2;
+       uint8_t                                                                         log2_parallel_merge_level_minus2;
+       const StdVideoH265ScalingLists*                         pScalingLists;
+       uint8_t                                                                         log2_max_transform_skip_block_size_minus2;
+       uint8_t                                                                         diff_cu_chroma_qp_offset_depth;
+       uint8_t                                                                         chroma_qp_offset_list_len_minus1;
+       int8_t                                                                          cb_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE];
+       int8_t                                                                          cr_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE];
+       uint8_t                                                                         log2_sao_offset_scale_luma;
+       uint8_t                                                                         log2_sao_offset_scale_chroma;
+       int8_t                                                                          pps_act_y_qp_offset_plus5;
+       int8_t                                                                          pps_act_cb_qp_offset_plus5;
+       int8_t                                                                          pps_act_cr_qp_offset_plus5;
+       uint8_t                                                                         pps_num_palette_predictor_initializer;
+       uint8_t                                                                         luma_bit_depth_entry_minus8;
+       uint8_t                                                                         chroma_bit_depth_entry_minus8;
+       const StdVideoH265PredictorPaletteEntries*      pPredictorPaletteEntries;
 };
 
-struct VkExportMetalCommandQueueInfoEXT
+struct VkVideoDecodeH265SessionParametersAddInfoEXT
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkQueue                                 queue;
-       pt::MTLCommandQueue_id  mtlCommandQueue;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       uint32_t                                                                vpsStdCount;
+       const StdVideoH265VideoParameterSet*    pVpsStd;
+       uint32_t                                                                spsStdCount;
+       const StdVideoH265SequenceParameterSet* pSpsStd;
+       uint32_t                                                                ppsStdCount;
+       const StdVideoH265PictureParameterSet*  pPpsStd;
 };
 
-struct VkExportMetalBufferInfoEXT
+struct VkVideoEncodeH265SessionParametersAddInfoEXT
 {
-       VkStructureType         sType;
-       const void*                     pNext;
-       VkDeviceMemory          memory;
-       pt::MTLBuffer_id        mtlBuffer;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       uint32_t                                                                vpsStdCount;
+       const StdVideoH265VideoParameterSet*    pVpsStd;
+       uint32_t                                                                spsStdCount;
+       const StdVideoH265SequenceParameterSet* pSpsStd;
+       uint32_t                                                                ppsStdCount;
+       const StdVideoH265PictureParameterSet*  pPpsStd;
 };
 
-struct VkImportMetalBufferInfoEXT
+struct StdVideoDecodeH265PictureInfoFlags
 {
-       VkStructureType         sType;
-       const void*                     pNext;
-       pt::MTLBuffer_id        mtlBuffer;
+       uint32_t        IrapPicFlag:1;
+       uint32_t        IdrPicFlag:1;
+       uint32_t        IsReference:1;
+       uint32_t        short_term_ref_pic_set_sps_flag:1;
 };
 
-struct VkExportMetalTextureInfoEXT
+struct VkVideoDecodeH265SessionParametersCreateInfoEXT
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkImage                                 image;
-       VkImageView                             imageView;
-       VkBufferView                    bufferView;
-       VkImageAspectFlagBits   plane;
-       pt::MTLTexture_id               mtlTexture;
+       VkStructureType                                                                         sType;
+       const void*                                                                                     pNext;
+       uint32_t                                                                                        maxVpsStdCount;
+       uint32_t                                                                                        maxSpsStdCount;
+       uint32_t                                                                                        maxPpsStdCount;
+       const VkVideoDecodeH265SessionParametersAddInfoEXT*     pParametersAddInfo;
 };
 
-struct VkImportMetalTextureInfoEXT
+struct VkVideoEncodeH265SessionParametersCreateInfoEXT
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkImageAspectFlagBits   plane;
-       pt::MTLTexture_id               mtlTexture;
+       VkStructureType                                                                         sType;
+       const void*                                                                                     pNext;
+       uint32_t                                                                                        maxVpsStdCount;
+       uint32_t                                                                                        maxSpsStdCount;
+       uint32_t                                                                                        maxPpsStdCount;
+       const VkVideoEncodeH265SessionParametersAddInfoEXT*     pParametersAddInfo;
 };
 
-struct VkExportMetalIOSurfaceInfoEXT
+struct StdVideoDecodeH265PictureInfo
 {
-       VkStructureType         sType;
-       const void*                     pNext;
-       VkImage                         image;
-       pt::IOSurfaceRef        ioSurface;
+       StdVideoDecodeH265PictureInfoFlags      flags;
+       uint8_t                                                         sps_video_parameter_set_id;
+       uint8_t                                                         pps_seq_parameter_set_id;
+       uint8_t                                                         pps_pic_parameter_set_id;
+       uint8_t                                                         num_short_term_ref_pic_sets;
+       int32_t                                                         PicOrderCntVal;
+       uint16_t                                                        NumBitsForSTRefPicSetInSlice;
+       uint8_t                                                         NumDeltaPocsOfRefRpsIdx;
+       uint8_t                                                         RefPicSetStCurrBefore[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE];
+       uint8_t                                                         RefPicSetStCurrAfter[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE];
+       uint8_t                                                         RefPicSetLtCurr[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE];
 };
 
-struct VkImportMetalIOSurfaceInfoEXT
+struct VkVideoDecodeH265PictureInfoEXT
 {
-       VkStructureType         sType;
-       const void*                     pNext;
-       pt::IOSurfaceRef        ioSurface;
+       VkStructureType                                 sType;
+       const void*                                             pNext;
+       StdVideoDecodeH265PictureInfo*  pStdPictureInfo;
+       uint32_t                                                slicesCount;
+       const uint32_t*                                 pSlicesDataOffsets;
 };
 
-struct VkExportMetalSharedEventInfoEXT
+struct StdVideoDecodeH265ReferenceInfoFlags
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       VkSemaphore                             semaphore;
-       VkEvent                                 event;
-       pt::MTLSharedEvent_id   mtlSharedEvent;
+       uint32_t        used_for_long_term_reference:1;
+       uint32_t        unused_for_reference:1;
+       uint32_t        is_non_existing:1;
 };
 
-struct VkImportMetalSharedEventInfoEXT
+struct StdVideoDecodeH265ReferenceInfo
 {
-       VkStructureType                 sType;
-       const void*                             pNext;
-       pt::MTLSharedEvent_id   mtlSharedEvent;
+       StdVideoDecodeH265ReferenceInfoFlags    flags;
+       int32_t                                                                 PicOrderCntVal;
 };
 
-struct VkViSurfaceCreateInfoNN
+struct VkVideoDecodeH265DpbSlotInfoEXT
 {
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkViSurfaceCreateFlagsNN        flags;
-       void*                                           window;
+       VkStructureType                                                 sType;
+       const void*                                                             pNext;
+       const StdVideoDecodeH265ReferenceInfo*  pStdReferenceInfo;
 };
 
-struct VkWaylandSurfaceCreateInfoKHR
+struct StdVideoEncodeH265WeightTableFlags
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkWaylandSurfaceCreateFlagsKHR  flags;
-       pt::WaylandDisplayPtr                   display;
-       pt::WaylandSurfacePtr                   surface;
+       uint16_t        luma_weight_l0_flag;
+       uint16_t        chroma_weight_l0_flag;
+       uint16_t        luma_weight_l1_flag;
+       uint16_t        chroma_weight_l1_flag;
 };
 
-struct VkWin32SurfaceCreateInfoKHR
+struct StdVideoEncodeH265WeightTable
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       VkWin32SurfaceCreateFlagsKHR    flags;
-       pt::Win32InstanceHandle                 hinstance;
-       pt::Win32WindowHandle                   hwnd;
+       StdVideoEncodeH265WeightTableFlags      flags;
+       uint8_t                                                         luma_log2_weight_denom;
+       int8_t                                                          delta_chroma_log2_weight_denom;
+       int8_t                                                          delta_luma_weight_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF];
+       int8_t                                                          luma_offset_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF];
+       int8_t                                                          delta_chroma_weight_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES];
+       int8_t                                                          delta_chroma_offset_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES];
+       int8_t                                                          delta_luma_weight_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF];
+       int8_t                                                          luma_offset_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF];
+       int8_t                                                          delta_chroma_weight_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES];
+       int8_t                                                          delta_chroma_offset_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES];
 };
 
-struct VkImportMemoryWin32HandleInfoKHR
+struct StdVideoEncodeH265SliceSegmentHeaderFlags
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkExternalMemoryHandleTypeFlagBits      handleType;
-       pt::Win32Handle                                         handle;
-       pt::Win32LPCWSTR                                        name;
+       uint32_t        first_slice_segment_in_pic_flag:1;
+       uint32_t        no_output_of_prior_pics_flag:1;
+       uint32_t        dependent_slice_segment_flag:1;
+       uint32_t        pic_output_flag:1;
+       uint32_t        short_term_ref_pic_set_sps_flag:1;
+       uint32_t        slice_temporal_mvp_enable_flag:1;
+       uint32_t        slice_sao_luma_flag:1;
+       uint32_t        slice_sao_chroma_flag:1;
+       uint32_t        num_ref_idx_active_override_flag:1;
+       uint32_t        mvd_l1_zero_flag:1;
+       uint32_t        cabac_init_flag:1;
+       uint32_t        slice_deblocking_filter_disable_flag:1;
+       uint32_t        collocated_from_l0_flag:1;
+       uint32_t        slice_loop_filter_across_slices_enabled_flag:1;
 };
 
-struct VkExportMemoryWin32HandleInfoKHR
+struct StdVideoEncodeH265SliceSegmentHeader
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       pt::Win32SecurityAttributesPtr  pAttributes;
-       uint32_t                                                dwAccess;
-       pt::Win32LPCWSTR                                name;
+       StdVideoEncodeH265SliceSegmentHeaderFlags       flags;
+       StdVideoH265SliceType                                           slice_type;
+       uint8_t                                                                         num_short_term_ref_pic_sets;
+       uint32_t                                                                        slice_segment_address;
+       uint8_t                                                                         short_term_ref_pic_set_idx;
+       uint8_t                                                                         num_long_term_sps;
+       uint8_t                                                                         num_long_term_pics;
+       uint8_t                                                                         collocated_ref_idx;
+       uint8_t                                                                         num_ref_idx_l0_active_minus1;
+       uint8_t                                                                         num_ref_idx_l1_active_minus1;
+       uint8_t                                                                         MaxNumMergeCand;
+       int8_t                                                                          slice_cb_qp_offset;
+       int8_t                                                                          slice_cr_qp_offset;
+       int8_t                                                                          slice_beta_offset_div2;
+       int8_t                                                                          slice_tc_offset_div2;
+       int8_t                                                                          slice_act_y_qp_offset;
+       int8_t                                                                          slice_act_cb_qp_offset;
+       int8_t                                                                          slice_act_cr_qp_offset;
+       const StdVideoEncodeH265WeightTable*            pWeightTable;
 };
 
-struct VkMemoryWin32HandlePropertiesKHR
+struct StdVideoEncodeH265ReferenceModificationFlags
 {
-       VkStructureType sType;
-       void*                   pNext;
-       uint32_t                memoryTypeBits;
+       uint32_t        ref_pic_list_modification_flag_l0:1;
+       uint32_t        ref_pic_list_modification_flag_l1:1;
 };
 
-struct VkMemoryGetWin32HandleInfoKHR
+struct StdVideoEncodeH265ReferenceModifications
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkDeviceMemory                                          memory;
-       VkExternalMemoryHandleTypeFlagBits      handleType;
+       StdVideoEncodeH265ReferenceModificationFlags    flags;
+       uint8_t                                                                                 referenceList0ModificationsCount;
+       const uint8_t*                                                                  pReferenceList0Modifications;
+       uint8_t                                                                                 referenceList1ModificationsCount;
+       const uint8_t*                                                                  pReferenceList1Modifications;
 };
 
-struct VkWin32KeyedMutexAcquireReleaseInfoKHR
+struct StdVideoEncodeH265PictureInfoFlags
 {
-       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;
+       uint32_t        is_reference_flag:1;
+       uint32_t        IrapPicFlag:1;
+       uint32_t        long_term_flag:1;
+       uint32_t        discardable_flag:1;
+       uint32_t        cross_layer_bla_flag:1;
 };
 
-struct VkImportSemaphoreWin32HandleInfoKHR
+struct StdVideoEncodeH265PictureInfo
 {
-       VkStructureType                                                 sType;
-       const void*                                                             pNext;
-       VkSemaphore                                                             semaphore;
-       VkSemaphoreImportFlags                                  flags;
-       VkExternalSemaphoreHandleTypeFlagBits   handleType;
-       pt::Win32Handle                                                 handle;
-       pt::Win32LPCWSTR                                                name;
+       StdVideoEncodeH265PictureInfoFlags      flags;
+       StdVideoH265PictureType                         PictureType;
+       uint8_t                                                         sps_video_parameter_set_id;
+       uint8_t                                                         pps_seq_parameter_set_id;
+       uint8_t                                                         pps_pic_parameter_set_id;
+       int32_t                                                         PicOrderCntVal;
+       uint8_t                                                         TemporalId;
 };
 
-struct VkExportSemaphoreWin32HandleInfoKHR
+struct StdVideoEncodeH265ReferenceInfoFlags
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       pt::Win32SecurityAttributesPtr  pAttributes;
-       uint32_t                                                dwAccess;
-       pt::Win32LPCWSTR                                name;
+       uint32_t        used_for_long_term_reference:1;
+       uint32_t        unused_for_reference:1;
 };
 
-struct VkD3D12FenceSubmitInfoKHR
+struct StdVideoEncodeH265ReferenceInfo
 {
-       VkStructureType sType;
-       const void*             pNext;
-       uint32_t                waitSemaphoreValuesCount;
-       const uint64_t* pWaitSemaphoreValues;
-       uint32_t                signalSemaphoreValuesCount;
-       const uint64_t* pSignalSemaphoreValues;
+       StdVideoEncodeH265ReferenceInfoFlags    flags;
+       int32_t                                                                 PicOrderCntVal;
+       uint8_t                                                                 TemporalId;
 };
 
-struct VkSemaphoreGetWin32HandleInfoKHR
+struct VkVideoEncodeH265DpbSlotInfoEXT
 {
        VkStructureType                                                 sType;
        const void*                                                             pNext;
-       VkSemaphore                                                             semaphore;
-       VkExternalSemaphoreHandleTypeFlagBits   handleType;
+       int8_t                                                                  slotIndex;
+       const StdVideoEncodeH265ReferenceInfo*  pStdReferenceInfo;
 };
 
-struct VkImportFenceWin32HandleInfoKHR
+struct VkVideoEncodeH265ReferenceListsEXT
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkFence                                                         fence;
-       VkFenceImportFlags                                      flags;
-       VkExternalFenceHandleTypeFlagBits       handleType;
-       pt::Win32Handle                                         handle;
-       pt::Win32LPCWSTR                                        name;
+       VkStructureType                                                                 sType;
+       const void*                                                                             pNext;
+       uint8_t                                                                                 referenceList0EntryCount;
+       const VkVideoEncodeH265DpbSlotInfoEXT*                  pReferenceList0Entries;
+       uint8_t                                                                                 referenceList1EntryCount;
+       const VkVideoEncodeH265DpbSlotInfoEXT*                  pReferenceList1Entries;
+       const StdVideoEncodeH265ReferenceModifications* pReferenceModifications;
 };
 
-struct VkExportFenceWin32HandleInfoKHR
+struct VkVideoEncodeH265NaluSliceSegmentEXT
 {
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       pt::Win32SecurityAttributesPtr  pAttributes;
-       uint32_t                                                dwAccess;
-       pt::Win32LPCWSTR                                name;
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       uint32_t                                                                        ctbCount;
+       const VkVideoEncodeH265ReferenceListsEXT*       pReferenceFinalLists;
+       const StdVideoEncodeH265SliceSegmentHeader*     pSliceSegmentHeaderStd;
 };
 
-struct VkFenceGetWin32HandleInfoKHR
+struct VkVideoEncodeH265VclFrameInfoEXT
 {
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkFence                                                         fence;
-       VkExternalFenceHandleTypeFlagBits       handleType;
+       VkStructureType                                                         sType;
+       const void*                                                                     pNext;
+       const VkVideoEncodeH265ReferenceListsEXT*       pReferenceFinalLists;
+       uint32_t                                                                        naluSliceSegmentEntryCount;
+       const VkVideoEncodeH265NaluSliceSegmentEXT*     pNaluSliceSegmentEntries;
+       const StdVideoEncodeH265PictureInfo*            pCurrentPictureInfo;
 };
 
-struct VkImportMemoryWin32HandleInfoNV
-{
-       VkStructureType                                         sType;
-       const void*                                                     pNext;
-       VkExternalMemoryHandleTypeFlagsNV       handleType;
-       pt::Win32Handle                                         handle;
-};
+typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT;
 
-struct VkExportMemoryWin32HandleInfoNV
-{
-       VkStructureType                                 sType;
-       const void*                                             pNext;
-       pt::Win32SecurityAttributesPtr  pAttributes;
-       uint32_t                                                dwAccess;
-};
+typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT;
 
-struct VkWin32KeyedMutexAcquireReleaseInfoNV
-{
-       VkStructureType                 sType;
-       const void*                             pNext;
-       uint32_t                                acquireCount;
-       const VkDeviceMemory*   pAcquireSyncs;
-       const uint64_t*                 pAcquireKeys;
-       const uint32_t*                 pAcquireTimeoutMilliseconds;
-       uint32_t                                releaseCount;
-       const VkDeviceMemory*   pReleaseSyncs;
-       const uint64_t*                 pReleaseKeys;
-};
+typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT;
 
-struct VkSurfaceFullScreenExclusiveInfoEXT
-{
-       VkStructureType                         sType;
-       void*                                           pNext;
-       VkFullScreenExclusiveEXT        fullScreenExclusive;
-};
+typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
 
-struct VkSurfaceCapabilitiesFullScreenExclusiveEXT
-{
-       VkStructureType sType;
-       void*                   pNext;
-       VkBool32                fullScreenExclusiveSupported;
-};
+typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
 
-struct VkSurfaceFullScreenExclusiveWin32InfoEXT
-{
-       VkStructureType                 sType;
-       const void*                             pNext;
-       pt::Win32MonitorHandle  hmonitor;
-};
+typedef VkFormatProperties2 VkFormatProperties2KHR;
 
-struct VkXcbSurfaceCreateInfoKHR
-{
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkXcbSurfaceCreateFlagsKHR      flags;
-       pt::XcbConnectionPtr            connection;
-       pt::XcbWindow                           window;
-};
+typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
 
-struct VkXlibSurfaceCreateInfoKHR
-{
-       VkStructureType                         sType;
-       const void*                                     pNext;
-       VkXlibSurfaceCreateFlagsKHR     flags;
-       pt::XlibDisplayPtr                      dpy;
-       pt::XlibWindow                          window;
-};
+typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
 
-typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
+typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
 
-typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
+typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
 
-typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
+typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
 
-typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
+typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
 
-typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
+typedef VkConformanceVersion VkConformanceVersionKHR;
 
-typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
+typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
 
-typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
+typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
 
-typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
+typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
 
-typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
+typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
 
-typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
+typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
+
+typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
+
+typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
+
+typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
+
+typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
+
+typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
+
+typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
+
+typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
+
+typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
+
+typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
+
+typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
+
+typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
+
+typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
+
+typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
+
+typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
+
+typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
+
+typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
+
+typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
+
+typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
+
+typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
+
+typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
 
 typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
 
-typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
+typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
+
+typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
+
+typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
+
+typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
+
+typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
 
-typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
+typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
 
 typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
 
-typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
-
-typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
+typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
 
-typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
+typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
 
-typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
+typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
 
-typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
+typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
 
-typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
+typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
 
-typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
+typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
 
-typedef VkFormatProperties2 VkFormatProperties2KHR;
+typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
 
-typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
+typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR;
 
-typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
+typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
 
-typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
+typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
 
-typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
+typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR;
 
-typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
+typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
 
-typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
+typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
 
 typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
 
-typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
+typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
 
-typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
+typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
 
 typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
 
 typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
 
-typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
-
-typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
-
-typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
+typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
 
 typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
 
-typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
-
 typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
 
 typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
@@ -8341,49 +8406,53 @@ typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYc
 
 typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
 
-typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
+typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
 
-typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
+typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
 
-typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
+typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
 
-typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
+typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
 
-typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
+typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT;
 
-typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
+typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
 
-typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
+typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
 
-typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
+typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
 
-typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
+typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR;
 
-typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
+typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR;
 
-typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
+typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
 
-typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
+typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
 
-typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
+typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
 
-typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
+typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR;
 
-typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
+typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
 
-typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
+typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
 
-typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
+typedef VkDeviceQueueGlobalPriorityCreateInfoKHR VkDeviceQueueGlobalPriorityCreateInfoEXT;
 
-typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
+typedef VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT;
 
-typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
+typedef VkQueueFamilyGlobalPriorityPropertiesKHR VkQueueFamilyGlobalPriorityPropertiesEXT;
 
-typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
+typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
 
-typedef VkConformanceVersion VkConformanceVersionKHR;
+typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
 
-typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
+typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
+
+typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
+
+typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
 
 typedef VkAttachmentDescription2 VkAttachmentDescription2KHR;
 
@@ -8399,49 +8468,59 @@ typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR;
 
 typedef VkSubpassEndInfo VkSubpassEndInfoKHR;
 
-typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
+typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
 
-typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
+typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
 
-typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
+typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
 
-typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
+typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
 
-typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
+typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
 
-typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
+typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
 
-typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
+typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
 
-typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
+typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
 
-typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
+typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
+
+typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
 
 typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
 
-typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
+typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
 
 typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
 
-typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
+typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
 
-typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
+typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
 
-typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
+typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
 
-typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
+typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR;
 
-typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
+typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT;
 
-typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
+typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
+
+typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
 
 typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR;
 
+typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
+
 typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR;
 
-typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
+typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
 
-typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
+typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT;
+
+typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT;
+
+typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
 
 typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
 
@@ -8449,61 +8528,31 @@ typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR
 
 typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR;
 
-typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
-
-typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
-
-typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
-
-typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
+typedef VkPipelineInfoKHR VkPipelineInfoEXT;
 
-typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
+typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
 
-typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
+typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
 
-typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
+typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
 
-typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
+typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
 
-typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
+typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
 
 typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
 
 typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
 
-typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT;
-
-typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT;
-
-typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
-
-typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT;
-
-typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
-
-typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT;
-
-typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT;
-
-typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT;
-
 typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
 
-typedef VkMemoryBarrier2 VkMemoryBarrier2KHR;
-
-typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR;
-
-typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR;
-
-typedef VkDependencyInfo VkDependencyInfoKHR;
-
-typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR;
+typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT;
 
-typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR;
+typedef VkAabbPositionsKHR VkAabbPositionsNV;
 
-typedef VkSubmitInfo2 VkSubmitInfo2KHR;
+typedef VkTransformMatrixKHR VkTransformMatrixNV;
 
-typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR;
+typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
 
 typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
 
@@ -8511,87 +8560,61 @@ typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessF
 
 typedef VkBufferCopy2 VkBufferCopy2KHR;
 
-typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR;
-
 typedef VkImageCopy2 VkImageCopy2KHR;
 
-typedef VkCopyImageInfo2 VkCopyImageInfo2KHR;
+typedef VkImageBlit2 VkImageBlit2KHR;
 
 typedef VkBufferImageCopy2 VkBufferImageCopy2KHR;
 
-typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR;
+typedef VkImageResolve2 VkImageResolve2KHR;
 
-typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR;
+typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR;
 
-typedef VkImageBlit2 VkImageBlit2KHR;
+typedef VkCopyImageInfo2 VkCopyImageInfo2KHR;
 
 typedef VkBlitImageInfo2 VkBlitImageInfo2KHR;
 
-typedef VkImageResolve2 VkImageResolve2KHR;
-
-typedef VkResolveImageInfo2 VkResolveImageInfo2KHR;
-
-typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
-
-typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
+typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR;
 
-typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
+typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR;
 
-typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
+typedef VkResolveImageInfo2 VkResolveImageInfo2KHR;
 
-typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
+typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
 
-typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT;
+typedef VkMemoryBarrier2 VkMemoryBarrier2KHR;
 
-typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
+typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR;
 
-typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
+typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR;
 
-typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR;
+typedef VkDependencyInfo VkDependencyInfoKHR;
 
-typedef VkRenderingInfo VkRenderingInfoKHR;
+typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR;
 
-typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR;
+typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR;
 
-typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR;
+typedef VkSubmitInfo2 VkSubmitInfo2KHR;
 
-typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR;
+typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR;
 
 typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR;
 
 typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR;
 
-typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
+typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
 
 typedef VkFormatProperties3 VkFormatProperties3KHR;
 
-typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR;
-
-typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR;
-
-typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR;
-
-typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR;
-
-typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
-
-typedef VkDeviceQueueGlobalPriorityCreateInfoKHR VkDeviceQueueGlobalPriorityCreateInfoEXT;
-
-typedef VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT;
-
-typedef VkQueueFamilyGlobalPriorityPropertiesKHR VkQueueFamilyGlobalPriorityPropertiesEXT;
-
-typedef VkPipelineInfoKHR VkPipelineInfoEXT;
-
-typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
+typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR;
 
-typedef VkTransformMatrixKHR VkTransformMatrixNV;
+typedef VkRenderingInfo VkRenderingInfoKHR;
 
-typedef VkAabbPositionsKHR VkAabbPositionsNV;
+typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR;
 
-typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
+typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR;
 
-typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
+typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR;
 
-typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
+typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
 
index c0cd729..ec5ffac 100644 (file)
@@ -12,7 +12,10 @@ void getCoreDeviceExtensionsImpl (uint32_t coreVersion, ::std::vector<const char
                dst.push_back("VK_KHR_shader_float16_int8");
                dst.push_back("VK_KHR_imageless_framebuffer");
                dst.push_back("VK_KHR_create_renderpass2");
+               dst.push_back("VK_EXT_sampler_filter_minmax");
                dst.push_back("VK_KHR_image_format_list");
+               dst.push_back("VK_EXT_descriptor_indexing");
+               dst.push_back("VK_EXT_shader_viewport_index_layer");
                dst.push_back("VK_KHR_draw_indirect_count");
                dst.push_back("VK_KHR_shader_subgroup_extended_types");
                dst.push_back("VK_KHR_8bit_storage");
@@ -22,39 +25,39 @@ void getCoreDeviceExtensionsImpl (uint32_t coreVersion, ::std::vector<const char
                dst.push_back("VK_KHR_depth_stencil_resolve");
                dst.push_back("VK_KHR_timeline_semaphore");
                dst.push_back("VK_KHR_vulkan_memory_model");
+               dst.push_back("VK_EXT_scalar_block_layout");
                dst.push_back("VK_KHR_spirv_1_4");
                dst.push_back("VK_KHR_separate_depth_stencil_layouts");
+               dst.push_back("VK_EXT_separate_stencil_usage");
                dst.push_back("VK_KHR_uniform_buffer_standard_layout");
                dst.push_back("VK_KHR_buffer_device_address");
-               dst.push_back("VK_EXT_sampler_filter_minmax");
-               dst.push_back("VK_EXT_descriptor_indexing");
-               dst.push_back("VK_EXT_shader_viewport_index_layer");
-               dst.push_back("VK_EXT_scalar_block_layout");
-               dst.push_back("VK_EXT_separate_stencil_usage");
                dst.push_back("VK_EXT_host_query_reset");
        }
        if (coreVersion >= VK_API_VERSION_1_3)
        {
                dst.push_back("VK_KHR_dynamic_rendering");
-               dst.push_back("VK_KHR_shader_terminate_invocation");
-               dst.push_back("VK_KHR_shader_integer_dot_product");
-               dst.push_back("VK_KHR_shader_non_semantic_info");
-               dst.push_back("VK_KHR_synchronization2");
-               dst.push_back("VK_KHR_zero_initialize_workgroup_memory");
-               dst.push_back("VK_KHR_copy_commands2");
-               dst.push_back("VK_KHR_format_feature_flags2");
-               dst.push_back("VK_KHR_maintenance4");
                dst.push_back("VK_EXT_texture_compression_astc_hdr");
                dst.push_back("VK_EXT_inline_uniform_block");
                dst.push_back("VK_EXT_pipeline_creation_feedback");
+               dst.push_back("VK_KHR_shader_terminate_invocation");
                dst.push_back("VK_EXT_subgroup_size_control");
                dst.push_back("VK_EXT_tooling_info");
                dst.push_back("VK_EXT_extended_dynamic_state");
                dst.push_back("VK_EXT_shader_demote_to_helper_invocation");
+               dst.push_back("VK_KHR_shader_integer_dot_product");
+               dst.push_back("VK_EXT_texel_buffer_alignment");
+               dst.push_back("VK_KHR_shader_non_semantic_info");
                dst.push_back("VK_EXT_private_data");
                dst.push_back("VK_EXT_pipeline_creation_cache_control");
+               dst.push_back("VK_KHR_synchronization2");
+               dst.push_back("VK_KHR_zero_initialize_workgroup_memory");
+               dst.push_back("VK_EXT_ycbcr_2plane_444_formats");
                dst.push_back("VK_EXT_image_robustness");
+               dst.push_back("VK_KHR_copy_commands2");
                dst.push_back("VK_EXT_4444_formats");
+               dst.push_back("VK_KHR_format_feature_flags2");
+               dst.push_back("VK_EXT_extended_dynamic_state2");
+               dst.push_back("VK_KHR_maintenance4");
        }
        if (coreVersion >= VK_API_VERSION_1_1)
        {
index 903422b..5fc7755 100644 (file)
@@ -4,6 +4,23 @@
  */
 
 
+inline VkOffset2D makeOffset2D (int32_t x, int32_t y)
+{
+       VkOffset2D res;
+       res.x   = x;
+       res.y   = y;
+       return res;
+}
+
+inline VkOffset3D makeOffset3D (int32_t x, int32_t y, int32_t z)
+{
+       VkOffset3D res;
+       res.x   = x;
+       res.y   = y;
+       res.z   = z;
+       return res;
+}
+
 inline VkExtent2D makeExtent2D (uint32_t width, uint32_t height)
 {
        VkExtent2D res;
@@ -21,50 +38,83 @@ inline VkExtent3D makeExtent3D (uint32_t width, uint32_t height, uint32_t depth)
        return res;
 }
 
-inline VkOffset2D makeOffset2D (int32_t x, int32_t y)
+inline VkViewport makeViewport (float x, float y, float width, float height, float minDepth, float maxDepth)
 {
-       VkOffset2D res;
-       res.x   = x;
-       res.y   = y;
+       VkViewport res;
+       res.x                   = x;
+       res.y                   = y;
+       res.width               = width;
+       res.height              = height;
+       res.minDepth    = minDepth;
+       res.maxDepth    = maxDepth;
        return res;
 }
 
-inline VkOffset3D makeOffset3D (int32_t x, int32_t y, int32_t z)
+inline VkComponentMapping makeComponentMapping (VkComponentSwizzle r, VkComponentSwizzle g, VkComponentSwizzle b, VkComponentSwizzle a)
 {
-       VkOffset3D res;
-       res.x   = x;
-       res.y   = y;
-       res.z   = z;
+       VkComponentMapping res;
+       res.r   = r;
+       res.g   = g;
+       res.b   = b;
+       res.a   = a;
        return res;
 }
 
-inline VkDispatchIndirectCommand makeDispatchIndirectCommand (uint32_t x, uint32_t y, uint32_t z)
+inline VkAllocationCallbacks makeAllocationCallbacks (void* pUserData, PFN_vkAllocationFunction pfnAllocation, PFN_vkReallocationFunction pfnReallocation, PFN_vkFreeFunction pfnFree, PFN_vkInternalAllocationNotification pfnInternalAllocation, PFN_vkInternalFreeNotification pfnInternalFree)
 {
-       VkDispatchIndirectCommand res;
-       res.x   = x;
-       res.y   = y;
-       res.z   = z;
+       VkAllocationCallbacks res;
+       res.pUserData                           = pUserData;
+       res.pfnAllocation                       = pfnAllocation;
+       res.pfnReallocation                     = pfnReallocation;
+       res.pfnFree                                     = pfnFree;
+       res.pfnInternalAllocation       = pfnInternalAllocation;
+       res.pfnInternalFree                     = pfnInternalFree;
        return res;
 }
 
-inline VkDrawIndexedIndirectCommand makeDrawIndexedIndirectCommand (uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance)
+inline VkMemoryRequirements makeMemoryRequirements (VkDeviceSize size, VkDeviceSize alignment, uint32_t memoryTypeBits)
 {
-       VkDrawIndexedIndirectCommand res;
-       res.indexCount          = indexCount;
-       res.instanceCount       = instanceCount;
-       res.firstIndex          = firstIndex;
-       res.vertexOffset        = vertexOffset;
-       res.firstInstance       = firstInstance;
+       VkMemoryRequirements res;
+       res.size                        = size;
+       res.alignment           = alignment;
+       res.memoryTypeBits      = memoryTypeBits;
        return res;
 }
 
-inline VkDrawIndirectCommand makeDrawIndirectCommand (uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance)
+inline VkDescriptorBufferInfo makeDescriptorBufferInfo (VkBuffer buffer, VkDeviceSize offset, VkDeviceSize range)
 {
-       VkDrawIndirectCommand res;
-       res.vertexCount         = vertexCount;
-       res.instanceCount       = instanceCount;
-       res.firstVertex         = firstVertex;
-       res.firstInstance       = firstInstance;
+       VkDescriptorBufferInfo res;
+       res.buffer      = buffer;
+       res.offset      = offset;
+       res.range       = range;
+       return res;
+}
+
+inline VkDescriptorImageInfo makeDescriptorImageInfo (VkSampler sampler, VkImageView imageView, VkImageLayout imageLayout)
+{
+       VkDescriptorImageInfo res;
+       res.sampler             = sampler;
+       res.imageView   = imageView;
+       res.imageLayout = imageLayout;
+       return res;
+}
+
+inline VkImageSubresource makeImageSubresource (VkImageAspectFlags aspectMask, uint32_t mipLevel, uint32_t arrayLayer)
+{
+       VkImageSubresource res;
+       res.aspectMask  = aspectMask;
+       res.mipLevel    = mipLevel;
+       res.arrayLayer  = arrayLayer;
+       return res;
+}
+
+inline VkImageSubresourceLayers makeImageSubresourceLayers (VkImageAspectFlags aspectMask, uint32_t mipLevel, uint32_t baseArrayLayer, uint32_t layerCount)
+{
+       VkImageSubresourceLayers res;
+       res.aspectMask          = aspectMask;
+       res.mipLevel            = mipLevel;
+       res.baseArrayLayer      = baseArrayLayer;
+       res.layerCount          = layerCount;
        return res;
 }
 
@@ -79,24 +129,23 @@ inline VkImageSubresourceRange makeImageSubresourceRange (VkImageAspectFlags asp
        return res;
 }
 
-inline VkAllocationCallbacks makeAllocationCallbacks (void* pUserData, PFN_vkAllocationFunction pfnAllocation, PFN_vkReallocationFunction pfnReallocation, PFN_vkFreeFunction pfnFree, PFN_vkInternalAllocationNotification pfnInternalAllocation, PFN_vkInternalFreeNotification pfnInternalFree)
+inline VkSubresourceLayout makeSubresourceLayout (VkDeviceSize offset, VkDeviceSize size, VkDeviceSize rowPitch, VkDeviceSize arrayPitch, VkDeviceSize depthPitch)
 {
-       VkAllocationCallbacks res;
-       res.pUserData                           = pUserData;
-       res.pfnAllocation                       = pfnAllocation;
-       res.pfnReallocation                     = pfnReallocation;
-       res.pfnFree                                     = pfnFree;
-       res.pfnInternalAllocation       = pfnInternalAllocation;
-       res.pfnInternalFree                     = pfnInternalFree;
+       VkSubresourceLayout res;
+       res.offset              = offset;
+       res.size                = size;
+       res.rowPitch    = rowPitch;
+       res.arrayPitch  = arrayPitch;
+       res.depthPitch  = depthPitch;
        return res;
 }
 
-inline VkMemoryRequirements makeMemoryRequirements (VkDeviceSize size, VkDeviceSize alignment, uint32_t memoryTypeBits)
+inline VkBufferCopy makeBufferCopy (VkDeviceSize srcOffset, VkDeviceSize dstOffset, VkDeviceSize size)
 {
-       VkMemoryRequirements res;
-       res.size                        = size;
-       res.alignment           = alignment;
-       res.memoryTypeBits      = memoryTypeBits;
+       VkBufferCopy res;
+       res.srcOffset   = srcOffset;
+       res.dstOffset   = dstOffset;
+       res.size                = size;
        return res;
 }
 
@@ -129,15 +178,6 @@ inline VkSparseImageOpaqueMemoryBindInfo makeSparseImageOpaqueMemoryBindInfo (Vk
        return res;
 }
 
-inline VkImageSubresource makeImageSubresource (VkImageAspectFlags aspectMask, uint32_t mipLevel, uint32_t arrayLayer)
-{
-       VkImageSubresource res;
-       res.aspectMask  = aspectMask;
-       res.mipLevel    = mipLevel;
-       res.arrayLayer  = arrayLayer;
-       return res;
-}
-
 inline VkSparseImageMemoryBindInfo makeSparseImageMemoryBindInfo (VkImage image, uint32_t bindCount, const VkSparseImageMemoryBind* pBinds)
 {
        VkSparseImageMemoryBindInfo res;
@@ -147,24 +187,22 @@ inline VkSparseImageMemoryBindInfo makeSparseImageMemoryBindInfo (VkImage image,
        return res;
 }
 
-inline VkSubresourceLayout makeSubresourceLayout (VkDeviceSize offset, VkDeviceSize size, VkDeviceSize rowPitch, VkDeviceSize arrayPitch, VkDeviceSize depthPitch)
+inline VkDescriptorSetLayoutBinding makeDescriptorSetLayoutBinding (uint32_t binding, VkDescriptorType descriptorType, uint32_t descriptorCount, VkShaderStageFlags stageFlags, const VkSampler* pImmutableSamplers)
 {
-       VkSubresourceLayout res;
-       res.offset              = offset;
-       res.size                = size;
-       res.rowPitch    = rowPitch;
-       res.arrayPitch  = arrayPitch;
-       res.depthPitch  = depthPitch;
+       VkDescriptorSetLayoutBinding res;
+       res.binding                             = binding;
+       res.descriptorType              = descriptorType;
+       res.descriptorCount             = descriptorCount;
+       res.stageFlags                  = stageFlags;
+       res.pImmutableSamplers  = pImmutableSamplers;
        return res;
 }
 
-inline VkComponentMapping makeComponentMapping (VkComponentSwizzle r, VkComponentSwizzle g, VkComponentSwizzle b, VkComponentSwizzle a)
+inline VkDescriptorPoolSize makeDescriptorPoolSize (VkDescriptorType type, uint32_t descriptorCount)
 {
-       VkComponentMapping res;
-       res.r   = r;
-       res.g   = g;
-       res.b   = b;
-       res.a   = a;
+       VkDescriptorPoolSize res;
+       res.type                        = type;
+       res.descriptorCount     = descriptorCount;
        return res;
 }
 
@@ -206,15 +244,17 @@ inline VkVertexInputAttributeDescription makeVertexInputAttributeDescription (ui
        return res;
 }
 
-inline VkViewport makeViewport (float x, float y, float width, float height, float minDepth, float maxDepth)
+inline VkPipelineColorBlendAttachmentState makePipelineColorBlendAttachmentState (VkBool32 blendEnable, VkBlendFactor srcColorBlendFactor, VkBlendFactor dstColorBlendFactor, VkBlendOp colorBlendOp, VkBlendFactor srcAlphaBlendFactor, VkBlendFactor dstAlphaBlendFactor, VkBlendOp alphaBlendOp, VkColorComponentFlags colorWriteMask)
 {
-       VkViewport res;
-       res.x                   = x;
-       res.y                   = y;
-       res.width               = width;
-       res.height              = height;
-       res.minDepth    = minDepth;
-       res.maxDepth    = maxDepth;
+       VkPipelineColorBlendAttachmentState res;
+       res.blendEnable                 = blendEnable;
+       res.srcColorBlendFactor = srcColorBlendFactor;
+       res.dstColorBlendFactor = dstColorBlendFactor;
+       res.colorBlendOp                = colorBlendOp;
+       res.srcAlphaBlendFactor = srcAlphaBlendFactor;
+       res.dstAlphaBlendFactor = dstAlphaBlendFactor;
+       res.alphaBlendOp                = alphaBlendOp;
+       res.colorWriteMask              = colorWriteMask;
        return res;
 }
 
@@ -231,20 +271,6 @@ inline VkStencilOpState makeStencilOpState (VkStencilOp failOp, VkStencilOp pass
        return res;
 }
 
-inline VkPipelineColorBlendAttachmentState makePipelineColorBlendAttachmentState (VkBool32 blendEnable, VkBlendFactor srcColorBlendFactor, VkBlendFactor dstColorBlendFactor, VkBlendOp colorBlendOp, VkBlendFactor srcAlphaBlendFactor, VkBlendFactor dstAlphaBlendFactor, VkBlendOp alphaBlendOp, VkColorComponentFlags colorWriteMask)
-{
-       VkPipelineColorBlendAttachmentState res;
-       res.blendEnable                 = blendEnable;
-       res.srcColorBlendFactor = srcColorBlendFactor;
-       res.dstColorBlendFactor = dstColorBlendFactor;
-       res.colorBlendOp                = colorBlendOp;
-       res.srcAlphaBlendFactor = srcAlphaBlendFactor;
-       res.dstAlphaBlendFactor = dstAlphaBlendFactor;
-       res.alphaBlendOp                = alphaBlendOp;
-       res.colorWriteMask              = colorWriteMask;
-       return res;
-}
-
 inline VkPushConstantRange makePushConstantRange (VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size)
 {
        VkPushConstantRange res;
@@ -254,40 +280,11 @@ inline VkPushConstantRange makePushConstantRange (VkShaderStageFlags stageFlags,
        return res;
 }
 
-inline VkDescriptorBufferInfo makeDescriptorBufferInfo (VkBuffer buffer, VkDeviceSize offset, VkDeviceSize range)
-{
-       VkDescriptorBufferInfo res;
-       res.buffer      = buffer;
-       res.offset      = offset;
-       res.range       = range;
-       return res;
-}
-
-inline VkDescriptorImageInfo makeDescriptorImageInfo (VkSampler sampler, VkImageView imageView, VkImageLayout imageLayout)
-{
-       VkDescriptorImageInfo res;
-       res.sampler             = sampler;
-       res.imageView   = imageView;
-       res.imageLayout = imageLayout;
-       return res;
-}
-
-inline VkDescriptorPoolSize makeDescriptorPoolSize (VkDescriptorType type, uint32_t descriptorCount)
-{
-       VkDescriptorPoolSize res;
-       res.type                        = type;
-       res.descriptorCount     = descriptorCount;
-       return res;
-}
-
-inline VkDescriptorSetLayoutBinding makeDescriptorSetLayoutBinding (uint32_t binding, VkDescriptorType descriptorType, uint32_t descriptorCount, VkShaderStageFlags stageFlags, const VkSampler* pImmutableSamplers)
+inline VkClearDepthStencilValue makeClearDepthStencilValue (float depth, uint32_t stencil)
 {
-       VkDescriptorSetLayoutBinding res;
-       res.binding                             = binding;
-       res.descriptorType              = descriptorType;
-       res.descriptorCount             = descriptorCount;
-       res.stageFlags                  = stageFlags;
-       res.pImmutableSamplers  = pImmutableSamplers;
+       VkClearDepthStencilValue res;
+       res.depth       = depth;
+       res.stencil     = stencil;
        return res;
 }
 
@@ -343,94 +340,116 @@ inline VkSubpassDependency makeSubpassDependency (uint32_t srcSubpass, uint32_t
        return res;
 }
 
-inline VkBufferCopy makeBufferCopy (VkDeviceSize srcOffset, VkDeviceSize dstOffset, VkDeviceSize size)
+inline VkDrawIndirectCommand makeDrawIndirectCommand (uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance)
 {
-       VkBufferCopy res;
-       res.srcOffset   = srcOffset;
-       res.dstOffset   = dstOffset;
-       res.size                = size;
+       VkDrawIndirectCommand res;
+       res.vertexCount         = vertexCount;
+       res.instanceCount       = instanceCount;
+       res.firstVertex         = firstVertex;
+       res.firstInstance       = firstInstance;
        return res;
 }
 
-inline VkImageSubresourceLayers makeImageSubresourceLayers (VkImageAspectFlags aspectMask, uint32_t mipLevel, uint32_t baseArrayLayer, uint32_t layerCount)
+inline VkDrawIndexedIndirectCommand makeDrawIndexedIndirectCommand (uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance)
 {
-       VkImageSubresourceLayers res;
-       res.aspectMask          = aspectMask;
-       res.mipLevel            = mipLevel;
-       res.baseArrayLayer      = baseArrayLayer;
-       res.layerCount          = layerCount;
+       VkDrawIndexedIndirectCommand res;
+       res.indexCount          = indexCount;
+       res.instanceCount       = instanceCount;
+       res.firstIndex          = firstIndex;
+       res.vertexOffset        = vertexOffset;
+       res.firstInstance       = firstInstance;
        return res;
 }
 
-inline VkClearDepthStencilValue makeClearDepthStencilValue (float depth, uint32_t stencil)
+inline VkDispatchIndirectCommand makeDispatchIndirectCommand (uint32_t x, uint32_t y, uint32_t z)
 {
-       VkClearDepthStencilValue res;
-       res.depth       = depth;
-       res.stencil     = stencil;
+       VkDispatchIndirectCommand res;
+       res.x   = x;
+       res.y   = y;
+       res.z   = z;
        return res;
 }
 
-inline VkInputAttachmentAspectReference makeInputAttachmentAspectReference (uint32_t subpass, uint32_t inputAttachmentIndex, VkImageAspectFlags aspectMask)
+inline VkMultiDrawInfoEXT makeMultiDrawInfoEXT (uint32_t firstVertex, uint32_t vertexCount)
 {
-       VkInputAttachmentAspectReference res;
-       res.subpass                                     = subpass;
-       res.inputAttachmentIndex        = inputAttachmentIndex;
-       res.aspectMask                          = aspectMask;
+       VkMultiDrawInfoEXT res;
+       res.firstVertex = firstVertex;
+       res.vertexCount = vertexCount;
        return res;
 }
 
-inline VkDescriptorUpdateTemplateEntry makeDescriptorUpdateTemplateEntry (uint32_t dstBinding, uint32_t dstArrayElement, uint32_t descriptorCount, VkDescriptorType descriptorType, size_t offset, size_t stride)
+inline VkMultiDrawIndexedInfoEXT makeMultiDrawIndexedInfoEXT (uint32_t firstIndex, uint32_t indexCount, int32_t vertexOffset)
 {
-       VkDescriptorUpdateTemplateEntry res;
-       res.dstBinding          = dstBinding;
-       res.dstArrayElement     = dstArrayElement;
-       res.descriptorCount     = descriptorCount;
-       res.descriptorType      = descriptorType;
-       res.offset                      = offset;
-       res.stride                      = stride;
+       VkMultiDrawIndexedInfoEXT res;
+       res.firstIndex          = firstIndex;
+       res.indexCount          = indexCount;
+       res.vertexOffset        = vertexOffset;
        return res;
 }
 
-inline VkExternalMemoryProperties makeExternalMemoryProperties (VkExternalMemoryFeatureFlags externalMemoryFeatures, VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes, VkExternalMemoryHandleTypeFlags compatibleHandleTypes)
+inline VkDisplayPlanePropertiesKHR makeDisplayPlanePropertiesKHR (VkDisplayKHR currentDisplay, uint32_t currentStackIndex)
 {
-       VkExternalMemoryProperties res;
-       res.externalMemoryFeatures                      = externalMemoryFeatures;
-       res.exportFromImportedHandleTypes       = exportFromImportedHandleTypes;
-       res.compatibleHandleTypes                       = compatibleHandleTypes;
+       VkDisplayPlanePropertiesKHR res;
+       res.currentDisplay              = currentDisplay;
+       res.currentStackIndex   = currentStackIndex;
        return res;
 }
 
-inline VkConformanceVersion makeConformanceVersion (uint8_t major, uint8_t minor, uint8_t subminor, uint8_t patch)
+inline VkSurfaceFormatKHR makeSurfaceFormatKHR (VkFormat format, VkColorSpaceKHR colorSpace)
 {
-       VkConformanceVersion res;
-       res.major               = major;
-       res.minor               = minor;
-       res.subminor    = subminor;
-       res.patch               = patch;
+       VkSurfaceFormatKHR res;
+       res.format              = format;
+       res.colorSpace  = colorSpace;
        return res;
 }
 
-inline VkPipelineCreationFeedback makePipelineCreationFeedback (VkPipelineCreationFeedbackFlags flags, uint64_t duration)
+inline VkBindShaderGroupIndirectCommandNV makeBindShaderGroupIndirectCommandNV (uint32_t groupIndex)
 {
-       VkPipelineCreationFeedback res;
-       res.flags               = flags;
-       res.duration    = duration;
+       VkBindShaderGroupIndirectCommandNV res;
+       res.groupIndex  = groupIndex;
        return res;
 }
 
-inline VkSurfaceFormatKHR makeSurfaceFormatKHR (VkFormat format, VkColorSpaceKHR colorSpace)
+inline VkBindIndexBufferIndirectCommandNV makeBindIndexBufferIndirectCommandNV (VkDeviceAddress bufferAddress, uint32_t size, VkIndexType indexType)
 {
-       VkSurfaceFormatKHR res;
-       res.format              = format;
-       res.colorSpace  = colorSpace;
+       VkBindIndexBufferIndirectCommandNV res;
+       res.bufferAddress       = bufferAddress;
+       res.size                        = size;
+       res.indexType           = indexType;
        return res;
 }
 
-inline VkDisplayPlanePropertiesKHR makeDisplayPlanePropertiesKHR (VkDisplayKHR currentDisplay, uint32_t currentStackIndex)
+inline VkBindVertexBufferIndirectCommandNV makeBindVertexBufferIndirectCommandNV (VkDeviceAddress bufferAddress, uint32_t size, uint32_t stride)
 {
-       VkDisplayPlanePropertiesKHR res;
-       res.currentDisplay              = currentDisplay;
-       res.currentStackIndex   = currentStackIndex;
+       VkBindVertexBufferIndirectCommandNV res;
+       res.bufferAddress       = bufferAddress;
+       res.size                        = size;
+       res.stride                      = stride;
+       return res;
+}
+
+inline VkSetStateFlagsIndirectCommandNV makeSetStateFlagsIndirectCommandNV (uint32_t data)
+{
+       VkSetStateFlagsIndirectCommandNV res;
+       res.data        = data;
+       return res;
+}
+
+inline VkIndirectCommandsStreamNV makeIndirectCommandsStreamNV (VkBuffer buffer, VkDeviceSize offset)
+{
+       VkIndirectCommandsStreamNV res;
+       res.buffer      = buffer;
+       res.offset      = offset;
+       return res;
+}
+
+inline VkConformanceVersion makeConformanceVersion (uint8_t major, uint8_t minor, uint8_t subminor, uint8_t patch)
+{
+       VkConformanceVersion res;
+       res.major               = major;
+       res.minor               = minor;
+       res.subminor    = subminor;
+       res.patch               = patch;
        return res;
 }
 
@@ -442,42 +461,32 @@ inline VkPresentRegionKHR makePresentRegionKHR (uint32_t rectangleCount, const V
        return res;
 }
 
-inline VkTraceRaysIndirectCommand2KHR makeTraceRaysIndirectCommand2KHR (VkDeviceAddress raygenShaderRecordAddress, VkDeviceSize raygenShaderRecordSize, VkDeviceAddress missShaderBindingTableAddress, VkDeviceSize missShaderBindingTableSize, VkDeviceSize missShaderBindingTableStride, VkDeviceAddress hitShaderBindingTableAddress, VkDeviceSize hitShaderBindingTableSize, VkDeviceSize hitShaderBindingTableStride, VkDeviceAddress callableShaderBindingTableAddress, VkDeviceSize callableShaderBindingTableSize, VkDeviceSize callableShaderBindingTableStride, uint32_t width, uint32_t height, uint32_t depth)
+inline VkExternalMemoryProperties makeExternalMemoryProperties (VkExternalMemoryFeatureFlags externalMemoryFeatures, VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes, VkExternalMemoryHandleTypeFlags compatibleHandleTypes)
 {
-       VkTraceRaysIndirectCommand2KHR res;
-       res.raygenShaderRecordAddress                   = raygenShaderRecordAddress;
-       res.raygenShaderRecordSize                              = raygenShaderRecordSize;
-       res.missShaderBindingTableAddress               = missShaderBindingTableAddress;
-       res.missShaderBindingTableSize                  = missShaderBindingTableSize;
-       res.missShaderBindingTableStride                = missShaderBindingTableStride;
-       res.hitShaderBindingTableAddress                = hitShaderBindingTableAddress;
-       res.hitShaderBindingTableSize                   = hitShaderBindingTableSize;
-       res.hitShaderBindingTableStride                 = hitShaderBindingTableStride;
-       res.callableShaderBindingTableAddress   = callableShaderBindingTableAddress;
-       res.callableShaderBindingTableSize              = callableShaderBindingTableSize;
-       res.callableShaderBindingTableStride    = callableShaderBindingTableStride;
-       res.width                                                               = width;
-       res.height                                                              = height;
-       res.depth                                                               = depth;
+       VkExternalMemoryProperties res;
+       res.externalMemoryFeatures                      = externalMemoryFeatures;
+       res.exportFromImportedHandleTypes       = exportFromImportedHandleTypes;
+       res.compatibleHandleTypes                       = compatibleHandleTypes;
        return res;
 }
 
-inline VkShaderResourceUsageAMD makeShaderResourceUsageAMD (uint32_t numUsedVgprs, uint32_t numUsedSgprs, uint32_t ldsSizePerLocalWorkGroup, size_t ldsUsageSizeInBytes, size_t scratchMemUsageInBytes)
+inline VkDescriptorUpdateTemplateEntry makeDescriptorUpdateTemplateEntry (uint32_t dstBinding, uint32_t dstArrayElement, uint32_t descriptorCount, VkDescriptorType descriptorType, size_t offset, size_t stride)
 {
-       VkShaderResourceUsageAMD res;
-       res.numUsedVgprs                                = numUsedVgprs;
-       res.numUsedSgprs                                = numUsedSgprs;
-       res.ldsSizePerLocalWorkGroup    = ldsSizePerLocalWorkGroup;
-       res.ldsUsageSizeInBytes                 = ldsUsageSizeInBytes;
-       res.scratchMemUsageInBytes              = scratchMemUsageInBytes;
+       VkDescriptorUpdateTemplateEntry res;
+       res.dstBinding          = dstBinding;
+       res.dstArrayElement     = dstArrayElement;
+       res.descriptorCount     = descriptorCount;
+       res.descriptorType      = descriptorType;
+       res.offset                      = offset;
+       res.stride                      = stride;
        return res;
 }
 
-inline VkViewportWScalingNV makeViewportWScalingNV (float xcoeff, float ycoeff)
+inline VkXYColorEXT makeXYColorEXT (float x, float y)
 {
-       VkViewportWScalingNV res;
-       res.xcoeff      = xcoeff;
-       res.ycoeff      = ycoeff;
+       VkXYColorEXT res;
+       res.x   = x;
+       res.y   = y;
        return res;
 }
 
@@ -507,6 +516,14 @@ inline VkPresentTimeGOOGLE makePresentTimeGOOGLE (uint32_t presentID, uint64_t d
        return res;
 }
 
+inline VkViewportWScalingNV makeViewportWScalingNV (float xcoeff, float ycoeff)
+{
+       VkViewportWScalingNV res;
+       res.xcoeff      = xcoeff;
+       res.ycoeff      = ycoeff;
+       return res;
+}
+
 inline VkViewportSwizzleNV makeViewportSwizzleNV (VkViewportCoordinateSwizzleNV x, VkViewportCoordinateSwizzleNV y, VkViewportCoordinateSwizzleNV z, VkViewportCoordinateSwizzleNV w)
 {
        VkViewportSwizzleNV res;
@@ -517,11 +534,12 @@ inline VkViewportSwizzleNV makeViewportSwizzleNV (VkViewportCoordinateSwizzleNV
        return res;
 }
 
-inline VkXYColorEXT makeXYColorEXT (float x, float y)
+inline VkInputAttachmentAspectReference makeInputAttachmentAspectReference (uint32_t subpass, uint32_t inputAttachmentIndex, VkImageAspectFlags aspectMask)
 {
-       VkXYColorEXT res;
-       res.x   = x;
-       res.y   = y;
+       VkInputAttachmentAspectReference res;
+       res.subpass                                     = subpass;
+       res.inputAttachmentIndex        = inputAttachmentIndex;
+       res.aspectMask                          = aspectMask;
        return res;
 }
 
@@ -533,21 +551,22 @@ inline VkSampleLocationEXT makeSampleLocationEXT (float x, float y)
        return res;
 }
 
-inline VkDrmFormatModifierPropertiesEXT makeDrmFormatModifierPropertiesEXT (uint64_t drmFormatModifier, uint32_t drmFormatModifierPlaneCount, VkFormatFeatureFlags drmFormatModifierTilingFeatures)
+inline VkShaderResourceUsageAMD makeShaderResourceUsageAMD (uint32_t numUsedVgprs, uint32_t numUsedSgprs, uint32_t ldsSizePerLocalWorkGroup, size_t ldsUsageSizeInBytes, size_t scratchMemUsageInBytes)
 {
-       VkDrmFormatModifierPropertiesEXT res;
-       res.drmFormatModifier                           = drmFormatModifier;
-       res.drmFormatModifierPlaneCount         = drmFormatModifierPlaneCount;
-       res.drmFormatModifierTilingFeatures     = drmFormatModifierTilingFeatures;
+       VkShaderResourceUsageAMD res;
+       res.numUsedVgprs                                = numUsedVgprs;
+       res.numUsedSgprs                                = numUsedSgprs;
+       res.ldsSizePerLocalWorkGroup    = ldsSizePerLocalWorkGroup;
+       res.ldsUsageSizeInBytes                 = ldsUsageSizeInBytes;
+       res.scratchMemUsageInBytes              = scratchMemUsageInBytes;
        return res;
 }
 
-inline VkDrmFormatModifierProperties2EXT makeDrmFormatModifierProperties2EXT (uint64_t drmFormatModifier, uint32_t drmFormatModifierPlaneCount, VkFormatFeatureFlags2 drmFormatModifierTilingFeatures)
+inline VkVertexInputBindingDivisorDescriptionEXT makeVertexInputBindingDivisorDescriptionEXT (uint32_t binding, uint32_t divisor)
 {
-       VkDrmFormatModifierProperties2EXT res;
-       res.drmFormatModifier                           = drmFormatModifier;
-       res.drmFormatModifierPlaneCount         = drmFormatModifierPlaneCount;
-       res.drmFormatModifierTilingFeatures     = drmFormatModifierTilingFeatures;
+       VkVertexInputBindingDivisorDescriptionEXT res;
+       res.binding     = binding;
+       res.divisor     = divisor;
        return res;
 }
 
@@ -578,71 +597,132 @@ inline VkCoarseSampleOrderCustomNV makeCoarseSampleOrderCustomNV (VkShadingRateP
        return res;
 }
 
-inline VkAabbPositionsKHR makeAabbPositionsKHR (float minX, float minY, float minZ, float maxX, float maxY, float maxZ)
+inline VkDrawMeshTasksIndirectCommandNV makeDrawMeshTasksIndirectCommandNV (uint32_t taskCount, uint32_t firstTask)
 {
-       VkAabbPositionsKHR res;
-       res.minX        = minX;
-       res.minY        = minY;
-       res.minZ        = minZ;
-       res.maxX        = maxX;
-       res.maxY        = maxY;
-       res.maxZ        = maxZ;
+       VkDrawMeshTasksIndirectCommandNV res;
+       res.taskCount   = taskCount;
+       res.firstTask   = firstTask;
        return res;
 }
 
-inline VkVertexInputBindingDivisorDescriptionEXT makeVertexInputBindingDivisorDescriptionEXT (uint32_t binding, uint32_t divisor)
+inline VkStridedDeviceAddressRegionKHR makeStridedDeviceAddressRegionKHR (VkDeviceAddress deviceAddress, VkDeviceSize stride, VkDeviceSize size)
 {
-       VkVertexInputBindingDivisorDescriptionEXT res;
-       res.binding     = binding;
-       res.divisor     = divisor;
+       VkStridedDeviceAddressRegionKHR res;
+       res.deviceAddress       = deviceAddress;
+       res.stride                      = stride;
+       res.size                        = size;
        return res;
 }
 
-inline VkDrawMeshTasksIndirectCommandNV makeDrawMeshTasksIndirectCommandNV (uint32_t taskCount, uint32_t firstTask)
+inline VkTraceRaysIndirectCommandKHR makeTraceRaysIndirectCommandKHR (uint32_t width, uint32_t height, uint32_t depth)
 {
-       VkDrawMeshTasksIndirectCommandNV res;
-       res.taskCount   = taskCount;
-       res.firstTask   = firstTask;
+       VkTraceRaysIndirectCommandKHR res;
+       res.width       = width;
+       res.height      = height;
+       res.depth       = depth;
        return res;
 }
 
-inline VkBindShaderGroupIndirectCommandNV makeBindShaderGroupIndirectCommandNV (uint32_t groupIndex)
+inline VkTraceRaysIndirectCommand2KHR makeTraceRaysIndirectCommand2KHR (VkDeviceAddress raygenShaderRecordAddress, VkDeviceSize raygenShaderRecordSize, VkDeviceAddress missShaderBindingTableAddress, VkDeviceSize missShaderBindingTableSize, VkDeviceSize missShaderBindingTableStride, VkDeviceAddress hitShaderBindingTableAddress, VkDeviceSize hitShaderBindingTableSize, VkDeviceSize hitShaderBindingTableStride, VkDeviceAddress callableShaderBindingTableAddress, VkDeviceSize callableShaderBindingTableSize, VkDeviceSize callableShaderBindingTableStride, uint32_t width, uint32_t height, uint32_t depth)
 {
-       VkBindShaderGroupIndirectCommandNV res;
-       res.groupIndex  = groupIndex;
+       VkTraceRaysIndirectCommand2KHR res;
+       res.raygenShaderRecordAddress                   = raygenShaderRecordAddress;
+       res.raygenShaderRecordSize                              = raygenShaderRecordSize;
+       res.missShaderBindingTableAddress               = missShaderBindingTableAddress;
+       res.missShaderBindingTableSize                  = missShaderBindingTableSize;
+       res.missShaderBindingTableStride                = missShaderBindingTableStride;
+       res.hitShaderBindingTableAddress                = hitShaderBindingTableAddress;
+       res.hitShaderBindingTableSize                   = hitShaderBindingTableSize;
+       res.hitShaderBindingTableStride                 = hitShaderBindingTableStride;
+       res.callableShaderBindingTableAddress   = callableShaderBindingTableAddress;
+       res.callableShaderBindingTableSize              = callableShaderBindingTableSize;
+       res.callableShaderBindingTableStride    = callableShaderBindingTableStride;
+       res.width                                                               = width;
+       res.height                                                              = height;
+       res.depth                                                               = depth;
        return res;
 }
 
-inline VkBindIndexBufferIndirectCommandNV makeBindIndexBufferIndirectCommandNV (VkDeviceAddress bufferAddress, uint32_t size, VkIndexType indexType)
+inline VkDrmFormatModifierPropertiesEXT makeDrmFormatModifierPropertiesEXT (uint64_t drmFormatModifier, uint32_t drmFormatModifierPlaneCount, VkFormatFeatureFlags drmFormatModifierTilingFeatures)
 {
-       VkBindIndexBufferIndirectCommandNV res;
-       res.bufferAddress       = bufferAddress;
-       res.size                        = size;
-       res.indexType           = indexType;
+       VkDrmFormatModifierPropertiesEXT res;
+       res.drmFormatModifier                           = drmFormatModifier;
+       res.drmFormatModifierPlaneCount         = drmFormatModifierPlaneCount;
+       res.drmFormatModifierTilingFeatures     = drmFormatModifierTilingFeatures;
        return res;
 }
 
-inline VkBindVertexBufferIndirectCommandNV makeBindVertexBufferIndirectCommandNV (VkDeviceAddress bufferAddress, uint32_t size, uint32_t stride)
+inline VkPipelineCreationFeedback makePipelineCreationFeedback (VkPipelineCreationFeedbackFlags flags, uint64_t duration)
 {
-       VkBindVertexBufferIndirectCommandNV res;
-       res.bufferAddress       = bufferAddress;
-       res.size                        = size;
-       res.stride                      = stride;
+       VkPipelineCreationFeedback res;
+       res.flags               = flags;
+       res.duration    = duration;
        return res;
 }
 
-inline VkSetStateFlagsIndirectCommandNV makeSetStateFlagsIndirectCommandNV (uint32_t data)
+inline VkAccelerationStructureBuildRangeInfoKHR makeAccelerationStructureBuildRangeInfoKHR (uint32_t primitiveCount, uint32_t primitiveOffset, uint32_t firstVertex, uint32_t transformOffset)
 {
-       VkSetStateFlagsIndirectCommandNV res;
-       res.data        = data;
+       VkAccelerationStructureBuildRangeInfoKHR res;
+       res.primitiveCount      = primitiveCount;
+       res.primitiveOffset     = primitiveOffset;
+       res.firstVertex         = firstVertex;
+       res.transformOffset     = transformOffset;
        return res;
 }
 
-inline VkIndirectCommandsStreamNV makeIndirectCommandsStreamNV (VkBuffer buffer, VkDeviceSize offset)
+inline VkAabbPositionsKHR makeAabbPositionsKHR (float minX, float minY, float minZ, float maxX, float maxY, float maxZ)
 {
-       VkIndirectCommandsStreamNV res;
-       res.buffer      = buffer;
-       res.offset      = offset;
+       VkAabbPositionsKHR res;
+       res.minX        = minX;
+       res.minY        = minY;
+       res.minZ        = minZ;
+       res.maxX        = maxX;
+       res.maxY        = maxY;
+       res.maxZ        = maxZ;
+       return res;
+}
+
+inline VkMutableDescriptorTypeListVALVE makeMutableDescriptorTypeListVALVE (uint32_t descriptorTypeCount, const VkDescriptorType* pDescriptorTypes)
+{
+       VkMutableDescriptorTypeListVALVE res;
+       res.descriptorTypeCount = descriptorTypeCount;
+       res.pDescriptorTypes    = pDescriptorTypes;
+       return res;
+}
+
+inline VkVideoEncodeH264QpEXT makeVideoEncodeH264QpEXT (int32_t qpI, int32_t qpP, int32_t qpB)
+{
+       VkVideoEncodeH264QpEXT res;
+       res.qpI = qpI;
+       res.qpP = qpP;
+       res.qpB = qpB;
+       return res;
+}
+
+inline VkVideoEncodeH264FrameSizeEXT makeVideoEncodeH264FrameSizeEXT (uint32_t frameISize, uint32_t framePSize, uint32_t frameBSize)
+{
+       VkVideoEncodeH264FrameSizeEXT res;
+       res.frameISize  = frameISize;
+       res.framePSize  = framePSize;
+       res.frameBSize  = frameBSize;
+       return res;
+}
+
+inline VkVideoEncodeH265QpEXT makeVideoEncodeH265QpEXT (int32_t qpI, int32_t qpP, int32_t qpB)
+{
+       VkVideoEncodeH265QpEXT res;
+       res.qpI = qpI;
+       res.qpP = qpP;
+       res.qpB = qpB;
+       return res;
+}
+
+inline VkVideoEncodeH265FrameSizeEXT makeVideoEncodeH265FrameSizeEXT (uint32_t frameISize, uint32_t framePSize, uint32_t frameBSize)
+{
+       VkVideoEncodeH265FrameSizeEXT res;
+       res.frameISize  = frameISize;
+       res.framePSize  = framePSize;
+       res.frameBSize  = frameBSize;
        return res;
 }
 
@@ -668,28 +748,12 @@ inline VkSRTDataNV makeSRTDataNV (float sx, float a, float b, float pvx, float s
        return res;
 }
 
-inline VkMutableDescriptorTypeListVALVE makeMutableDescriptorTypeListVALVE (uint32_t descriptorTypeCount, const VkDescriptorType* pDescriptorTypes)
-{
-       VkMutableDescriptorTypeListVALVE res;
-       res.descriptorTypeCount = descriptorTypeCount;
-       res.pDescriptorTypes    = pDescriptorTypes;
-       return res;
-}
-
-inline VkMultiDrawInfoEXT makeMultiDrawInfoEXT (uint32_t firstVertex, uint32_t vertexCount)
-{
-       VkMultiDrawInfoEXT res;
-       res.firstVertex = firstVertex;
-       res.vertexCount = vertexCount;
-       return res;
-}
-
-inline VkMultiDrawIndexedInfoEXT makeMultiDrawIndexedInfoEXT (uint32_t firstIndex, uint32_t indexCount, int32_t vertexOffset)
+inline VkDrmFormatModifierProperties2EXT makeDrmFormatModifierProperties2EXT (uint64_t drmFormatModifier, uint32_t drmFormatModifierPlaneCount, VkFormatFeatureFlags2 drmFormatModifierTilingFeatures)
 {
-       VkMultiDrawIndexedInfoEXT res;
-       res.firstIndex          = firstIndex;
-       res.indexCount          = indexCount;
-       res.vertexOffset        = vertexOffset;
+       VkDrmFormatModifierProperties2EXT res;
+       res.drmFormatModifier                           = drmFormatModifier;
+       res.drmFormatModifierPlaneCount         = drmFormatModifierPlaneCount;
+       res.drmFormatModifierTilingFeatures     = drmFormatModifierTilingFeatures;
        return res;
 }
 
@@ -700,31 +764,12 @@ inline VkRenderPassCreationFeedbackInfoEXT makeRenderPassCreationFeedbackInfoEXT
        return res;
 }
 
-inline VkAccelerationStructureBuildRangeInfoKHR makeAccelerationStructureBuildRangeInfoKHR (uint32_t primitiveCount, uint32_t primitiveOffset, uint32_t firstVertex, uint32_t transformOffset)
-{
-       VkAccelerationStructureBuildRangeInfoKHR res;
-       res.primitiveCount      = primitiveCount;
-       res.primitiveOffset     = primitiveOffset;
-       res.firstVertex         = firstVertex;
-       res.transformOffset     = transformOffset;
-       return res;
-}
-
-inline VkStridedDeviceAddressRegionKHR makeStridedDeviceAddressRegionKHR (VkDeviceAddress deviceAddress, VkDeviceSize stride, VkDeviceSize size)
-{
-       VkStridedDeviceAddressRegionKHR res;
-       res.deviceAddress       = deviceAddress;
-       res.stride                      = stride;
-       res.size                        = size;
-       return res;
-}
-
-inline VkTraceRaysIndirectCommandKHR makeTraceRaysIndirectCommandKHR (uint32_t width, uint32_t height, uint32_t depth)
+inline StdVideoDecodeH264Mvc makeStdVideoDecodeH264Mvc (uint32_t viewId0, uint32_t mvcElementCount, const StdVideoDecodeH264MvcElement* pMvcElements)
 {
-       VkTraceRaysIndirectCommandKHR res;
-       res.width       = width;
-       res.height      = height;
-       res.depth       = depth;
+       StdVideoDecodeH264Mvc res;
+       res.viewId0                     = viewId0;
+       res.mvcElementCount     = mvcElementCount;
+       res.pMvcElements        = pMvcElements;
        return res;
 }
 
@@ -758,24 +803,6 @@ inline StdVideoEncodeH264RefPicMarkingEntry makeStdVideoEncodeH264RefPicMarkingE
        return res;
 }
 
-inline VkVideoEncodeH264QpEXT makeVideoEncodeH264QpEXT (int32_t qpI, int32_t qpP, int32_t qpB)
-{
-       VkVideoEncodeH264QpEXT res;
-       res.qpI = qpI;
-       res.qpP = qpP;
-       res.qpB = qpB;
-       return res;
-}
-
-inline VkVideoEncodeH264FrameSizeEXT makeVideoEncodeH264FrameSizeEXT (uint32_t frameISize, uint32_t framePSize, uint32_t frameBSize)
-{
-       VkVideoEncodeH264FrameSizeEXT res;
-       res.frameISize  = frameISize;
-       res.framePSize  = framePSize;
-       res.frameBSize  = frameBSize;
-       return res;
-}
-
 inline StdVideoEncodeH265WeightTableFlags makeStdVideoEncodeH265WeightTableFlags (uint16_t luma_weight_l0_flag, uint16_t chroma_weight_l0_flag, uint16_t luma_weight_l1_flag, uint16_t chroma_weight_l1_flag)
 {
        StdVideoEncodeH265WeightTableFlags res;
@@ -785,30 +812,3 @@ inline StdVideoEncodeH265WeightTableFlags makeStdVideoEncodeH265WeightTableFlags
        res.chroma_weight_l1_flag       = chroma_weight_l1_flag;
        return res;
 }
-
-inline VkVideoEncodeH265QpEXT makeVideoEncodeH265QpEXT (int32_t qpI, int32_t qpP, int32_t qpB)
-{
-       VkVideoEncodeH265QpEXT res;
-       res.qpI = qpI;
-       res.qpP = qpP;
-       res.qpB = qpB;
-       return res;
-}
-
-inline VkVideoEncodeH265FrameSizeEXT makeVideoEncodeH265FrameSizeEXT (uint32_t frameISize, uint32_t framePSize, uint32_t frameBSize)
-{
-       VkVideoEncodeH265FrameSizeEXT res;
-       res.frameISize  = frameISize;
-       res.framePSize  = framePSize;
-       res.frameBSize  = frameBSize;
-       return res;
-}
-
-inline StdVideoDecodeH264Mvc makeStdVideoDecodeH264Mvc (uint32_t viewId0, uint32_t mvcElementCount, const StdVideoDecodeH264MvcElement* pMvcElements)
-{
-       StdVideoDecodeH264Mvc res;
-       res.viewId0                     = viewId0;
-       res.mvcElementCount     = mvcElementCount;
-       res.pMvcElements        = pMvcElements;
-       return res;
-}
index 1ff25ff..c5b7f00 100644 (file)
@@ -16,10 +16,10 @@ virtual void                                unmapMemory                                                                             (VkDevice device, VkDeviceMemory memory) co
 virtual VkResult                       flushMappedMemoryRanges                                                 (VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const = 0;
 virtual VkResult                       invalidateMappedMemoryRanges                                    (VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const = 0;
 virtual void                           getDeviceMemoryCommitment                                               (VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) const = 0;
-virtual VkResult                       bindBufferMemory                                                                (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) const = 0;
-virtual VkResult                       bindImageMemory                                                                 (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) const = 0;
 virtual void                           getBufferMemoryRequirements                                             (VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) const = 0;
+virtual VkResult                       bindBufferMemory                                                                (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) const = 0;
 virtual void                           getImageMemoryRequirements                                              (VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) const = 0;
+virtual VkResult                       bindImageMemory                                                                 (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) const = 0;
 virtual void                           getImageSparseMemoryRequirements                                (VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) const = 0;
 virtual VkResult                       queueBindSparse                                                                 (VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) const = 0;
 virtual VkResult                       createFence                                                                             (VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const = 0;
@@ -37,6 +37,7 @@ virtual VkResult                      resetEvent                                                                              (VkDevice device, VkEvent event) const =
 virtual VkResult                       createQueryPool                                                                 (VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) const = 0;
 virtual void                           destroyQueryPool                                                                (VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator) const = 0;
 virtual VkResult                       getQueryPoolResults                                                             (VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) const = 0;
+virtual void                           resetQueryPool                                                                  (VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) const = 0;
 virtual VkResult                       createBuffer                                                                    (VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) const = 0;
 virtual void                           destroyBuffer                                                                   (VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator) const = 0;
 virtual VkResult                       createBufferView                                                                (VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView) const = 0;
@@ -54,6 +55,7 @@ virtual VkResult                      getPipelineCacheData                                                    (VkDevice device, VkPipelineCache
 virtual VkResult                       mergePipelineCaches                                                             (VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches) const = 0;
 virtual VkResult                       createGraphicsPipelines                                                 (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const = 0;
 virtual VkResult                       createComputePipelines                                                  (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const = 0;
+virtual VkResult                       getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI   (VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize) const = 0;
 virtual void                           destroyPipeline                                                                 (VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) const = 0;
 virtual VkResult                       createPipelineLayout                                                    (VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) const = 0;
 virtual void                           destroyPipelineLayout                                                   (VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) const = 0;
@@ -95,10 +97,13 @@ virtual void                                cmdBindIndexBuffer                                                              (VkCommandBuffer commandBuffer, VkBuff
 virtual void                           cmdBindVertexBuffers                                                    (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) const = 0;
 virtual void                           cmdDraw                                                                                 (VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) const = 0;
 virtual void                           cmdDrawIndexed                                                                  (VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) const = 0;
+virtual void                           cmdDrawMultiEXT                                                                 (VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride) const = 0;
+virtual void                           cmdDrawMultiIndexedEXT                                                  (VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawIndexedInfoEXT* pIndexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride, const int32_t* pVertexOffset) const = 0;
 virtual void                           cmdDrawIndirect                                                                 (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) const = 0;
 virtual void                           cmdDrawIndexedIndirect                                                  (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) const = 0;
 virtual void                           cmdDispatch                                                                             (VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) const = 0;
 virtual void                           cmdDispatchIndirect                                                             (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) const = 0;
+virtual void                           cmdSubpassShadingHUAWEI                                                 (VkCommandBuffer commandBuffer) const = 0;
 virtual void                           cmdCopyBuffer                                                                   (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions) const = 0;
 virtual void                           cmdCopyImage                                                                    (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions) const = 0;
 virtual void                           cmdBlitImage                                                                    (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter) const = 0;
@@ -116,6 +121,8 @@ virtual void                                cmdWaitEvents                                                                   (VkCommandBuffer commandBuffer, uint32_t e
 virtual void                           cmdPipelineBarrier                                                              (VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) const = 0;
 virtual void                           cmdBeginQuery                                                                   (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) const = 0;
 virtual void                           cmdEndQuery                                                                             (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query) const = 0;
+virtual void                           cmdBeginConditionalRenderingEXT                                 (VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) const = 0;
+virtual void                           cmdEndConditionalRenderingEXT                                   (VkCommandBuffer commandBuffer) const = 0;
 virtual void                           cmdResetQueryPool                                                               (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) const = 0;
 virtual void                           cmdWriteTimestamp                                                               (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query) const = 0;
 virtual void                           cmdCopyQueryPoolResults                                                 (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) const = 0;
@@ -124,136 +131,83 @@ virtual void                             cmdBeginRenderPass                                                              (VkCommandBuffer commandBuffer, const
 virtual void                           cmdNextSubpass                                                                  (VkCommandBuffer commandBuffer, VkSubpassContents contents) const = 0;
 virtual void                           cmdEndRenderPass                                                                (VkCommandBuffer commandBuffer) const = 0;
 virtual void                           cmdExecuteCommands                                                              (VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) const = 0;
-virtual VkResult                       bindBufferMemory2                                                               (VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos) const = 0;
-virtual VkResult                       bindImageMemory2                                                                (VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) const = 0;
-virtual void                           getDeviceGroupPeerMemoryFeatures                                (VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) const = 0;
-virtual void                           cmdSetDeviceMask                                                                (VkCommandBuffer commandBuffer, uint32_t deviceMask) const = 0;
-virtual void                           cmdDispatchBase                                                                 (VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) const = 0;
-virtual void                           getImageMemoryRequirements2                                             (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const = 0;
-virtual void                           getBufferMemoryRequirements2                                    (VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const = 0;
-virtual void                           getImageSparseMemoryRequirements2                               (VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) const = 0;
-virtual void                           trimCommandPool                                                                 (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags) const = 0;
-virtual void                           getDeviceQueue2                                                                 (VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue) const = 0;
-virtual VkResult                       createSamplerYcbcrConversion                                    (VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) const = 0;
-virtual void                           destroySamplerYcbcrConversion                                   (VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult                       createDescriptorUpdateTemplate                                  (VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) const = 0;
-virtual void                           destroyDescriptorUpdateTemplate                                 (VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual void                           updateDescriptorSetWithTemplate                                 (VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData) const = 0;
-virtual void                           getDescriptorSetLayoutSupport                                   (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport) const = 0;
-virtual void                           cmdDrawIndirectCount                                                    (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const = 0;
-virtual void                           cmdDrawIndexedIndirectCount                                             (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const = 0;
-virtual VkResult                       createRenderPass2                                                               (VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) const = 0;
-virtual void                           cmdBeginRenderPass2                                                             (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo) const = 0;
-virtual void                           cmdNextSubpass2                                                                 (VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo) const = 0;
-virtual void                           cmdEndRenderPass2                                                               (VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo) const = 0;
-virtual void                           resetQueryPool                                                                  (VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) const = 0;
-virtual VkResult                       getSemaphoreCounterValue                                                (VkDevice device, VkSemaphore semaphore, uint64_t* pValue) const = 0;
-virtual VkResult                       waitSemaphores                                                                  (VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout) const = 0;
-virtual VkResult                       signalSemaphore                                                                 (VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo) const = 0;
-virtual VkDeviceAddress                getBufferDeviceAddress                                                  (VkDevice device, const VkBufferDeviceAddressInfo* pInfo) const = 0;
-virtual uint64_t                       getBufferOpaqueCaptureAddress                                   (VkDevice device, const VkBufferDeviceAddressInfo* pInfo) const = 0;
-virtual uint64_t                       getDeviceMemoryOpaqueCaptureAddress                             (VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) const = 0;
-virtual VkResult                       createPrivateDataSlot                                                   (VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot) const = 0;
-virtual void                           destroyPrivateDataSlot                                                  (VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult                       setPrivateData                                                                  (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data) const = 0;
-virtual void                           getPrivateData                                                                  (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData) const = 0;
-virtual void                           cmdSetEvent2                                                                    (VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo) const = 0;
-virtual void                           cmdResetEvent2                                                                  (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask) const = 0;
-virtual void                           cmdWaitEvents2                                                                  (VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos) const = 0;
-virtual void                           cmdPipelineBarrier2                                                             (VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo) const = 0;
-virtual void                           cmdWriteTimestamp2                                                              (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query) const = 0;
-virtual VkResult                       queueSubmit2                                                                    (VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence) const = 0;
-virtual void                           cmdCopyBuffer2                                                                  (VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo) const = 0;
-virtual void                           cmdCopyImage2                                                                   (VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo) const = 0;
-virtual void                           cmdCopyBufferToImage2                                                   (VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) const = 0;
-virtual void                           cmdCopyImageToBuffer2                                                   (VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) const = 0;
-virtual void                           cmdBlitImage2                                                                   (VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo) const = 0;
-virtual void                           cmdResolveImage2                                                                (VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo) const = 0;
-virtual void                           cmdBeginRendering                                                               (VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo) const = 0;
-virtual void                           cmdEndRendering                                                                 (VkCommandBuffer commandBuffer) const = 0;
-virtual void                           cmdSetCullMode                                                                  (VkCommandBuffer commandBuffer, VkCullModeFlags cullMode) const = 0;
-virtual void                           cmdSetFrontFace                                                                 (VkCommandBuffer commandBuffer, VkFrontFace frontFace) const = 0;
-virtual void                           cmdSetPrimitiveTopology                                                 (VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology) const = 0;
-virtual void                           cmdSetViewportWithCount                                                 (VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports) const = 0;
-virtual void                           cmdSetScissorWithCount                                                  (VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors) const = 0;
-virtual void                           cmdBindVertexBuffers2                                                   (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides) const = 0;
-virtual void                           cmdSetDepthTestEnable                                                   (VkCommandBuffer commandBuffer, VkBool32 depthTestEnable) const = 0;
-virtual void                           cmdSetDepthWriteEnable                                                  (VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable) const = 0;
-virtual void                           cmdSetDepthCompareOp                                                    (VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp) const = 0;
-virtual void                           cmdSetDepthBoundsTestEnable                                             (VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable) const = 0;
-virtual void                           cmdSetStencilTestEnable                                                 (VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable) const = 0;
-virtual void                           cmdSetStencilOp                                                                 (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp) const = 0;
-virtual void                           cmdSetRasterizerDiscardEnable                                   (VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable) const = 0;
-virtual void                           cmdSetDepthBiasEnable                                                   (VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable) const = 0;
-virtual void                           cmdSetPrimitiveRestartEnable                                    (VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable) const = 0;
-virtual void                           getDeviceBufferMemoryRequirements                               (VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) const = 0;
-virtual void                           getDeviceImageMemoryRequirements                                (VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) const = 0;
-virtual void                           getDeviceImageSparseMemoryRequirements                  (VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) const = 0;
+virtual VkResult                       createSharedSwapchainsKHR                                               (VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const = 0;
 virtual VkResult                       createSwapchainKHR                                                              (VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) const = 0;
 virtual void                           destroySwapchainKHR                                                             (VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) const = 0;
 virtual VkResult                       getSwapchainImagesKHR                                                   (VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages) const = 0;
 virtual VkResult                       acquireNextImageKHR                                                             (VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex) const = 0;
 virtual VkResult                       queuePresentKHR                                                                 (VkQueue queue, const VkPresentInfoKHR* pPresentInfo) 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, uint32_t* pImageIndex) const = 0;
-virtual VkResult                       createSharedSwapchainsKHR                                               (VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const = 0;
-virtual VkResult                       getMemoryFdKHR                                                                  (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) const = 0;
-virtual VkResult                       getMemoryFdPropertiesKHR                                                (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) 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, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites) const = 0;
-virtual void                           cmdPushDescriptorSetWithTemplateKHR                             (VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData) const = 0;
-virtual VkResult                       getSwapchainStatusKHR                                                   (VkDevice device, VkSwapchainKHR swapchain) const = 0;
-virtual VkResult                       importFenceFdKHR                                                                (VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo) const = 0;
-virtual VkResult                       getFenceFdKHR                                                                   (VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd) const = 0;
-virtual VkResult                       acquireProfilingLockKHR                                                 (VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo) const = 0;
-virtual void                           releaseProfilingLockKHR                                                 (VkDevice device) const = 0;
-virtual void                           cmdSetFragmentShadingRateKHR                                    (VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const = 0;
-virtual VkResult                       waitForPresentKHR                                                               (VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout) const = 0;
-virtual VkResult                       createDeferredOperationKHR                                              (VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation) const = 0;
-virtual void                           destroyDeferredOperationKHR                                             (VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual uint32_t                       getDeferredOperationMaxConcurrencyKHR                   (VkDevice device, VkDeferredOperationKHR operation) const = 0;
-virtual VkResult                       getDeferredOperationResultKHR                                   (VkDevice device, VkDeferredOperationKHR operation) const = 0;
-virtual VkResult                       deferredOperationJoinKHR                                                (VkDevice device, VkDeferredOperationKHR operation) const = 0;
-virtual VkResult                       getPipelineExecutablePropertiesKHR                              (VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties) const = 0;
-virtual VkResult                       getPipelineExecutableStatisticsKHR                              (VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics) const = 0;
-virtual VkResult                       getPipelineExecutableInternalRepresentationsKHR (VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) const = 0;
-virtual void                           cmdWriteBufferMarker2AMD                                                (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker) const = 0;
-virtual void                           getQueueCheckpointData2NV                                               (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData) const = 0;
-virtual void                           cmdTraceRaysIndirect2KHR                                                (VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress) const = 0;
-virtual VkResult                       debugMarkerSetObjectTagEXT                                              (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo) const = 0;
 virtual VkResult                       debugMarkerSetObjectNameEXT                                             (VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo) const = 0;
+virtual VkResult                       debugMarkerSetObjectTagEXT                                              (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo) 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                           cmdBindTransformFeedbackBuffersEXT                              (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes) const = 0;
-virtual void                           cmdBeginTransformFeedbackEXT                                    (VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) const = 0;
-virtual void                           cmdEndTransformFeedbackEXT                                              (VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) const = 0;
-virtual void                           cmdBeginQueryIndexedEXT                                                 (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index) const = 0;
-virtual void                           cmdEndQueryIndexedEXT                                                   (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index) const = 0;
-virtual void                           cmdDrawIndirectByteCountEXT                                             (VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride) const = 0;
-virtual VkResult                       createCuModuleNVX                                                               (VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule) const = 0;
-virtual VkResult                       createCuFunctionNVX                                                             (VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction) const = 0;
-virtual void                           destroyCuModuleNVX                                                              (VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual void                           destroyCuFunctionNVX                                                    (VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual void                           cmdCuLaunchKernelNVX                                                    (VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo) const = 0;
-virtual uint32_t                       getImageViewHandleNVX                                                   (VkDevice device, const VkImageViewHandleInfoNVX* pInfo) const = 0;
-virtual VkResult                       getImageViewAddressNVX                                                  (VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties) const = 0;
-virtual void                           cmdDrawIndirectCountAMD                                                 (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const = 0;
-virtual void                           cmdDrawIndexedIndirectCountAMD                                  (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const = 0;
-virtual VkResult                       getShaderInfoAMD                                                                (VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo) const = 0;
-virtual void                           cmdBeginConditionalRenderingEXT                                 (VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) const = 0;
-virtual void                           cmdEndConditionalRenderingEXT                                   (VkCommandBuffer commandBuffer) const = 0;
-virtual void                           cmdSetViewportWScalingNV                                                (VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings) const = 0;
+virtual VkResult                       getMemoryWin32HandleNV                                                  (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle) const = 0;
+virtual void                           cmdExecuteGeneratedCommandsNV                                   (VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) const = 0;
+virtual void                           cmdPreprocessGeneratedCommandsNV                                (VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) const = 0;
+virtual void                           cmdBindPipelineShaderGroupNV                                    (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex) const = 0;
+virtual void                           getGeneratedCommandsMemoryRequirementsNV                (VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements) const = 0;
+virtual VkResult                       createIndirectCommandsLayoutNV                                  (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout) const = 0;
+virtual void                           destroyIndirectCommandsLayoutNV                                 (VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual void                           cmdPushDescriptorSetKHR                                                 (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites) const = 0;
+virtual void                           trimCommandPool                                                                 (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags) const = 0;
+virtual VkResult                       getMemoryWin32HandleKHR                                                 (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const = 0;
+virtual VkResult                       getMemoryWin32HandlePropertiesKHR                               (VkDevice device, VkExternalMemoryHandleTypeFlagBits 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, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) const = 0;
+virtual VkResult                       getMemoryZirconHandleFUCHSIA                                    (VkDevice device, const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, pt::zx_handle_t* pZirconHandle) const = 0;
+virtual VkResult                       getMemoryZirconHandlePropertiesFUCHSIA                  (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties) const = 0;
+virtual VkResult                       getMemoryRemoteAddressNV                                                (VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress) const = 0;
+virtual VkResult                       getSemaphoreWin32HandleKHR                                              (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const = 0;
+virtual VkResult                       importSemaphoreWin32HandleKHR                                   (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) const = 0;
+virtual VkResult                       getSemaphoreFdKHR                                                               (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) const = 0;
+virtual VkResult                       importSemaphoreFdKHR                                                    (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) const = 0;
+virtual VkResult                       getSemaphoreZirconHandleFUCHSIA                                 (VkDevice device, const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, pt::zx_handle_t* pZirconHandle) const = 0;
+virtual VkResult                       importSemaphoreZirconHandleFUCHSIA                              (VkDevice device, const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo) const = 0;
+virtual VkResult                       getFenceWin32HandleKHR                                                  (VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const = 0;
+virtual VkResult                       importFenceWin32HandleKHR                                               (VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) const = 0;
+virtual VkResult                       getFenceFdKHR                                                                   (VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd) const = 0;
+virtual VkResult                       importFenceFdKHR                                                                (VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo) 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, uint64_t* pCounterValue) const = 0;
+virtual void                           getDeviceGroupPeerMemoryFeatures                                (VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) const = 0;
+virtual VkResult                       bindBufferMemory2                                                               (VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos) const = 0;
+virtual VkResult                       bindImageMemory2                                                                (VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) const = 0;
+virtual void                           cmdSetDeviceMask                                                                (VkCommandBuffer commandBuffer, uint32_t deviceMask) 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, uint32_t* pImageIndex) const = 0;
+virtual void                           cmdDispatchBase                                                                 (VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) const = 0;
+virtual VkResult                       createDescriptorUpdateTemplate                                  (VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) const = 0;
+virtual void                           destroyDescriptorUpdateTemplate                                 (VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual void                           updateDescriptorSetWithTemplate                                 (VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData) const = 0;
+virtual void                           cmdPushDescriptorSetWithTemplateKHR                             (VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData) const = 0;
+virtual void                           setHdrMetadataEXT                                                               (VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata) const = 0;
+virtual VkResult                       getSwapchainStatusKHR                                                   (VkDevice device, VkSwapchainKHR swapchain) const = 0;
 virtual VkResult                       getRefreshCycleDurationGOOGLE                                   (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) const = 0;
 virtual VkResult                       getPastPresentationTimingGOOGLE                                 (VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings) const = 0;
+virtual void                           cmdSetViewportWScalingNV                                                (VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings) const = 0;
 virtual void                           cmdSetDiscardRectangleEXT                                               (VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles) const = 0;
-virtual void                           setHdrMetadataEXT                                                               (VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata) const = 0;
+virtual void                           cmdSetSampleLocationsEXT                                                (VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo) const = 0;
+virtual void                           getBufferMemoryRequirements2                                    (VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const = 0;
+virtual void                           getImageMemoryRequirements2                                             (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const = 0;
+virtual void                           getImageSparseMemoryRequirements2                               (VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) const = 0;
+virtual void                           getDeviceBufferMemoryRequirements                               (VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) const = 0;
+virtual void                           getDeviceImageMemoryRequirements                                (VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) const = 0;
+virtual void                           getDeviceImageSparseMemoryRequirements                  (VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) const = 0;
+virtual VkResult                       createSamplerYcbcrConversion                                    (VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) const = 0;
+virtual void                           destroySamplerYcbcrConversion                                   (VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual void                           getDeviceQueue2                                                                 (VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue) const = 0;
+virtual VkResult                       createValidationCacheEXT                                                (VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache) const = 0;
+virtual void                           destroyValidationCacheEXT                                               (VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult                       getValidationCacheDataEXT                                               (VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData) const = 0;
+virtual VkResult                       mergeValidationCachesEXT                                                (VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches) const = 0;
+virtual void                           getDescriptorSetLayoutSupport                                   (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport) const = 0;
+virtual VkResult                       getShaderInfoAMD                                                                (VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo) const = 0;
+virtual void                           setLocalDimmingAMD                                                              (VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable) const = 0;
+virtual VkResult                       getCalibratedTimestampsEXT                                              (VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation) const = 0;
 virtual VkResult                       setDebugUtilsObjectNameEXT                                              (VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo) const = 0;
 virtual VkResult                       setDebugUtilsObjectTagEXT                                               (VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo) const = 0;
 virtual void                           queueBeginDebugUtilsLabelEXT                                    (VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo) const = 0;
@@ -262,37 +216,74 @@ virtual void                              queueInsertDebugUtilsLabelEXT                                   (VkQueue queue, const VkDebugU
 virtual void                           cmdBeginDebugUtilsLabelEXT                                              (VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo) const = 0;
 virtual void                           cmdEndDebugUtilsLabelEXT                                                (VkCommandBuffer commandBuffer) const = 0;
 virtual void                           cmdInsertDebugUtilsLabelEXT                                             (VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo) const = 0;
-virtual void                           cmdSetSampleLocationsEXT                                                (VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo) const = 0;
-virtual VkResult                       getImageDrmFormatModifierPropertiesEXT                  (VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties) const = 0;
-virtual VkResult                       createValidationCacheEXT                                                (VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache) const = 0;
-virtual void                           destroyValidationCacheEXT                                               (VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult                       mergeValidationCachesEXT                                                (VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches) const = 0;
-virtual VkResult                       getValidationCacheDataEXT                                               (VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData) const = 0;
+virtual VkResult                       getMemoryHostPointerPropertiesEXT                               (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) const = 0;
+virtual void                           cmdWriteBufferMarkerAMD                                                 (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker) const = 0;
+virtual VkResult                       createRenderPass2                                                               (VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) const = 0;
+virtual void                           cmdBeginRenderPass2                                                             (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo) const = 0;
+virtual void                           cmdNextSubpass2                                                                 (VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo) const = 0;
+virtual void                           cmdEndRenderPass2                                                               (VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo) const = 0;
+virtual VkResult                       getSemaphoreCounterValue                                                (VkDevice device, VkSemaphore semaphore, uint64_t* pValue) const = 0;
+virtual VkResult                       waitSemaphores                                                                  (VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout) const = 0;
+virtual VkResult                       signalSemaphore                                                                 (VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo) const = 0;
+virtual VkResult                       getAndroidHardwareBufferPropertiesANDROID               (VkDevice device, const struct pt::AndroidHardwareBufferPtr buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties) const = 0;
+virtual VkResult                       getMemoryAndroidHardwareBufferANDROID                   (VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct pt::AndroidHardwareBufferPtr* pBuffer) const = 0;
+virtual void                           cmdDrawIndirectCount                                                    (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const = 0;
+virtual void                           cmdDrawIndexedIndirectCount                                             (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const = 0;
+virtual void                           cmdSetCheckpointNV                                                              (VkCommandBuffer commandBuffer, const void* pCheckpointMarker) const = 0;
+virtual void                           getQueueCheckpointDataNV                                                (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData) const = 0;
+virtual void                           cmdBindTransformFeedbackBuffersEXT                              (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes) const = 0;
+virtual void                           cmdBeginTransformFeedbackEXT                                    (VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) const = 0;
+virtual void                           cmdEndTransformFeedbackEXT                                              (VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) const = 0;
+virtual void                           cmdBeginQueryIndexedEXT                                                 (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index) const = 0;
+virtual void                           cmdEndQueryIndexedEXT                                                   (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index) const = 0;
+virtual void                           cmdDrawIndirectByteCountEXT                                             (VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride) const = 0;
+virtual void                           cmdSetExclusiveScissorNV                                                (VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors) const = 0;
 virtual void                           cmdBindShadingRateImageNV                                               (VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout) const = 0;
 virtual void                           cmdSetViewportShadingRatePaletteNV                              (VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes) const = 0;
 virtual void                           cmdSetCoarseSampleOrderNV                                               (VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) const = 0;
+virtual void                           cmdDrawMeshTasksNV                                                              (VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask) const = 0;
+virtual void                           cmdDrawMeshTasksIndirectNV                                              (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) const = 0;
+virtual void                           cmdDrawMeshTasksIndirectCountNV                                 (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const = 0;
+virtual VkResult                       compileDeferredNV                                                               (VkDevice device, VkPipeline pipeline, uint32_t shader) const = 0;
 virtual VkResult                       createAccelerationStructureNV                                   (VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure) const = 0;
+virtual void                           cmdBindInvocationMaskHUAWEI                                             (VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout) const = 0;
+virtual void                           destroyAccelerationStructureKHR                                 (VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator) const = 0;
 virtual void                           destroyAccelerationStructureNV                                  (VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator) const = 0;
 virtual void                           getAccelerationStructureMemoryRequirementsNV    (VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements) const = 0;
 virtual VkResult                       bindAccelerationStructureMemoryNV                               (VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) const = 0;
-virtual void                           cmdBuildAccelerationStructureNV                                 (VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset) const = 0;
 virtual void                           cmdCopyAccelerationStructureNV                                  (VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode) const = 0;
+virtual void                           cmdCopyAccelerationStructureKHR                                 (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo) const = 0;
+virtual VkResult                       copyAccelerationStructureKHR                                    (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo) const = 0;
+virtual void                           cmdCopyAccelerationStructureToMemoryKHR                 (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) const = 0;
+virtual VkResult                       copyAccelerationStructureToMemoryKHR                    (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) const = 0;
+virtual void                           cmdCopyMemoryToAccelerationStructureKHR                 (VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) const = 0;
+virtual VkResult                       copyMemoryToAccelerationStructureKHR                    (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) const = 0;
+virtual void                           cmdWriteAccelerationStructuresPropertiesKHR             (VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery) const = 0;
+virtual void                           cmdWriteAccelerationStructuresPropertiesNV              (VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery) const = 0;
+virtual void                           cmdBuildAccelerationStructureNV                                 (VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset) const = 0;
+virtual VkResult                       writeAccelerationStructuresPropertiesKHR                (VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride) const = 0;
+virtual void                           cmdTraceRaysKHR                                                                 (VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth) const = 0;
 virtual void                           cmdTraceRaysNV                                                                  (VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth) const = 0;
-virtual VkResult                       createRayTracingPipelinesNV                                             (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const = 0;
 virtual VkResult                       getRayTracingShaderGroupHandlesKHR                              (VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData) const = 0;
-virtual VkResult                       getRayTracingShaderGroupHandlesNV                               (VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData) const = 0;
+virtual VkResult                       getRayTracingCaptureReplayShaderGroupHandlesKHR (VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData) const = 0;
 virtual VkResult                       getAccelerationStructureHandleNV                                (VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData) const = 0;
-virtual void                           cmdWriteAccelerationStructuresPropertiesNV              (VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery) const = 0;
-virtual VkResult                       compileDeferredNV                                                               (VkDevice device, VkPipeline pipeline, uint32_t shader) const = 0;
-virtual VkResult                       getMemoryHostPointerPropertiesEXT                               (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) const = 0;
-virtual void                           cmdWriteBufferMarkerAMD                                                 (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker) const = 0;
-virtual VkResult                       getCalibratedTimestampsEXT                                              (VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation) const = 0;
-virtual void                           cmdDrawMeshTasksNV                                                              (VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask) const = 0;
-virtual void                           cmdDrawMeshTasksIndirectNV                                              (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) const = 0;
-virtual void                           cmdDrawMeshTasksIndirectCountNV                                 (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) const = 0;
-virtual void                           cmdSetExclusiveScissorNV                                                (VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors) const = 0;
-virtual void                           cmdSetCheckpointNV                                                              (VkCommandBuffer commandBuffer, const void* pCheckpointMarker) const = 0;
-virtual void                           getQueueCheckpointDataNV                                                (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData) const = 0;
+virtual VkResult                       createRayTracingPipelinesNV                                             (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const = 0;
+virtual VkResult                       createRayTracingPipelinesKHR                                    (VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const = 0;
+virtual void                           cmdTraceRaysIndirectKHR                                                 (VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress) const = 0;
+virtual void                           cmdTraceRaysIndirect2KHR                                                (VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress) const = 0;
+virtual void                           getDeviceAccelerationStructureCompatibilityKHR  (VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility) const = 0;
+virtual VkDeviceSize           getRayTracingShaderGroupStackSizeKHR                    (VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader) const = 0;
+virtual void                           cmdSetRayTracingPipelineStackSizeKHR                    (VkCommandBuffer commandBuffer, uint32_t pipelineStackSize) const = 0;
+virtual uint32_t                       getImageViewHandleNVX                                                   (VkDevice device, const VkImageViewHandleInfoNVX* pInfo) const = 0;
+virtual VkResult                       getImageViewAddressNVX                                                  (VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties) const = 0;
+virtual VkResult                       getDeviceGroupSurfacePresentModes2EXT                   (VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes) const = 0;
+virtual VkResult                       acquireFullScreenExclusiveModeEXT                               (VkDevice device, VkSwapchainKHR swapchain) const = 0;
+virtual VkResult                       releaseFullScreenExclusiveModeEXT                               (VkDevice device, VkSwapchainKHR swapchain) const = 0;
+virtual VkResult                       acquireProfilingLockKHR                                                 (VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo) const = 0;
+virtual void                           releaseProfilingLockKHR                                                 (VkDevice device) const = 0;
+virtual VkResult                       getImageDrmFormatModifierPropertiesEXT                  (VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties) const = 0;
+virtual uint64_t                       getBufferOpaqueCaptureAddress                                   (VkDevice device, const VkBufferDeviceAddressInfo* pInfo) const = 0;
+virtual VkDeviceAddress                getBufferDeviceAddress                                                  (VkDevice device, const VkBufferDeviceAddressInfo* pInfo) const = 0;
 virtual VkResult                       initializePerformanceApiINTEL                                   (VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo) const = 0;
 virtual void                           uninitializePerformanceApiINTEL                                 (VkDevice device) const = 0;
 virtual VkResult                       cmdSetPerformanceMarkerINTEL                                    (VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo) const = 0;
@@ -302,88 +293,93 @@ virtual VkResult                  acquirePerformanceConfigurationINTEL                    (VkDevice device, cons
 virtual VkResult                       releasePerformanceConfigurationINTEL                    (VkDevice device, VkPerformanceConfigurationINTEL configuration) const = 0;
 virtual VkResult                       queueSetPerformanceConfigurationINTEL                   (VkQueue queue, VkPerformanceConfigurationINTEL configuration) const = 0;
 virtual VkResult                       getPerformanceParameterINTEL                                    (VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue) const = 0;
-virtual void                           setLocalDimmingAMD                                                              (VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable) const = 0;
-virtual VkDeviceAddress                getBufferDeviceAddressEXT                                               (VkDevice device, const VkBufferDeviceAddressInfo* pInfo) const = 0;
+virtual uint64_t                       getDeviceMemoryOpaqueCaptureAddress                             (VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) const = 0;
+virtual VkResult                       getPipelineExecutablePropertiesKHR                              (VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties) const = 0;
+virtual VkResult                       getPipelineExecutableStatisticsKHR                              (VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics) const = 0;
+virtual VkResult                       getPipelineExecutableInternalRepresentationsKHR (VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) const = 0;
 virtual void                           cmdSetLineStippleEXT                                                    (VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern) const = 0;
-virtual void                           getGeneratedCommandsMemoryRequirementsNV                (VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements) const = 0;
-virtual void                           cmdPreprocessGeneratedCommandsNV                                (VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) const = 0;
-virtual void                           cmdExecuteGeneratedCommandsNV                                   (VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) const = 0;
-virtual void                           cmdBindPipelineShaderGroupNV                                    (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex) const = 0;
-virtual VkResult                       createIndirectCommandsLayoutNV                                  (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout) const = 0;
-virtual void                           destroyIndirectCommandsLayoutNV                                 (VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual void                           cmdSetFragmentShadingRateEnumNV                                 (VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const = 0;
-virtual void                           getImageSubresourceLayout2EXT                                   (VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout) const = 0;
-virtual void                           cmdSetVertexInputEXT                                                    (VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions) const = 0;
-virtual VkResult                       getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI   (VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize) const = 0;
-virtual void                           cmdSubpassShadingHUAWEI                                                 (VkCommandBuffer commandBuffer) const = 0;
-virtual void                           cmdBindInvocationMaskHUAWEI                                             (VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout) const = 0;
-virtual VkResult                       getMemoryRemoteAddressNV                                                (VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress) const = 0;
-virtual VkResult                       getPipelinePropertiesEXT                                                (VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties) const = 0;
-virtual void                           cmdSetPatchControlPointsEXT                                             (VkCommandBuffer commandBuffer, uint32_t patchControlPoints) const = 0;
-virtual void                           cmdSetLogicOpEXT                                                                (VkCommandBuffer commandBuffer, VkLogicOp logicOp) const = 0;
-virtual void                           cmdSetColorWriteEnableEXT                                               (VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables) const = 0;
-virtual void                           cmdDrawMultiEXT                                                                 (VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride) const = 0;
-virtual void                           cmdDrawMultiIndexedEXT                                                  (VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawIndexedInfoEXT* pIndexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride, const int32_t* pVertexOffset) const = 0;
-virtual void                           setDeviceMemoryPriorityEXT                                              (VkDevice device, VkDeviceMemory memory, float priority) const = 0;
-virtual void                           getDescriptorSetLayoutHostMappingInfoVALVE              (VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping) const = 0;
-virtual void                           getDescriptorSetHostMappingVALVE                                (VkDevice device, VkDescriptorSet descriptorSet, void** ppData) const = 0;
-virtual void                           getShaderModuleIdentifierEXT                                    (VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier) const = 0;
-virtual void                           getShaderModuleCreateInfoIdentifierEXT                  (VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier) const = 0;
-virtual VkResult                       getFramebufferTilePropertiesQCOM                                (VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties) const = 0;
-virtual VkResult                       getDynamicRenderingTilePropertiesQCOM                   (VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties) const = 0;
 virtual VkResult                       createAccelerationStructureKHR                                  (VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure) const = 0;
-virtual void                           destroyAccelerationStructureKHR                                 (VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator) const = 0;
 virtual void                           cmdBuildAccelerationStructuresKHR                               (VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) const = 0;
 virtual void                           cmdBuildAccelerationStructuresIndirectKHR               (VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const* ppMaxPrimitiveCounts) const = 0;
 virtual VkResult                       buildAccelerationStructuresKHR                                  (VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) const = 0;
-virtual VkResult                       copyAccelerationStructureKHR                                    (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo) const = 0;
-virtual VkResult                       copyAccelerationStructureToMemoryKHR                    (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) const = 0;
-virtual VkResult                       copyMemoryToAccelerationStructureKHR                    (VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) const = 0;
-virtual VkResult                       writeAccelerationStructuresPropertiesKHR                (VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride) const = 0;
-virtual void                           cmdCopyAccelerationStructureKHR                                 (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo) const = 0;
-virtual void                           cmdCopyAccelerationStructureToMemoryKHR                 (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) const = 0;
-virtual void                           cmdCopyMemoryToAccelerationStructureKHR                 (VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) const = 0;
 virtual VkDeviceAddress                getAccelerationStructureDeviceAddressKHR                (VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo) const = 0;
-virtual void                           cmdWriteAccelerationStructuresPropertiesKHR             (VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery) const = 0;
-virtual void                           getDeviceAccelerationStructureCompatibilityKHR  (VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility) const = 0;
+virtual VkResult                       createDeferredOperationKHR                                              (VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation) const = 0;
+virtual void                           destroyDeferredOperationKHR                                             (VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual uint32_t                       getDeferredOperationMaxConcurrencyKHR                   (VkDevice device, VkDeferredOperationKHR operation) const = 0;
+virtual VkResult                       getDeferredOperationResultKHR                                   (VkDevice device, VkDeferredOperationKHR operation) const = 0;
+virtual VkResult                       deferredOperationJoinKHR                                                (VkDevice device, VkDeferredOperationKHR operation) const = 0;
+virtual void                           cmdSetCullMode                                                                  (VkCommandBuffer commandBuffer, VkCullModeFlags cullMode) const = 0;
+virtual void                           cmdSetFrontFace                                                                 (VkCommandBuffer commandBuffer, VkFrontFace frontFace) const = 0;
+virtual void                           cmdSetPrimitiveTopology                                                 (VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology) const = 0;
+virtual void                           cmdSetViewportWithCount                                                 (VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports) const = 0;
+virtual void                           cmdSetScissorWithCount                                                  (VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors) const = 0;
+virtual void                           cmdBindVertexBuffers2                                                   (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides) const = 0;
+virtual void                           cmdSetDepthTestEnable                                                   (VkCommandBuffer commandBuffer, VkBool32 depthTestEnable) const = 0;
+virtual void                           cmdSetDepthWriteEnable                                                  (VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable) const = 0;
+virtual void                           cmdSetDepthCompareOp                                                    (VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp) const = 0;
+virtual void                           cmdSetDepthBoundsTestEnable                                             (VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable) const = 0;
+virtual void                           cmdSetStencilTestEnable                                                 (VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable) const = 0;
+virtual void                           cmdSetStencilOp                                                                 (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp) const = 0;
+virtual void                           cmdSetPatchControlPointsEXT                                             (VkCommandBuffer commandBuffer, uint32_t patchControlPoints) const = 0;
+virtual void                           cmdSetRasterizerDiscardEnable                                   (VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable) const = 0;
+virtual void                           cmdSetDepthBiasEnable                                                   (VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable) const = 0;
+virtual void                           cmdSetLogicOpEXT                                                                (VkCommandBuffer commandBuffer, VkLogicOp logicOp) const = 0;
+virtual void                           cmdSetPrimitiveRestartEnable                                    (VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable) const = 0;
+virtual VkResult                       createPrivateDataSlot                                                   (VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot) const = 0;
+virtual void                           destroyPrivateDataSlot                                                  (VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult                       setPrivateData                                                                  (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data) const = 0;
+virtual void                           getPrivateData                                                                  (VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData) const = 0;
+virtual void                           cmdCopyBuffer2                                                                  (VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo) const = 0;
+virtual void                           cmdCopyImage2                                                                   (VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo) const = 0;
+virtual void                           cmdBlitImage2                                                                   (VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo) const = 0;
+virtual void                           cmdCopyBufferToImage2                                                   (VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) const = 0;
+virtual void                           cmdCopyImageToBuffer2                                                   (VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) const = 0;
+virtual void                           cmdResolveImage2                                                                (VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo) const = 0;
+virtual void                           cmdSetFragmentShadingRateKHR                                    (VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const = 0;
+virtual void                           cmdSetFragmentShadingRateEnumNV                                 (VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) const = 0;
 virtual void                           getAccelerationStructureBuildSizesKHR                   (VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) const = 0;
-virtual void                           cmdTraceRaysKHR                                                                 (VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth) const = 0;
-virtual VkResult                       createRayTracingPipelinesKHR                                    (VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const = 0;
-virtual VkResult                       getRayTracingCaptureReplayShaderGroupHandlesKHR (VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData) const = 0;
-virtual void                           cmdTraceRaysIndirectKHR                                                 (VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress) const = 0;
-virtual VkDeviceSize           getRayTracingShaderGroupStackSizeKHR                    (VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader) const = 0;
-virtual void                           cmdSetRayTracingPipelineStackSizeKHR                    (VkCommandBuffer commandBuffer, uint32_t pipelineStackSize) const = 0;
-virtual VkResult                       getAndroidHardwareBufferPropertiesANDROID               (VkDevice device, const struct pt::AndroidHardwareBufferPtr buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties) const = 0;
-virtual VkResult                       getMemoryAndroidHardwareBufferANDROID                   (VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct pt::AndroidHardwareBufferPtr* pBuffer) const = 0;
+virtual void                           cmdSetVertexInputEXT                                                    (VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions) const = 0;
+virtual void                           cmdSetColorWriteEnableEXT                                               (VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables) const = 0;
+virtual void                           cmdSetEvent2                                                                    (VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo) const = 0;
+virtual void                           cmdResetEvent2                                                                  (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask) const = 0;
+virtual void                           cmdWaitEvents2                                                                  (VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos) const = 0;
+virtual void                           cmdPipelineBarrier2                                                             (VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo) const = 0;
+virtual VkResult                       queueSubmit2                                                                    (VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence) const = 0;
+virtual void                           cmdWriteTimestamp2                                                              (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query) const = 0;
+virtual void                           cmdWriteBufferMarker2AMD                                                (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker) const = 0;
+virtual void                           getQueueCheckpointData2NV                                               (VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData) const = 0;
 virtual VkResult                       createVideoSessionKHR                                                   (VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession) const = 0;
 virtual void                           destroyVideoSessionKHR                                                  (VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult                       getVideoSessionMemoryRequirementsKHR                    (VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pVideoSessionMemoryRequirementsCount, VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements) const = 0;
-virtual VkResult                       bindVideoSessionMemoryKHR                                               (VkDevice device, VkVideoSessionKHR videoSession, uint32_t videoSessionBindMemoryCount, const VkVideoBindMemoryKHR* pVideoSessionBindMemories) const = 0;
 virtual VkResult                       createVideoSessionParametersKHR                                 (VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters) const = 0;
 virtual VkResult                       updateVideoSessionParametersKHR                                 (VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo) const = 0;
 virtual void                           destroyVideoSessionParametersKHR                                (VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult                       getVideoSessionMemoryRequirementsKHR                    (VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pVideoSessionMemoryRequirementsCount, VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements) const = 0;
+virtual VkResult                       bindVideoSessionMemoryKHR                                               (VkDevice device, VkVideoSessionKHR videoSession, uint32_t videoSessionBindMemoryCount, const VkVideoBindMemoryKHR* pVideoSessionBindMemories) const = 0;
+virtual void                           cmdDecodeVideoKHR                                                               (VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pFrameInfo) const = 0;
 virtual void                           cmdBeginVideoCodingKHR                                                  (VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo) const = 0;
-virtual void                           cmdEndVideoCodingKHR                                                    (VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo) const = 0;
 virtual void                           cmdControlVideoCodingKHR                                                (VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo) const = 0;
-virtual void                           cmdDecodeVideoKHR                                                               (VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pFrameInfo) const = 0;
+virtual void                           cmdEndVideoCodingKHR                                                    (VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo) const = 0;
 virtual void                           cmdEncodeVideoKHR                                                               (VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo) const = 0;
-virtual VkResult                       getMemoryZirconHandleFUCHSIA                                    (VkDevice device, const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, pt::zx_handle_t* pZirconHandle) const = 0;
-virtual VkResult                       getMemoryZirconHandlePropertiesFUCHSIA                  (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties) const = 0;
-virtual VkResult                       importSemaphoreZirconHandleFUCHSIA                              (VkDevice device, const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo) const = 0;
-virtual VkResult                       getSemaphoreZirconHandleFUCHSIA                                 (VkDevice device, const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, pt::zx_handle_t* pZirconHandle) const = 0;
+virtual VkResult                       createCuModuleNVX                                                               (VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule) const = 0;
+virtual VkResult                       createCuFunctionNVX                                                             (VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction) const = 0;
+virtual void                           destroyCuModuleNVX                                                              (VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual void                           destroyCuFunctionNVX                                                    (VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual void                           cmdCuLaunchKernelNVX                                                    (VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo) const = 0;
+virtual void                           setDeviceMemoryPriorityEXT                                              (VkDevice device, VkDeviceMemory memory, float priority) const = 0;
+virtual VkResult                       waitForPresentKHR                                                               (VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout) const = 0;
 virtual VkResult                       createBufferCollectionFUCHSIA                                   (VkDevice device, const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferCollectionFUCHSIA* pCollection) const = 0;
-virtual VkResult                       setBufferCollectionImageConstraintsFUCHSIA              (VkDevice device, VkBufferCollectionFUCHSIA collection, const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo) const = 0;
 virtual VkResult                       setBufferCollectionBufferConstraintsFUCHSIA             (VkDevice device, VkBufferCollectionFUCHSIA collection, const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo) const = 0;
+virtual VkResult                       setBufferCollectionImageConstraintsFUCHSIA              (VkDevice device, VkBufferCollectionFUCHSIA collection, const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo) const = 0;
 virtual void                           destroyBufferCollectionFUCHSIA                                  (VkDevice device, VkBufferCollectionFUCHSIA collection, const VkAllocationCallbacks* pAllocator) const = 0;
 virtual VkResult                       getBufferCollectionPropertiesFUCHSIA                    (VkDevice device, VkBufferCollectionFUCHSIA collection, VkBufferCollectionPropertiesFUCHSIA* pProperties) const = 0;
+virtual void                           cmdBeginRendering                                                               (VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo) const = 0;
+virtual void                           cmdEndRendering                                                                 (VkCommandBuffer commandBuffer) const = 0;
+virtual void                           getDescriptorSetLayoutHostMappingInfoVALVE              (VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping) const = 0;
+virtual void                           getDescriptorSetHostMappingVALVE                                (VkDevice device, VkDescriptorSet descriptorSet, void** ppData) const = 0;
+virtual void                           getShaderModuleIdentifierEXT                                    (VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier) const = 0;
+virtual void                           getShaderModuleCreateInfoIdentifierEXT                  (VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier) const = 0;
+virtual void                           getImageSubresourceLayout2EXT                                   (VkDevice device, VkImage image, const VkImageSubresource2EXT* pSubresource, VkSubresourceLayout2EXT* pLayout) const = 0;
+virtual VkResult                       getPipelinePropertiesEXT                                                (VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties) const = 0;
 virtual void                           exportMetalObjectsEXT                                                   (VkDevice device, VkExportMetalObjectsInfoEXT* pMetalObjectsInfo) const = 0;
-virtual VkResult                       getMemoryWin32HandleKHR                                                 (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const = 0;
-virtual VkResult                       getMemoryWin32HandlePropertiesKHR                               (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) 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                       importFenceWin32HandleKHR                                               (VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) const = 0;
-virtual VkResult                       getFenceWin32HandleKHR                                                  (VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const = 0;
-virtual VkResult                       getMemoryWin32HandleNV                                                  (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle) const = 0;
-virtual VkResult                       acquireFullScreenExclusiveModeEXT                               (VkDevice device, VkSwapchainKHR swapchain) const = 0;
-virtual VkResult                       releaseFullScreenExclusiveModeEXT                               (VkDevice device, VkSwapchainKHR swapchain) const = 0;
-virtual VkResult                       getDeviceGroupSurfacePresentModes2EXT                   (VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes) const = 0;
+virtual VkResult                       getFramebufferTilePropertiesQCOM                                (VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties) const = 0;
+virtual VkResult                       getDynamicRenderingTilePropertiesQCOM                   (VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties) const = 0;
index e7f2d1f..f31129c 100644 (file)
@@ -5,17 +5,46 @@
 
 virtual void           destroyInstance                                                                                                 (VkInstance instance, const VkAllocationCallbacks* pAllocator) const = 0;
 virtual VkResult       enumeratePhysicalDevices                                                                                (VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices) const = 0;
-virtual void           getPhysicalDeviceFeatures                                                                               (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures) const = 0;
-virtual void           getPhysicalDeviceFormatProperties                                                               (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties) const = 0;
-virtual VkResult       getPhysicalDeviceImageFormatProperties                                                  (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties) const = 0;
 virtual void           getPhysicalDeviceProperties                                                                             (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties) const = 0;
 virtual void           getPhysicalDeviceQueueFamilyProperties                                                  (VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties) const = 0;
 virtual void           getPhysicalDeviceMemoryProperties                                                               (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) const = 0;
+virtual void           getPhysicalDeviceFeatures                                                                               (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures) const = 0;
+virtual void           getPhysicalDeviceFormatProperties                                                               (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties) const = 0;
+virtual VkResult       getPhysicalDeviceImageFormatProperties                                                  (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties) const = 0;
 virtual VkResult       createDevice                                                                                                    (VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice) const = 0;
-virtual VkResult       enumerateDeviceExtensionProperties                                                              (VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) const = 0;
 virtual VkResult       enumerateDeviceLayerProperties                                                                  (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties) const = 0;
+virtual VkResult       enumerateDeviceExtensionProperties                                                              (VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) const = 0;
 virtual void           getPhysicalDeviceSparseImageFormatProperties                                    (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties) const = 0;
-virtual VkResult       enumeratePhysicalDeviceGroups                                                                   (VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) const = 0;
+virtual VkResult       createAndroidSurfaceKHR                                                                                 (VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
+virtual VkResult       getPhysicalDeviceDisplayPropertiesKHR                                                   (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties) const = 0;
+virtual VkResult       getPhysicalDeviceDisplayPlanePropertiesKHR                                              (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties) const = 0;
+virtual VkResult       getDisplayPlaneSupportedDisplaysKHR                                                             (VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays) const = 0;
+virtual VkResult       getDisplayModePropertiesKHR                                                                             (VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties) const = 0;
+virtual VkResult       createDisplayModeKHR                                                                                    (VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode) const = 0;
+virtual VkResult       getDisplayPlaneCapabilitiesKHR                                                                  (VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities) const = 0;
+virtual VkResult       createDisplayPlaneSurfaceKHR                                                                    (VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
+virtual void           destroySurfaceKHR                                                                                               (VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       getPhysicalDeviceSurfaceSupportKHR                                                              (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported) const = 0;
+virtual VkResult       getPhysicalDeviceSurfaceCapabilitiesKHR                                                 (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) const = 0;
+virtual VkResult       getPhysicalDeviceSurfaceFormatsKHR                                                              (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) const = 0;
+virtual VkResult       getPhysicalDeviceSurfacePresentModesKHR                                                 (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) const = 0;
+virtual VkResult       createViSurfaceNN                                                                                               (VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
+virtual VkResult       createWaylandSurfaceKHR                                                                                 (VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
+virtual VkBool32       getPhysicalDeviceWaylandPresentationSupportKHR                                  (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::WaylandDisplayPtr display) const = 0;
+virtual VkResult       createWin32SurfaceKHR                                                                                   (VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
+virtual VkBool32       getPhysicalDeviceWin32PresentationSupportKHR                                    (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex) const = 0;
+virtual VkResult       createXlibSurfaceKHR                                                                                    (VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
+virtual VkBool32       getPhysicalDeviceXlibPresentationSupportKHR                                             (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::XlibDisplayPtr dpy, pt::XlibVisualID visualID) const = 0;
+virtual VkResult       createXcbSurfaceKHR                                                                                             (VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
+virtual VkBool32       getPhysicalDeviceXcbPresentationSupportKHR                                              (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::XcbConnectionPtr connection, pt::XcbVisualid visual_id) const = 0;
+virtual VkResult       createImagePipeSurfaceFUCHSIA                                                                   (VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
+virtual VkResult       createStreamDescriptorSurfaceGGP                                                                (VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
+virtual VkResult       createScreenSurfaceQNX                                                                                  (VkInstance instance, const VkScreenSurfaceCreateInfoQNX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
+virtual VkBool32       getPhysicalDeviceScreenPresentationSupportQNX                                   (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::QNXScreenWindowPtr window) 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, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage) const = 0;
+virtual VkResult       getPhysicalDeviceExternalImageFormatPropertiesNV                                (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) const = 0;
 virtual void           getPhysicalDeviceFeatures2                                                                              (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures) const = 0;
 virtual void           getPhysicalDeviceProperties2                                                                    (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties) const = 0;
 virtual void           getPhysicalDeviceFormatProperties2                                                              (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties) const = 0;
@@ -24,66 +53,39 @@ virtual void                getPhysicalDeviceQueueFamilyProperties2                                                 (VkPhysicalDevice ph
 virtual void           getPhysicalDeviceMemoryProperties2                                                              (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties) const = 0;
 virtual void           getPhysicalDeviceSparseImageFormatProperties2                                   (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties) const = 0;
 virtual void           getPhysicalDeviceExternalBufferProperties                                               (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties) const = 0;
-virtual void           getPhysicalDeviceExternalFenceProperties                                                (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties) const = 0;
 virtual void           getPhysicalDeviceExternalSemaphoreProperties                                    (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties) const = 0;
-virtual VkResult       getPhysicalDeviceToolProperties                                                                 (VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties) const = 0;
-virtual void           destroySurfaceKHR                                                                                               (VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       getPhysicalDeviceSurfaceSupportKHR                                                              (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported) const = 0;
-virtual VkResult       getPhysicalDeviceSurfaceCapabilitiesKHR                                                 (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) const = 0;
-virtual VkResult       getPhysicalDeviceSurfaceFormatsKHR                                                              (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) const = 0;
-virtual VkResult       getPhysicalDeviceSurfacePresentModesKHR                                                 (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) const = 0;
+virtual void           getPhysicalDeviceExternalFenceProperties                                                (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties) 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::RROutput rrOutput, VkDisplayKHR* pDisplay) const = 0;
+virtual VkResult       acquireWinrtDisplayNV                                                                                   (VkPhysicalDevice physicalDevice, VkDisplayKHR display) const = 0;
+virtual VkResult       getWinrtDisplayNV                                                                                               (VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay) const = 0;
+virtual VkResult       getPhysicalDeviceSurfaceCapabilities2EXT                                                (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities) const = 0;
+virtual VkResult       enumeratePhysicalDeviceGroups                                                                   (VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) const = 0;
 virtual VkResult       getPhysicalDevicePresentRectanglesKHR                                                   (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects) const = 0;
-virtual VkResult       getPhysicalDeviceDisplayPropertiesKHR                                                   (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties) const = 0;
-virtual VkResult       getPhysicalDeviceDisplayPlanePropertiesKHR                                              (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties) const = 0;
-virtual VkResult       getDisplayPlaneSupportedDisplaysKHR                                                             (VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays) const = 0;
-virtual VkResult       getDisplayModePropertiesKHR                                                                             (VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties) const = 0;
-virtual VkResult       createDisplayModeKHR                                                                                    (VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode) const = 0;
-virtual VkResult       getDisplayPlaneCapabilitiesKHR                                                                  (VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities) const = 0;
-virtual VkResult       createDisplayPlaneSurfaceKHR                                                                    (VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
-virtual VkResult       enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR   (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions) const = 0;
-virtual void           getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR                   (VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses) const = 0;
+virtual VkResult       createIOSSurfaceMVK                                                                                             (VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
+virtual VkResult       createMacOSSurfaceMVK                                                                                   (VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
+virtual VkResult       createMetalSurfaceEXT                                                                                   (VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
+virtual void           getPhysicalDeviceMultisamplePropertiesEXT                                               (VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties) const = 0;
 virtual VkResult       getPhysicalDeviceSurfaceCapabilities2KHR                                                (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities) const = 0;
 virtual VkResult       getPhysicalDeviceSurfaceFormats2KHR                                                             (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats) const = 0;
 virtual VkResult       getPhysicalDeviceDisplayProperties2KHR                                                  (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties) const = 0;
 virtual VkResult       getPhysicalDeviceDisplayPlaneProperties2KHR                                             (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties) const = 0;
 virtual VkResult       getDisplayModeProperties2KHR                                                                    (VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties) const = 0;
 virtual VkResult       getDisplayPlaneCapabilities2KHR                                                                 (VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities) const = 0;
-virtual VkResult       getPhysicalDeviceFragmentShadingRatesKHR                                                (VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates) 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, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage) 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       getPhysicalDeviceSurfaceCapabilities2EXT                                                (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities) const = 0;
+virtual VkResult       getPhysicalDeviceCalibrateableTimeDomainsEXT                                    (VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains) const = 0;
 virtual VkResult       createDebugUtilsMessengerEXT                                                                    (VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger) const = 0;
 virtual void           destroyDebugUtilsMessengerEXT                                                                   (VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator) const = 0;
 virtual void           submitDebugUtilsMessageEXT                                                                              (VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) const = 0;
-virtual void           getPhysicalDeviceMultisamplePropertiesEXT                                               (VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties) const = 0;
-virtual VkResult       getPhysicalDeviceCalibrateableTimeDomainsEXT                                    (VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains) const = 0;
 virtual VkResult       getPhysicalDeviceCooperativeMatrixPropertiesNV                                  (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties) const = 0;
-virtual VkResult       getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV (VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations) const = 0;
+virtual VkResult       getPhysicalDeviceSurfacePresentModes2EXT                                                (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) const = 0;
+virtual VkResult       enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR   (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions) const = 0;
+virtual void           getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR                   (VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses) const = 0;
 virtual VkResult       createHeadlessSurfaceEXT                                                                                (VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
-virtual VkResult       acquireDrmDisplayEXT                                                                                    (VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display) const = 0;
-virtual VkResult       getDrmDisplayEXT                                                                                                (VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display) const = 0;
-virtual VkResult       acquireWinrtDisplayNV                                                                                   (VkPhysicalDevice physicalDevice, VkDisplayKHR display) const = 0;
-virtual VkResult       getWinrtDisplayNV                                                                                               (VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay) const = 0;
-virtual VkResult       createAndroidSurfaceKHR                                                                                 (VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
+virtual VkResult       getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV (VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations) const = 0;
+virtual VkResult       getPhysicalDeviceToolProperties                                                                 (VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties) const = 0;
+virtual VkResult       getPhysicalDeviceFragmentShadingRatesKHR                                                (VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates) const = 0;
 virtual VkResult       getPhysicalDeviceVideoCapabilitiesKHR                                                   (VkPhysicalDevice physicalDevice, const VkVideoProfileKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities) const = 0;
 virtual VkResult       getPhysicalDeviceVideoFormatPropertiesKHR                                               (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties) const = 0;
-virtual VkResult       createImagePipeSurfaceFUCHSIA                                                                   (VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
-virtual VkResult       createStreamDescriptorSurfaceGGP                                                                (VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
-virtual VkResult       createIOSSurfaceMVK                                                                                             (VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
-virtual VkResult       createMacOSSurfaceMVK                                                                                   (VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
-virtual VkResult       createMetalSurfaceEXT                                                                                   (VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
-virtual VkResult       createViSurfaceNN                                                                                               (VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
-virtual VkResult       createWaylandSurfaceKHR                                                                                 (VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
-virtual VkBool32       getPhysicalDeviceWaylandPresentationSupportKHR                                  (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::WaylandDisplayPtr display) const = 0;
-virtual VkResult       createWin32SurfaceKHR                                                                                   (VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
-virtual VkBool32       getPhysicalDeviceWin32PresentationSupportKHR                                    (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex) const = 0;
-virtual VkResult       getPhysicalDeviceSurfacePresentModes2EXT                                                (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) const = 0;
-virtual VkResult       createXcbSurfaceKHR                                                                                             (VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
-virtual VkBool32       getPhysicalDeviceXcbPresentationSupportKHR                                              (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::XcbConnectionPtr connection, pt::XcbVisualid visual_id) const = 0;
-virtual VkResult       createXlibSurfaceKHR                                                                                    (VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
-virtual VkBool32       getPhysicalDeviceXlibPresentationSupportKHR                                             (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, pt::XlibDisplayPtr dpy, pt::XlibVisualID visualID) const = 0;
-virtual VkResult       acquireXlibDisplayEXT                                                                                   (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, VkDisplayKHR display) const = 0;
-virtual VkResult       getRandROutputDisplayEXT                                                                                (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, pt::RROutput rrOutput, VkDisplayKHR* pDisplay) const = 0;
+virtual VkResult       acquireDrmDisplayEXT                                                                                    (VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display) const = 0;
+virtual VkResult       getDrmDisplayEXT                                                                                                (VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display) const = 0;
index 6f5e412..21f5ccb 100644 (file)
@@ -5,6 +5,6 @@
 
 virtual VkResult                       createInstance                                                  (const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance) const = 0;
 virtual PFN_vkVoidFunction     getInstanceProcAddr                                             (VkInstance instance, const char* pName) const = 0;
-virtual VkResult                       enumerateInstanceExtensionProperties    (const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) const = 0;
-virtual VkResult                       enumerateInstanceLayerProperties                (uint32_t* pPropertyCount, VkLayerProperties* pProperties) const = 0;
 virtual VkResult                       enumerateInstanceVersion                                (uint32_t* pApiVersion) const = 0;
+virtual VkResult                       enumerateInstanceLayerProperties                (uint32_t* pPropertyCount, VkLayerProperties* pProperties) const = 0;
+virtual VkResult                       enumerateInstanceExtensionProperties    (const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) const = 0;
index 6598c97..de2bd2d 100644 (file)
@@ -236,19 +236,16 @@ public:
                                                                                SurfaceKHR              (VkInstance, const VkWaylandSurfaceCreateInfoKHR*)      {}
                                                                                SurfaceKHR              (VkInstance, const VkAndroidSurfaceCreateInfoKHR*)      {}
                                                                                SurfaceKHR              (VkInstance, const VkWin32SurfaceCreateInfoKHR*)        {}
-#endif // CTS_USES_VULKANSC
-                                                                               SurfaceKHR              (VkInstance, const VkDisplaySurfaceCreateInfoKHR*)      {}
-#ifndef CTS_USES_VULKANSC
                                                                                SurfaceKHR              (VkInstance, const VkViSurfaceCreateInfoNN*)            {}
                                                                                SurfaceKHR              (VkInstance, const VkIOSSurfaceCreateInfoMVK*)          {}
                                                                                SurfaceKHR              (VkInstance, const VkMacOSSurfaceCreateInfoMVK*)        {}
                                                                                SurfaceKHR              (VkInstance, const VkImagePipeSurfaceCreateInfoFUCHSIA*)        {}
-#endif // CTS_USES_VULKANSC
-                                                                               SurfaceKHR              (VkInstance, const VkHeadlessSurfaceCreateInfoEXT*)     {}
-#ifndef CTS_USES_VULKANSC
                                                                                SurfaceKHR              (VkInstance, const VkStreamDescriptorSurfaceCreateInfoGGP*)     {}
                                                                                SurfaceKHR              (VkInstance, const VkMetalSurfaceCreateInfoEXT*)        {}
+                                                                               SurfaceKHR              (VkInstance, const VkScreenSurfaceCreateInfoQNX*)       {}
 #endif // CTS_USES_VULKANSC
+                                                                               SurfaceKHR              (VkInstance, const VkDisplaySurfaceCreateInfoKHR*)      {}
+                                                                               SurfaceKHR              (VkInstance, const VkHeadlessSurfaceCreateInfoEXT*)     {}
                                                                                ~SurfaceKHR             (void)                                                                                          {}
 };
 
index 3b3021b..a6db0aa 100644 (file)
@@ -1108,7 +1108,7 @@ deBool isValidGlobalPriority(VkQueueGlobalPriorityEXT priority)
 void checkGlobalPriorityProperties(const VkQueueFamilyGlobalPriorityPropertiesEXT& properties)
 {
        TCU_CHECK(properties.priorityCount > 0);
-       TCU_CHECK(properties.priorityCount <= VK_MAX_GLOBAL_PRIORITY_SIZE_EXT);
+       TCU_CHECK(properties.priorityCount <= VK_MAX_GLOBAL_PRIORITY_SIZE_KHR);
        TCU_CHECK(isValidGlobalPriority(properties.priorities[0]));
 
        for (deUint32 ndx = 1; ndx < properties.priorityCount; ndx++)
index a1e819a..88d3150 100644 (file)
@@ -788,14 +788,7 @@ tcu::TestStatus BufferAddressTestInstance::iterate (void)
                for (deUint32 i = 0; i < numBuffers; ++i)
                {
                        bufferDeviceAddressInfo.buffer = **buffers[i];
-#ifndef CTS_USES_VULKANSC
-                       if (useKHR)
-                               gpuAddrs[i] = vk.getBufferDeviceAddress(device, &bufferDeviceAddressInfo);
-                       else
-                               gpuAddrs[i] = vk.getBufferDeviceAddressEXT(device, &bufferDeviceAddressInfo);
-#else
                        gpuAddrs[i] = vk.getBufferDeviceAddress(device, &bufferDeviceAddressInfo);
-#endif
                }
                buffers.clear();
                buffers.resize(numBuffers);
@@ -821,16 +814,7 @@ tcu::TestStatus BufferAddressTestInstance::iterate (void)
                        VK_CHECK(vk.bindBufferMemory(device, **buffers[i], allocations[i]->getMemory(), 0));
 
                        bufferDeviceAddressInfo.buffer = **buffers[i];
-                       VkDeviceSize newAddr;
-
-#ifndef CTS_USES_VULKANSC
-                       if (useKHR)
-                               newAddr = vk.getBufferDeviceAddress(device, &bufferDeviceAddressInfo);
-                       else
-                               newAddr = vk.getBufferDeviceAddressEXT(device, &bufferDeviceAddressInfo);
-#else
-                       newAddr = vk.getBufferDeviceAddress(device, &bufferDeviceAddressInfo);
-#endif
+                       VkDeviceSize newAddr = vk.getBufferDeviceAddress(device, &bufferDeviceAddressInfo);
 
                        if (newAddr != gpuAddrs[i])
                                return tcu::TestStatus(QP_TEST_RESULT_FAIL, "address mismatch");
@@ -841,15 +825,7 @@ tcu::TestStatus BufferAddressTestInstance::iterate (void)
        for (deUint32 i = 0; i < numBindings; ++i)
        {
                bufferDeviceAddressInfo.buffer = **buffers[multiBuffer ? i : 0];
-
-#ifndef CTS_USES_VULKANSC
-               if (useKHR)
-                       gpuAddrs[i] = vk.getBufferDeviceAddress(device, &bufferDeviceAddressInfo);
-               else
-                       gpuAddrs[i] = vk.getBufferDeviceAddressEXT(device, &bufferDeviceAddressInfo);
-#else
                gpuAddrs[i] = vk.getBufferDeviceAddress(device, &bufferDeviceAddressInfo);
-#endif
 
                cpuAddrs[i] = (deUint8 *)allocations[multiBuffer ? i : 0]->getHostPtr();
                if (!multiBuffer)
@@ -1541,14 +1517,7 @@ tcu::TestStatus CaptureReplayTestInstance::iterate (void)
        for (deUint32 i = 0; i < numBuffers; ++i)
        {
                bufferDeviceAddressInfo.buffer = **buffers[i];
-#ifndef CTS_USES_VULKANSC
-               if (useKHR)
-                       gpuAddrs[i] = vk.getBufferDeviceAddress(device, &bufferDeviceAddressInfo);
-               else
-                       gpuAddrs[i] = vk.getBufferDeviceAddressEXT(device, &bufferDeviceAddressInfo);
-#else
-                       gpuAddrs[i] = vk.getBufferDeviceAddress(device, &bufferDeviceAddressInfo);
-#endif
+               gpuAddrs[i] = vk.getBufferDeviceAddress(device, &bufferDeviceAddressInfo);
        }
        buffers.clear();
        buffers.resize(numBuffers);
@@ -1575,16 +1544,7 @@ tcu::TestStatus CaptureReplayTestInstance::iterate (void)
                VK_CHECK(vk.bindBufferMemory(device, **buffers[i], allocations[i]->getMemory(), 0));
 
                bufferDeviceAddressInfo.buffer = **buffers[i];
-               VkDeviceSize newAddr;
-
-#ifndef CTS_USES_VULKANSC
-               if (useKHR)
-                       newAddr = vk.getBufferDeviceAddress(device, &bufferDeviceAddressInfo);
-               else
-                       newAddr = vk.getBufferDeviceAddressEXT(device, &bufferDeviceAddressInfo);
-#else
-                       newAddr = vk.getBufferDeviceAddress(device, &bufferDeviceAddressInfo);
-#endif
+               VkDeviceSize newAddr = vk.getBufferDeviceAddress(device, &bufferDeviceAddressInfo);
 
                if (newAddr != gpuAddrs[i])
                        return tcu::TestStatus(QP_TEST_RESULT_FAIL, "address mismatch");
index 6e466ca..34bb622 100644 (file)
@@ -2365,9 +2365,9 @@ tcu::TestStatus DescriptorSetRandomTestInstance::iterate (void)
                        DE_NULL,                                                                                                        //  const void*                                         pNext;
                        VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV,                            //  VkRayTracingShaderGroupTypeNV       type;
                        0,                                                                                                                      //  deUint32                                            generalShader;
-                       VK_SHADER_UNUSED_NV,                                                                            //  deUint32                                            closestHitShader;
-                       VK_SHADER_UNUSED_NV,                                                                            //  deUint32                                            anyHitShader;
-                       VK_SHADER_UNUSED_NV,                                                                            //  deUint32                                            intersectionShader;
+                       VK_SHADER_UNUSED_KHR,                                                                           //  deUint32                                            closestHitShader;
+                       VK_SHADER_UNUSED_KHR,                                                                           //  deUint32                                            anyHitShader;
+                       VK_SHADER_UNUSED_KHR,                                                                           //  deUint32                                            intersectionShader;
                };
 
                VkRayTracingPipelineCreateInfoNV                pipelineCreateInfo      =
@@ -2396,7 +2396,7 @@ tcu::TestStatus DescriptorSetRandomTestInstance::iterate (void)
                const auto      ptr             = reinterpret_cast<deUint32*>(alloc.getHostPtr());
 
                invalidateAlloc(vk, device, alloc);
-               vk.getRayTracingShaderGroupHandlesNV(device, *pipeline, 0, 1, static_cast<deUintptr>(allocSize), ptr);
+               vk.getRayTracingShaderGroupHandlesKHR(device, *pipeline, 0, 1, static_cast<deUintptr>(allocSize), ptr);
        }
        else if (m_data.stage == STAGE_RAYGEN)
        {
index 3944264..42da9df 100644 (file)
@@ -846,9 +846,7 @@ tcu::TestStatus CooperativeMatrixTestInstance::iterate (void)
                vk::DescriptorSetUpdateBuilder setUpdateBuilder;
                if (m_data.storageClass == SC_PHYSICAL_STORAGE_BUFFER)
                {
-                       const bool useKHR = m_context.isDeviceFunctionalitySupported("VK_KHR_buffer_device_address");
-
-                       VkBufferDeviceAddressInfo info =
+                       VkBufferDeviceAddressInfo info
                        {
                                VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,           // VkStructureType       sType;
                                DE_NULL,                                                                                        // const void*           pNext;
@@ -858,11 +856,7 @@ tcu::TestStatus CooperativeMatrixTestInstance::iterate (void)
                        for (deUint32 i = 0; i < 4; ++i)
                        {
                                info.buffer = **buffers[i];
-                               VkDeviceAddress addr;
-                               if (useKHR)
-                                       addr = vk.getBufferDeviceAddress(device, &info);
-                               else
-                                       addr = vk.getBufferDeviceAddressEXT(device, &info);
+                               VkDeviceAddress addr = vk.getBufferDeviceAddress(device, &info);
                                addrsInMemory[i] = addr;
                        }
                        setUpdateBuilder.writeSingle(*descriptorSet, vk::DescriptorSetUpdateBuilder::Location::binding(4),
index efc80f8..ed613c4 100644 (file)
@@ -1661,32 +1661,14 @@ tcu::TestStatus MemoryModelTestInstance::iterate (void)
                if (m_data.payloadSC == SC_PHYSBUFFER)
                {
                        addrInfo.buffer = **buffers[0];
-                       VkDeviceAddress addr;
-#ifndef CTS_USES_VULKANSC
-                       const bool useKHR = m_context.isDeviceFunctionalitySupported("VK_KHR_buffer_device_address");
-                       if (useKHR)
-                               addr = vk.getBufferDeviceAddress(device, &addrInfo);
-                       else
-                               addr = vk.getBufferDeviceAddressEXT(device, &addrInfo);
-#else
-                       addr = vk.getBufferDeviceAddress(device, &addrInfo);
-#endif
+                       VkDeviceAddress addr = vk.getBufferDeviceAddress(device, &addrInfo);
                        vk.cmdPushConstants(*cmdBuffer, *pipelineLayout, allShaderStages,
                                                                0, sizeof(VkDeviceSize), &addr);
                }
                if (m_data.guardSC == SC_PHYSBUFFER)
                {
                        addrInfo.buffer = **buffers[1];
-                       VkDeviceAddress addr;
-#ifndef CTS_USES_VULKANSC
-                       const bool useKHR = m_context.isDeviceFunctionalitySupported("VK_KHR_buffer_device_address");
-                       if (useKHR)
-                               addr = vk.getBufferDeviceAddress(device, &addrInfo);
-                       else
-                               addr = vk.getBufferDeviceAddressEXT(device, &addrInfo);
-#else
-                       addr = vk.getBufferDeviceAddress(device, &addrInfo);
-#endif
+                       VkDeviceAddress addr = vk.getBufferDeviceAddress(device, &addrInfo);
                        vk.cmdPushConstants(*cmdBuffer, *pipelineLayout, allShaderStages,
                                                                8, sizeof(VkDeviceSize), &addr);
                }
index 3f767d8..9d43454 100644 (file)
@@ -2519,9 +2519,9 @@ tcu::TestStatus RobustnessExtsTestInstance::iterate (void)
                        DE_NULL,
                        VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV,                    // type
                        0,                                                                                                              // generalShader
-                       VK_SHADER_UNUSED_NV,                                                                    // closestHitShader
-                       VK_SHADER_UNUSED_NV,                                                                    // anyHitShader
-                       VK_SHADER_UNUSED_NV,                                                                    // intersectionShader
+                       VK_SHADER_UNUSED_KHR,                                                                   // closestHitShader
+                       VK_SHADER_UNUSED_KHR,                                                                   // anyHitShader
+                       VK_SHADER_UNUSED_KHR,                                                                   // intersectionShader
                };
 
                VkRayTracingPipelineCreateInfoNV pipelineCreateInfo = {
@@ -2546,7 +2546,7 @@ tcu::TestStatus RobustnessExtsTestInstance::iterate (void)
                deUint32 *ptr = (deUint32 *)sbtBuffer->getAllocation().getHostPtr();
                invalidateAlloc(vk, device, sbtBuffer->getAllocation());
 
-               vk.getRayTracingShaderGroupHandlesNV(device, *pipeline, 0, 1, rayTracingProperties.shaderGroupHandleSize, ptr);
+               vk.getRayTracingShaderGroupHandlesKHR(device, *pipeline, 0, 1, rayTracingProperties.shaderGroupHandleSize, ptr);
        }
 #endif
        else
index a17008e..8c733e6 100644 (file)
@@ -736,11 +736,7 @@ tcu::TestStatus SpvAsmComputeShaderInstance::iterate (void)
        // all the descriptors with just a desciptor to this new buffer.
        if (m_shaderSpec.usesPhysStorageBuffer)
        {
-#ifndef CTS_USES_VULKANSC
-               const bool useKHR = m_context.isDeviceFunctionalitySupported("VK_KHR_buffer_device_address");
-#endif
-
-               VkBufferDeviceAddressInfo info =
+               VkBufferDeviceAddressInfo info
                {
                        VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,           // VkStructureType      sType;
                        DE_NULL,                                                                                        // const void*          pNext;
@@ -750,32 +746,14 @@ tcu::TestStatus SpvAsmComputeShaderInstance::iterate (void)
                for (deUint32 inputNdx = 0; inputNdx < m_shaderSpec.inputs.size(); ++inputNdx)
                {
                        info.buffer = **inputBuffers[inputNdx];
-                       VkDeviceAddress addr;
-
-#ifndef CTS_USES_VULKANSC
-                       if (useKHR)
-                               addr = vkdi.getBufferDeviceAddress(device, &info);
-                       else
-                               addr = vkdi.getBufferDeviceAddressEXT(device, &info);
-#else
-                       addr = vkdi.getBufferDeviceAddress(device, &info);
-#endif
+                       VkDeviceAddress addr = vkdi.getBufferDeviceAddress(device, &info);
 
                        gpuAddrs.push_back(addr);
                }
                for (deUint32 outputNdx = 0; outputNdx < m_shaderSpec.outputs.size(); ++outputNdx)
                {
                        info.buffer = **outputBuffers[outputNdx];
-                       VkDeviceAddress addr;
-
-#ifndef CTS_USES_VULKANSC
-                       if (useKHR)
-                               addr = vkdi.getBufferDeviceAddress(device, &info);
-                       else
-                               addr = vkdi.getBufferDeviceAddressEXT(device, &info);
-#else
-                       addr = vkdi.getBufferDeviceAddress(device, &info);
-#endif
+                       VkDeviceAddress addr = vkdi.getBufferDeviceAddress(device, &info);
 
                        gpuAddrs.push_back(addr);
                }
index ecdddab..ae0f39b 100644 (file)
@@ -227,28 +227,14 @@ tcu::TestStatus SSBOCornerCaseInstance::iterate (void)
                descriptor      = makeDescriptorBufferInfo(*buffer, 0, bufferSize);
        }
 
-       // Query the buffer device address and push them via push constants
-#ifndef CTS_USES_VULKANSC
-       const bool useKHR = m_context.isDeviceFunctionalitySupported("VK_KHR_buffer_device_address");
-#endif // CTS_USES_VULKANSC
-
-       vk::VkBufferDeviceAddressInfo info =
+       vk::VkBufferDeviceAddressInfo info
        {
                vk::VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,       // VkStructureType      sType;
                DE_NULL,                                                                                        // const void*          pNext;
-               0,                                                                                                      // VkBuffer                     buffer
+               descriptor.buffer                                                                       // VkBuffer                     buffer
        };
 
-       info.buffer = descriptor.buffer;
-       vk::VkDeviceAddress     addr;
-#ifndef CTS_USES_VULKANSC
-       if (useKHR)
-#endif // CTS_USES_VULKANSC
-               addr = vk.getBufferDeviceAddress(device, &info);
-#ifndef CTS_USES_VULKANSC
-       else
-               addr = vk.getBufferDeviceAddressEXT(device, &info);
-#endif // CTS_USES_VULKANSC
+       vk::VkDeviceAddress addr = vk.getBufferDeviceAddress(device, &info);
 
        setUpdateBuilder.update(vk, device);
 
index b558196..10463f1 100644 (file)
@@ -1298,7 +1298,7 @@ public:
                        DXGI_ADAPTER_DESC desc;
                        pAdapter->GetDesc(&desc);
 
-                       if (deMemCmp(&desc.AdapterLuid, propertiesId.deviceLUID, VK_LUID_SIZE_KHR) == 0)
+                       if (deMemCmp(&desc.AdapterLuid, propertiesId.deviceLUID, VK_LUID_SIZE) == 0)
                                break;
                }
                pFactory->Release();
index f4dc60b..c77d319 100644 (file)
@@ -1271,7 +1271,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_KHR; physDevIdx++)
+       for (size_t physDevIdx = 0; physDevIdx < VK_MAX_DEVICE_GROUP_SIZE; physDevIdx++)
        {
                if (presentCapabilities->presentMask[physDevIdx])
                        if (!((1 << physDevIdx) & (presentCapabilities->presentMask[physDevIdx])))
index 6a9cd0c..f2fb15b 100644 (file)
@@ -1872,78 +1872,102 @@ dEQP-VK.api.info.image_format_properties.3d.linear.astc_12x12_unorm_block
 dEQP-VK.api.info.image_format_properties.3d.linear.astc_12x12_srgb_block
 dEQP-VK.api.info.extension_core_versions.extension_core_versions
 dEQP-VK.api.info.get_physical_device_properties2.features.core
-dEQP-VK.api.info.get_physical_device_properties2.features.4444_formats_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.8_bit_storage_features
+dEQP-VK.api.info.get_physical_device_properties2.features.private_data_features
+dEQP-VK.api.info.get_physical_device_properties2.features.variable_pointers_features
+dEQP-VK.api.info.get_physical_device_properties2.features.multiview_features
+dEQP-VK.api.info.get_physical_device_properties2.features.present_id_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.present_wait_features_khr
 dEQP-VK.api.info.get_physical_device_properties2.features.16_bit_storage_features
-dEQP-VK.api.info.get_physical_device_properties2.features.acceleration_structure_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.astc_decode_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_subgroup_extended_types_features
+dEQP-VK.api.info.get_physical_device_properties2.features.sampler_ycbcr_conversion_features
+dEQP-VK.api.info.get_physical_device_properties2.features.protected_memory_features
 dEQP-VK.api.info.get_physical_device_properties2.features.blend_operation_advanced_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.buffer_device_address_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.buffer_device_address_features
-dEQP-VK.api.info.get_physical_device_properties2.features.conditional_rendering_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.custom_border_color_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.color_write_enable_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.descriptor_indexing_features
-dEQP-VK.api.info.get_physical_device_properties2.features.depth_clip_enable_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.dynamic_rendering_features
-dEQP-VK.api.info.get_physical_device_properties2.features.extended_dynamic_state_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.extended_dynamic_state2_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.fragment_density_map_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.fragment_density_map2_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.fragment_shading_rate_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.global_priority_query_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.multi_draw_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.inline_uniform_block_features
-dEQP-VK.api.info.get_physical_device_properties2.features.index_type_uint8_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.imageless_framebuffer_features
-dEQP-VK.api.info.get_physical_device_properties2.features.image_robustness_features
-dEQP-VK.api.info.get_physical_device_properties2.features.host_query_reset_features
-dEQP-VK.api.info.get_physical_device_properties2.features.line_rasterization_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.maintenance4_features
-dEQP-VK.api.info.get_physical_device_properties2.features.multiview_features
-dEQP-VK.api.info.get_physical_device_properties2.features.multi_draw_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.memory_priority_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_draw_parameters_features
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_float16_int8_features
+dEQP-VK.api.info.get_physical_device_properties2.features.host_query_reset_features
+dEQP-VK.api.info.get_physical_device_properties2.features.global_priority_query_features_khr
 dEQP-VK.api.info.get_physical_device_properties2.features.device_memory_report_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.performance_query_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_creation_cache_control_features
-dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_executable_properties_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.present_id_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.present_wait_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.protected_memory_features
-dEQP-VK.api.info.get_physical_device_properties2.features.provoking_vertex_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.primitive_topology_list_restart_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.private_data_features
-dEQP-VK.api.info.get_physical_device_properties2.features.ray_tracing_pipeline_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.ray_query_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.robustness2_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.sampler_ycbcr_conversion_features
-dEQP-VK.api.info.get_physical_device_properties2.features.scalar_block_layout_features
-dEQP-VK.api.info.get_physical_device_properties2.features.separate_depth_stencil_layouts_features
+dEQP-VK.api.info.get_physical_device_properties2.features.descriptor_indexing_features
+dEQP-VK.api.info.get_physical_device_properties2.features.timeline_semaphore_features
+dEQP-VK.api.info.get_physical_device_properties2.features.8_bit_storage_features
+dEQP-VK.api.info.get_physical_device_properties2.features.conditional_rendering_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.vulkan_memory_model_features
 dEQP-VK.api.info.get_physical_device_properties2.features.shader_atomic_int64_features
 dEQP-VK.api.info.get_physical_device_properties2.features.shader_atomic_float_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.shader_atomic_float2_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_float16_int8_features
+dEQP-VK.api.info.get_physical_device_properties2.features.vertex_attribute_divisor_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.astc_decode_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.transform_feedback_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.acceleration_structure_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.ray_tracing_pipeline_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.ray_query_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.ray_tracing_maintenance1_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.fragment_density_map_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.fragment_density_map2_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.scalar_block_layout_features
+dEQP-VK.api.info.get_physical_device_properties2.features.uniform_buffer_standard_layout_features
+dEQP-VK.api.info.get_physical_device_properties2.features.depth_clip_enable_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.memory_priority_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.pageable_device_local_memory_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.buffer_device_address_features
+dEQP-VK.api.info.get_physical_device_properties2.features.buffer_device_address_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.imageless_framebuffer_features
+dEQP-VK.api.info.get_physical_device_properties2.features.texture_compression_astchdr_features
+dEQP-VK.api.info.get_physical_device_properties2.features.ycbcr_image_arrays_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.performance_query_features_khr
 dEQP-VK.api.info.get_physical_device_properties2.features.shader_clock_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_demote_to_helper_invocation_features
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_draw_parameters_features
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_integer_dot_product_features
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_subgroup_extended_types_features
-dEQP-VK.api.info.get_physical_device_properties2.features.shader_terminate_invocation_features
-dEQP-VK.api.info.get_physical_device_properties2.features.subgroup_size_control_features
-dEQP-VK.api.info.get_physical_device_properties2.features.synchronization2_features
+dEQP-VK.api.info.get_physical_device_properties2.features.index_type_uint8_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.fragment_shader_interlock_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.separate_depth_stencil_layouts_features
+dEQP-VK.api.info.get_physical_device_properties2.features.primitive_topology_list_restart_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_executable_properties_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_demote_to_helper_invocation_features
 dEQP-VK.api.info.get_physical_device_properties2.features.texel_buffer_alignment_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.texture_compression_astchdr_features
-dEQP-VK.api.info.get_physical_device_properties2.features.timeline_semaphore_features
-dEQP-VK.api.info.get_physical_device_properties2.features.transform_feedback_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.uniform_buffer_standard_layout_features
+dEQP-VK.api.info.get_physical_device_properties2.features.subgroup_size_control_features
+dEQP-VK.api.info.get_physical_device_properties2.features.line_rasterization_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_creation_cache_control_features
+dEQP-VK.api.info.get_physical_device_properties2.features.vulkan11_features
+dEQP-VK.api.info.get_physical_device_properties2.features.vulkan12_features
+dEQP-VK.api.info.get_physical_device_properties2.features.vulkan13_features
+dEQP-VK.api.info.get_physical_device_properties2.features.custom_border_color_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.border_color_swizzle_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.extended_dynamic_state_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.extended_dynamic_state2_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.zero_initialize_workgroup_memory_features
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_subgroup_uniform_control_flow_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.robustness2_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.image_robustness_features
 dEQP-VK.api.info.get_physical_device_properties2.features.workgroup_memory_explicit_layout_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.variable_pointers_features
-dEQP-VK.api.info.get_physical_device_properties2.features.vertex_attribute_divisor_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.portability_subset_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.4444_formats_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_image_atomic_int64_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.fragment_shading_rate_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_terminate_invocation_features
+dEQP-VK.api.info.get_physical_device_properties2.features.image2_d_view_of3_d_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.depth_clip_control_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.vertex_input_dynamic_state_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.vulkan_memory_model_features_khr
-dEQP-VK.api.info.get_physical_device_properties2.features.ycbcr_image_arrays_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.color_write_enable_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.synchronization2_features
+dEQP-VK.api.info.get_physical_device_properties2.features.primitives_generated_query_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.multisampled_render_to_single_sampled_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.features.ycbcr2_plane444_formats_features_ext
-dEQP-VK.api.info.get_physical_device_properties2.features.zero_initialize_workgroup_memory_features
+dEQP-VK.api.info.get_physical_device_properties2.features.provoking_vertex_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_integer_dot_product_features
+dEQP-VK.api.info.get_physical_device_properties2.features.fragment_shader_barycentric_features_khr
+dEQP-VK.api.info.get_physical_device_properties2.features.rgba10_x6_formats_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.dynamic_rendering_features
+dEQP-VK.api.info.get_physical_device_properties2.features.image_view_min_lod_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.graphics_pipeline_library_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.shader_module_identifier_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.image_compression_control_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.image_compression_control_swapchain_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.subpass_merge_feedback_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_properties_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.non_seamless_cube_map_features_ext
+dEQP-VK.api.info.get_physical_device_properties2.features.pipeline_robustness_features_ext
 dEQP-VK.api.info.get_physical_device_properties2.properties.basic
 dEQP-VK.api.info.get_physical_device_properties2.format_properties.basic
 dEQP-VK.api.info.get_physical_device_properties2.queue_family_properties.basic
@@ -41725,131 +41749,131 @@ dEQP-VK.api.device_init.create_device_global_priority_query.basic
 dEQP-VK.api.device_init.create_device_global_priority_query_khr.basic
 dEQP-VK.api.device_init.create_device_features2.basic
 dEQP-VK.api.device_init.create_device_unsupported_features.core
-dEQP-VK.api.device_init.create_device_unsupported_features.16_bit_storage_features
-dEQP-VK.api.device_init.create_device_unsupported_features.multiview_features
+dEQP-VK.api.device_init.create_device_unsupported_features.device_generated_commands_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.private_data_features
 dEQP-VK.api.device_init.create_device_unsupported_features.variable_pointers_features
-dEQP-VK.api.device_init.create_device_unsupported_features.protected_memory_features
+dEQP-VK.api.device_init.create_device_unsupported_features.multiview_features
+dEQP-VK.api.device_init.create_device_unsupported_features.present_id_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.present_wait_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.16_bit_storage_features
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_subgroup_extended_types_features
 dEQP-VK.api.device_init.create_device_unsupported_features.sampler_ycbcr_conversion_features
+dEQP-VK.api.device_init.create_device_unsupported_features.protected_memory_features
+dEQP-VK.api.device_init.create_device_unsupported_features.blend_operation_advanced_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.multi_draw_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.inline_uniform_block_features
+dEQP-VK.api.device_init.create_device_unsupported_features.maintenance4_features
 dEQP-VK.api.device_init.create_device_unsupported_features.shader_draw_parameters_features
-dEQP-VK.api.device_init.create_device_unsupported_features.vulkan11_features
-dEQP-VK.api.device_init.create_device_unsupported_features.vulkan12_features
-dEQP-VK.api.device_init.create_device_unsupported_features.8_bit_storage_features
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_atomic_int64_features
 dEQP-VK.api.device_init.create_device_unsupported_features.shader_float16_int8_features
-dEQP-VK.api.device_init.create_device_unsupported_features.descriptor_indexing_features
-dEQP-VK.api.device_init.create_device_unsupported_features.scalar_block_layout_features
-dEQP-VK.api.device_init.create_device_unsupported_features.vulkan_memory_model_features
-dEQP-VK.api.device_init.create_device_unsupported_features.imageless_framebuffer_features
-dEQP-VK.api.device_init.create_device_unsupported_features.uniform_buffer_standard_layout_features
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_subgroup_extended_types_features
-dEQP-VK.api.device_init.create_device_unsupported_features.separate_depth_stencil_layouts_features
 dEQP-VK.api.device_init.create_device_unsupported_features.host_query_reset_features
-dEQP-VK.api.device_init.create_device_unsupported_features.timeline_semaphore_features
-dEQP-VK.api.device_init.create_device_unsupported_features.buffer_device_address_features
-dEQP-VK.api.device_init.create_device_unsupported_features.vulkan13_features
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_terminate_invocation_features
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_demote_to_helper_invocation_features
-dEQP-VK.api.device_init.create_device_unsupported_features.private_data_features
-dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_creation_cache_control_features
-dEQP-VK.api.device_init.create_device_unsupported_features.synchronization2_features
-dEQP-VK.api.device_init.create_device_unsupported_features.zero_initialize_workgroup_memory_features
-dEQP-VK.api.device_init.create_device_unsupported_features.image_robustness_features
-dEQP-VK.api.device_init.create_device_unsupported_features.subgroup_size_control_features
-dEQP-VK.api.device_init.create_device_unsupported_features.inline_uniform_block_features
-dEQP-VK.api.device_init.create_device_unsupported_features.texture_compression_astchdr_features
-dEQP-VK.api.device_init.create_device_unsupported_features.dynamic_rendering_features
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_integer_dot_product_features
-dEQP-VK.api.device_init.create_device_unsupported_features.maintenance4_features
-dEQP-VK.api.device_init.create_device_unsupported_features.performance_query_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_clock_features_khr
 dEQP-VK.api.device_init.create_device_unsupported_features.global_priority_query_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shading_rate_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.present_wait_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_executable_properties_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.present_id_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shader_barycentric_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_subgroup_uniform_control_flow_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.workgroup_memory_explicit_layout_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.ray_tracing_maintenance1_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.transform_feedback_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.corner_sampled_image_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.astc_decode_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_robustness_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.device_memory_report_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.descriptor_indexing_features
+dEQP-VK.api.device_init.create_device_unsupported_features.timeline_semaphore_features
+dEQP-VK.api.device_init.create_device_unsupported_features.8_bit_storage_features
 dEQP-VK.api.device_init.create_device_unsupported_features.conditional_rendering_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.depth_clip_enable_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.blend_operation_advanced_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_sm_builtins_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.shading_rate_image_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.representative_fragment_test_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.vulkan_memory_model_features
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_atomic_int64_features
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_atomic_float_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_atomic_float2_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.vertex_attribute_divisor_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.astc_decode_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.transform_feedback_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.representative_fragment_test_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.exclusive_scissor_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.corner_sampled_image_features_nv
 dEQP-VK.api.device_init.create_device_unsupported_features.compute_shader_derivatives_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.mesh_shader_features_nv
 dEQP-VK.api.device_init.create_device_unsupported_features.shader_image_footprint_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.exclusive_scissor_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_integer_functions2_features_intel
+dEQP-VK.api.device_init.create_device_unsupported_features.dedicated_allocation_image_aliasing_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.shading_rate_image_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.invocation_mask_features_huawei
+dEQP-VK.api.device_init.create_device_unsupported_features.mesh_shader_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.acceleration_structure_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.ray_tracing_pipeline_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.ray_query_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.ray_tracing_maintenance1_features_khr
 dEQP-VK.api.device_init.create_device_unsupported_features.fragment_density_map_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.coherent_memory_features_amd
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_image_atomic_int64_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.fragment_density_map2_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.fragment_density_map_offset_features_qcom
+dEQP-VK.api.device_init.create_device_unsupported_features.scalar_block_layout_features
+dEQP-VK.api.device_init.create_device_unsupported_features.uniform_buffer_standard_layout_features
+dEQP-VK.api.device_init.create_device_unsupported_features.depth_clip_enable_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.memory_priority_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.dedicated_allocation_image_aliasing_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.pageable_device_local_memory_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.buffer_device_address_features
 dEQP-VK.api.device_init.create_device_unsupported_features.buffer_device_address_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.imageless_framebuffer_features
+dEQP-VK.api.device_init.create_device_unsupported_features.texture_compression_astchdr_features
 dEQP-VK.api.device_init.create_device_unsupported_features.cooperative_matrix_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.coverage_reduction_mode_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shader_interlock_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.ycbcr_image_arrays_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.provoking_vertex_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.line_rasterization_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_atomic_float_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.performance_query_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.coverage_reduction_mode_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_integer_functions2_features_intel
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_clock_features_khr
 dEQP-VK.api.device_init.create_device_unsupported_features.index_type_uint8_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.extended_dynamic_state_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_atomic_float2_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.device_generated_commands_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.inherited_viewport_scissor_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_sm_builtins_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shader_interlock_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.separate_depth_stencil_layouts_features
+dEQP-VK.api.device_init.create_device_unsupported_features.primitive_topology_list_restart_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_executable_properties_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_demote_to_helper_invocation_features
 dEQP-VK.api.device_init.create_device_unsupported_features.texel_buffer_alignment_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.device_memory_report_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.robustness2_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.subgroup_size_control_features
+dEQP-VK.api.device_init.create_device_unsupported_features.line_rasterization_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_creation_cache_control_features
+dEQP-VK.api.device_init.create_device_unsupported_features.vulkan11_features
+dEQP-VK.api.device_init.create_device_unsupported_features.vulkan12_features
+dEQP-VK.api.device_init.create_device_unsupported_features.vulkan13_features
+dEQP-VK.api.device_init.create_device_unsupported_features.coherent_memory_features_amd
 dEQP-VK.api.device_init.create_device_unsupported_features.custom_border_color_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.border_color_swizzle_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.extended_dynamic_state_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.extended_dynamic_state2_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.diagnostics_config_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.graphics_pipeline_library_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_early_and_late_fragment_tests_features_amd
-dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shading_rate_enums_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.ray_tracing_motion_blur_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.ycbcr2_plane444_formats_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.fragment_density_map2_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.image_compression_control_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.zero_initialize_workgroup_memory_features
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_subgroup_uniform_control_flow_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.robustness2_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.image_robustness_features
+dEQP-VK.api.device_init.create_device_unsupported_features.workgroup_memory_explicit_layout_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.portability_subset_features_khr
 dEQP-VK.api.device_init.create_device_unsupported_features.4444_formats_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.rasterization_order_attachment_access_features_arm
-dEQP-VK.api.device_init.create_device_unsupported_features.rgba10_x6_formats_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.subpass_shading_features_huawei
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_image_atomic_int64_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shading_rate_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_terminate_invocation_features
+dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shading_rate_enums_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.image2_d_view_of3_d_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.mutable_descriptor_type_features_valve
-dEQP-VK.api.device_init.create_device_unsupported_features.vertex_input_dynamic_state_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.depth_clip_control_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.primitive_topology_list_restart_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.subpass_shading_features_huawei
-dEQP-VK.api.device_init.create_device_unsupported_features.invocation_mask_features_huawei
+dEQP-VK.api.device_init.create_device_unsupported_features.vertex_input_dynamic_state_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.external_memory_rdma_features_nv
-dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_properties_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.multisampled_render_to_single_sampled_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.extended_dynamic_state2_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.color_write_enable_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.synchronization2_features
 dEQP-VK.api.device_init.create_device_unsupported_features.primitives_generated_query_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.multisampled_render_to_single_sampled_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.inherited_viewport_scissor_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.ycbcr2_plane444_formats_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.provoking_vertex_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_integer_dot_product_features
+dEQP-VK.api.device_init.create_device_unsupported_features.fragment_shader_barycentric_features_khr
+dEQP-VK.api.device_init.create_device_unsupported_features.ray_tracing_motion_blur_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.rgba10_x6_formats_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.dynamic_rendering_features
 dEQP-VK.api.device_init.create_device_unsupported_features.image_view_min_lod_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.multi_draw_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.image2_d_view_of3_d_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.border_color_swizzle_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.pageable_device_local_memory_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.descriptor_set_host_mapping_features_valve
-dEQP-VK.api.device_init.create_device_unsupported_features.non_seamless_cube_map_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.fragment_density_map_offset_features_qcom
+dEQP-VK.api.device_init.create_device_unsupported_features.rasterization_order_attachment_access_features_arm
 dEQP-VK.api.device_init.create_device_unsupported_features.linear_color_attachment_features_nv
+dEQP-VK.api.device_init.create_device_unsupported_features.graphics_pipeline_library_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.descriptor_set_host_mapping_features_valve
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_module_identifier_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.image_compression_control_features_ext
 dEQP-VK.api.device_init.create_device_unsupported_features.image_compression_control_swapchain_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.image_processing_features_qcom
 dEQP-VK.api.device_init.create_device_unsupported_features.subpass_merge_feedback_features_ext
-dEQP-VK.api.device_init.create_device_unsupported_features.shader_module_identifier_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_properties_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.shader_early_and_late_fragment_tests_features_amd
+dEQP-VK.api.device_init.create_device_unsupported_features.non_seamless_cube_map_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.pipeline_robustness_features_ext
+dEQP-VK.api.device_init.create_device_unsupported_features.image_processing_features_qcom
 dEQP-VK.api.device_init.create_device_unsupported_features.tile_properties_features_qcom
-dEQP-VK.api.device_init.create_device_unsupported_features.acceleration_structure_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.ray_tracing_pipeline_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.ray_query_features_khr
-dEQP-VK.api.device_init.create_device_unsupported_features.portability_subset_features_khr
 dEQP-VK.api.device_init.create_device_queue2.basic
 dEQP-VK.api.device_init.create_instance_device_intentional_alloc_fail.basic
 dEQP-VK.api.device_init.create_device_queue2_two_queues.basic
diff --git a/external/vulkancts/scripts/gen_ext_deps.py b/external/vulkancts/scripts/gen_ext_deps.py
deleted file mode 100644 (file)
index 24c85ba..0000000
+++ /dev/null
@@ -1,227 +0,0 @@
-# -*- coding: utf-8 -*-
-
-#-------------------------------------------------------------------------
-# drawElements Quality Program utilities
-# --------------------------------------
-#
-# Copyright 2018 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#-------------------------------------------------------------------------
-
-import os
-import sys
-import argparse
-
-sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "..", "scripts"))
-
-import khr_util.format
-from khr_util import registry
-from collections import defaultdict
-
-VK_INL_HEADER                                  = """\
-/* WARNING: This is auto-generated file. Do not modify, since changes will
- * be lost! Modify the generating script instead.
- * This file was generated by /scripts/gen_ext_deps.py
- */\
-
-"""
-
-DEFAULT_OUTPUT_DIR     = { "" :        os.path.join(os.path.dirname(__file__), "..", "framework", "vulkan", "generated", "vulkan"),
-                                               "SC" :  os.path.join(os.path.dirname(__file__), "..", "framework", "vulkan", "generated", "vulkansc") }
-
-def VK_MAKE_API_VERSION(api, major, minor, patch):
-       return ( ((api) << 29) | ((major) << 22) | ((minor) << 12) | (patch))
-
-VK_EXT_NOT_PROMOTED                            = 0xFFFFFFFF
-VK_EXT_TYPE_INSTANCE                   = 0
-VK_EXT_TYPE_DEVICE                             = 1
-VK_EXT_DEP_INSTANCE                            = 'instanceExtensionDependencies'
-VK_EXT_DEP_DEVICE                              = 'deviceExtensionDependencies'
-VK_EXT_API_VERSIONS                            = 'releasedApiVersions'
-VK_EXT_CORE_VERSIONS                   = 'extensionRequiredCoreVersion'
-VK_XML_EXT_DEPS                                        = 'requires'
-VK_XML_EXT_NAME                                        = 'name'
-VK_XML_EXT_PROMO                               = 'promotedto'
-VK_XML_EXT_REQUIRES_CORE               = 'requiresCore'
-VK_XML_EXT_SUPPORTED                   = 'supported'
-VK_XML_EXT_SUPPORTED_VULKAN            = 'vulkan'
-VK_XML_EXT_API                                 = 'api'
-VK_XML_EXT_TYPE                                        = 'type'
-VK_XML_EXT_TYPE_DEVICE                 = 'device'
-VK_XML_EXT_TYPE_INSTANCE               = 'instance'
-
-apiVariantNames                                        = {     'VK' : 0,
-                                                                       'VKSC' : 1 }
-
-def writeInlFile(filename, lines):
-       khr_util.format.writeInlFile(filename, VK_INL_HEADER, lines)
-
-def genExtDepArray(extDepsName, extDepsDict):
-       yield 'static const std::tuple<deUint32, deUint32, deUint32, const char*, const char*>\t{}[]\t='.format(extDepsName)
-       yield '{'
-       for ( apiName, major, minor, ext, extDeps ) in extDepsDict:
-               for dep in extDeps:
-                       yield '\tstd::make_tuple({}, {}, {}, "{}", "{}"),'.format(apiVariantNames[apiName], major, minor, ext, dep)
-       yield '};'
-
-def genApiVersions(name, apiVersions):
-       yield 'static const std::tuple<deUint32, deUint32, deUint32, deUint32>\t{}[]\t='.format(name)
-       yield '{'
-       for ( version, apiName, major, minor ) in apiVersions:
-               yield '\tstd::make_tuple({}, {}, {}, {}),'.format(version, apiVariantNames[apiName], major, minor)
-       yield '};'
-
-def genRequiredCoreVersions(name, coreVersionsDict):
-       yield 'static const std::tuple<deUint32, deUint32, const char*>\t{}[]\t ='.format(name)
-       yield '{'
-       extNames = sorted(coreVersionsDict.keys())
-       for extName in extNames:
-               (major, minor) = coreVersionsDict[extName]
-               yield '\tstd::make_tuple({}, {}, "{}"),'.format(major, minor, extName)
-       yield '};'
-
-def genExtDepInl(dependenciesAndVersions, filename):
-       allExtDepsDict, apiVersions, allExtCoreVersions = dependenciesAndVersions
-       apiVersions.reverse()
-       lines = []
-
-       lines.extend(genExtDepArray(VK_EXT_DEP_INSTANCE, allExtDepsDict[VK_EXT_TYPE_INSTANCE]))
-       lines.extend(genExtDepArray(VK_EXT_DEP_DEVICE, allExtDepsDict[VK_EXT_TYPE_DEVICE]))
-       lines.extend(genApiVersions(VK_EXT_API_VERSIONS, apiVersions))
-       lines.extend(genRequiredCoreVersions(VK_EXT_CORE_VERSIONS, allExtCoreVersions))
-
-       writeInlFile(filename, lines)
-
-class extInfo:
-       def __init__(self):
-               self.type                       = VK_EXT_TYPE_INSTANCE
-               self.core                       = VK_MAKE_API_VERSION(0, 1, 0, 0)
-               self.coreMajorMinor     = (1, 0)
-               self.promo                      = VK_EXT_NOT_PROMOTED
-               self.deps                       = []
-
-def genExtDepsOnApiVersion(ext, extInfoDict, apiVersion):
-       deps = []
-
-       for dep in extInfoDict[ext].deps:
-               if apiVersion >= extInfoDict[dep].promo:
-                       continue
-
-               deps.append(dep)
-
-       return deps
-
-def genExtDeps(extensionsAndVersions):
-       extInfoDict, apiVersionID = extensionsAndVersions
-
-       allExtDepsDict  = defaultdict(list)
-       apiVersions             = []
-
-       for (apiName,major,minor) in apiVersionID:
-               apiVersions.append((VK_MAKE_API_VERSION(apiVariantNames[apiName], major, minor, 0),apiName,major,minor))
-       apiVersions.sort(key=lambda x: x[0])
-
-       for ext, info in extInfoDict.items():
-               if info.deps == None:
-                       continue
-
-               for (version,apiName,major,minor) in apiVersions:
-                       if info.core <= version:
-                               extDeps = genExtDepsOnApiVersion(ext, extInfoDict, version)
-                               if extDeps == None:
-                                       continue
-                               allExtDepsDict[info.type].append( ( apiName, major, minor, ext, extDeps ) )
-
-       for key, value in allExtDepsDict.items():
-               value.sort(key=lambda x: x[3])
-
-       allExtCoreVersions = {}
-       for (ext, info) in extInfoDict.items():
-               allExtCoreVersions[ext] = info.coreMajorMinor
-
-       return allExtDepsDict, apiVersions, allExtCoreVersions
-
-
-def getExtInfoDict(vkRegistry):
-       extInfoDict = {}
-       apiVersionID = []
-
-       for feature in vkRegistry.features:
-               if feature.attrib[VK_XML_EXT_API] != VK_XML_EXT_SUPPORTED_VULKAN:
-                       continue
-               featureName = feature.attrib[VK_XML_EXT_NAME].split('_')
-               if len(featureName)!=4 or featureName[0] not in apiVariantNames or featureName[1] != 'VERSION' :
-                       continue
-               apiVersionID.append( ( featureName[0], int(featureName[2]), int(featureName[3])) )
-
-       apiVersionsByName               = {}
-       apiVersionsByNumber             = {}
-       apiMajorMinorByNumber   = {}
-       for (apiName, major,minor) in apiVersionID:
-               majorDotMinor = '{}.{}'.format(major,minor)
-               apiVersionsByName['{}_VERSION_{}_{}'.format(apiName,major,minor)]       = VK_MAKE_API_VERSION(apiVariantNames[apiName], major, minor, 0);
-               apiVersionsByNumber[majorDotMinor]                                                                      = VK_MAKE_API_VERSION(apiVariantNames[apiName], major, minor, 0);
-               apiMajorMinorByNumber[majorDotMinor]                                                            = (major, minor)
-
-       for ext in vkRegistry.extensions:
-               if ext.attrib[VK_XML_EXT_SUPPORTED] != VK_XML_EXT_SUPPORTED_VULKAN:
-                       continue
-
-               name                            = ext.attrib[VK_XML_EXT_NAME]
-               extInfoDict[name]       = extInfo()
-               if ext.attrib[VK_XML_EXT_TYPE] == VK_XML_EXT_TYPE_DEVICE:
-                       extInfoDict[name].type = VK_EXT_TYPE_DEVICE
-               if VK_XML_EXT_REQUIRES_CORE in ext.attrib and ext.attrib[VK_XML_EXT_REQUIRES_CORE] in apiVersionsByNumber:
-                       extInfoDict[name].core = apiVersionsByNumber[ext.attrib[VK_XML_EXT_REQUIRES_CORE]]
-                       extInfoDict[name].coreMajorMinor = apiMajorMinorByNumber[ext.attrib[VK_XML_EXT_REQUIRES_CORE]]
-               if VK_XML_EXT_PROMO in ext.attrib and ext.attrib[VK_XML_EXT_PROMO] in apiVersionsByName :
-                       extInfoDict[name].promo = apiVersionsByName[ext.attrib[VK_XML_EXT_PROMO]]
-               if VK_XML_EXT_DEPS in ext.attrib:
-                       extInfoDict[name].deps = ext.attrib[VK_XML_EXT_DEPS].split(',')
-
-       return extInfoDict, apiVersionID
-
-def parseCmdLineArgs():
-       parser = argparse.ArgumentParser(description = "Generate Vulkan INL files",
-                                                                        formatter_class=argparse.ArgumentDefaultsHelpFormatter)
-       parser.add_argument("-a",
-                                               "--api",
-                                               dest="api",
-                                               default="",
-                                               help="Choose between Vulkan and Vulkan SC")
-       parser.add_argument("-o",
-                                               "--outdir",
-                                               dest="outdir",
-                                               default="",
-                                               help="Choose output directory")
-       return parser.parse_args()
-
-if __name__ == '__main__':
-       args                                    = parseCmdLineArgs()
-
-       # Currently this script works only for Vulkan API. In case of other APIs it returns silently
-       if args.api != '':
-               sys.exit(0)
-
-       outputPath = DEFAULT_OUTPUT_DIR[args.api]
-       # if argument was specified it is interpreted as a path to which .inl files will be written
-       if args.outdir != '':
-               outputPath = args.outdir
-
-       # Warning: currently vulkan-docs does not contain Vulkan SC API and its vk.xml
-       VULKAN_XML = os.path.join(os.path.dirname(__file__), "..", "..", "vulkan-docs", "src", "xml", "vk.xml")
-       vkRegistry = registry.parse(VULKAN_XML)
-
-       genExtDepInl(genExtDeps(getExtInfoDict(vkRegistry)), os.path.join(outputPath, "vkApiExtensionDependencyInfo.inl"))
index 33a1b30..21050f2 100755 (executable)
@@ -27,6 +27,7 @@ import copy
 import glob
 import json
 import argparse
+from lxml import etree
 from itertools import chain
 from collections import OrderedDict
 
@@ -35,7 +36,7 @@ sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "..", "scrip
 from build.common import DEQP_DIR, execute
 from khr_util.format import indentLines, writeInlFile
 
-VULKAN_HEADERS_INCLUDE_DIR     = os.path.join(os.path.dirname(__file__), "..", "..", "vulkan-docs", "src", "include")
+VULKAN_XML_DIR                         = os.path.join(os.path.dirname(__file__), "..", "..", "vulkan-docs", "src", "xml")
 SCRIPTS_SRC_DIR                                = os.path.join(os.path.dirname(__file__), "src")
 DEFAULT_OUTPUT_DIR                     = { "" :        os.path.join(os.path.dirname(__file__), "..", "framework", "vulkan", "generated", "vulkan"),
                                                                "SC" :  os.path.join(os.path.dirname(__file__), "..", "framework", "vulkan", "generated", "vulkansc") }
@@ -48,27 +49,27 @@ INL_HEADER = """\
 
 """
 
-DEFINITIONS                    = [
-       ("VK_MAX_PHYSICAL_DEVICE_NAME_SIZE",    "size_t"),
-       ("VK_MAX_EXTENSION_NAME_SIZE",                  "size_t"),
-       ("VK_MAX_DRIVER_NAME_SIZE",                             "size_t"),
-       ("VK_MAX_DRIVER_INFO_SIZE",                             "size_t"),
-       ("VK_UUID_SIZE",                                                "size_t"),
-       ("VK_LUID_SIZE",                                                "size_t"),
-       ("VK_MAX_MEMORY_TYPES",                                 "size_t"),
-       ("VK_MAX_MEMORY_HEAPS",                                 "size_t"),
-       ("VK_MAX_DESCRIPTION_SIZE",                             "size_t"),
-       ("VK_MAX_DEVICE_GROUP_SIZE",                    "size_t"),
-       ("VK_ATTACHMENT_UNUSED",                                "uint32_t"),
-       ("VK_SUBPASS_EXTERNAL",                                 "uint32_t"),
-       ("VK_QUEUE_FAMILY_IGNORED",                             "uint32_t"),
-       ("VK_QUEUE_FAMILY_EXTERNAL",                    "uint32_t"),
-       ("VK_REMAINING_MIP_LEVELS",                             "uint32_t"),
-       ("VK_REMAINING_ARRAY_LAYERS",                   "uint32_t"),
-       ("VK_WHOLE_SIZE",                                               "vk::VkDeviceSize"),
-       ("VK_TRUE",                                                             "vk::VkBool32"),
-       ("VK_FALSE",                                                    "vk::VkBool32"),
-]
+DEFINITIONS                    = {
+       "VK_MAX_PHYSICAL_DEVICE_NAME_SIZE":             "size_t",
+       "VK_MAX_EXTENSION_NAME_SIZE":                   "size_t",
+       "VK_MAX_DRIVER_NAME_SIZE":                              "size_t",
+       "VK_MAX_DRIVER_INFO_SIZE":                              "size_t",
+       "VK_UUID_SIZE":                                                 "size_t",
+       "VK_LUID_SIZE":                                                 "size_t",
+       "VK_MAX_MEMORY_TYPES":                                  "size_t",
+       "VK_MAX_MEMORY_HEAPS":                                  "size_t",
+       "VK_MAX_DESCRIPTION_SIZE":                              "size_t",
+       "VK_MAX_DEVICE_GROUP_SIZE":                             "size_t",
+       "VK_ATTACHMENT_UNUSED":                                 "uint32_t",
+       "VK_SUBPASS_EXTERNAL":                                  "uint32_t",
+       "VK_QUEUE_FAMILY_IGNORED":                              "uint32_t",
+       "VK_QUEUE_FAMILY_EXTERNAL":                             "uint32_t",
+       "VK_REMAINING_MIP_LEVELS":                              "uint32_t",
+       "VK_REMAINING_ARRAY_LAYERS":                    "uint32_t",
+       "VK_WHOLE_SIZE":                                                "vk::VkDeviceSize",
+       "VK_TRUE":                                                              "vk::VkBool32",
+       "VK_FALSE":                                                             "vk::VkBool32",
+}
 
 PLATFORM_TYPES         = [
        # VK_KHR_xlib_surface
@@ -108,6 +109,8 @@ PLATFORM_TYPES              = [
        (["GgpFrameToken"],                                             ["GgpFrameToken"],                              "int32_t"),
        (["GgpStreamDescriptor"],                               ["GgpStreamDescriptor"],                "int32_t"),
        (["CAMetalLayer"],                                              ["CAMetalLayer"],                               "void*"),
+       (["struct", "_screen_context", "*"],    ["QNXScreenContextPtr"],                "void*"),
+       (["struct", "_screen_window", "*"],             ["QNXScreenWindowPtr"],                 "void*"),
 
        # VK_EXT_metal_objects
        (["MTLDevice_id"],                                              ["MTLDevice_id"],                               "void*"),
@@ -126,759 +129,677 @@ TYPE_SUBSTITUTIONS              = [
        ("HANDLE*",             PLATFORM_TYPE_NAMESPACE + "::" + "Win32Handle*"),
 ]
 
-EXTENSION_POSTFIXES                            = ["KHR", "EXT", "NV", "NVX", "KHX", "NN", "MVK", "FUCHSIA", "GGP", "AMD", "QNX"]
 EXTENSION_POSTFIXES_STANDARD   = ["KHR", "EXT"]
-
-def prefixName (prefix, name):
-       name = re.sub(r'([a-z0-9])([A-Z])', r'\1_\2', name[2:])
-       name = re.sub(r'([a-zA-Z])([0-9])', r'\1_\2', name)
-       name = name.upper()
-
-       name = name.replace("YCB_CR_", "YCBCR_")
-       name = name.replace("WIN_32_", "WIN32_")
-       name = name.replace("8_BIT_", "8BIT_")
-       name = name.replace("16_BIT_", "16BIT_")
-       name = name.replace("INT_64_", "INT64_")
-       name = name.replace("D_3_D_12_", "D3D12_")
-       name = name.replace("IOSSURFACE_", "IOS_SURFACE_")
-       name = name.replace("MAC_OS", "MACOS_")
-       name = name.replace("TEXTURE_LOD", "TEXTURE_LOD_")
-       name = name.replace("VIEWPORT_W", "VIEWPORT_W_")
-       name = name.replace("_IDPROPERTIES", "_ID_PROPERTIES")
-       name = name.replace("PHYSICAL_DEVICE_SHADER_FLOAT_16_INT_8_FEATURES", "PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES")
-       name = name.replace("PHYSICAL_DEVICE_RGBA_10_X_6_FORMATS_FEATURES_EXT", "PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT")
-       name = name.replace("_PCIBUS_", "_PCI_BUS_")
-       name = name.replace("ASTCD", "ASTC_D")
-       name = name.replace("AABBNV", "AABB_NV")
-       name = name.replace("IMAGE_PIPE", "IMAGEPIPE")
-       name = name.replace("SMBUILTINS", "SM_BUILTINS")
-       name = name.replace("ASTCHDRFEATURES", "ASTC_HDR_FEATURES")
-       name = name.replace("UINT_8", "UINT8")
-       name = name.replace("VULKAN_11_FEATURES", "VULKAN_1_1_FEATURES")
-       name = name.replace("VULKAN_11_PROPERTIES", "VULKAN_1_1_PROPERTIES")
-       name = name.replace("VULKAN_12_FEATURES", "VULKAN_1_2_FEATURES")
-       name = name.replace("VULKAN_12_PROPERTIES", "VULKAN_1_2_PROPERTIES")
-       name = name.replace("VULKAN_13_FEATURES", "VULKAN_1_3_FEATURES")
-       name = name.replace("VULKAN_13_PROPERTIES", "VULKAN_1_3_PROPERTIES")
-       name = name.replace("VULKAN_SC_10_FEATURES", "VULKAN_SC_1_0_FEATURES")
-       name = name.replace("VULKAN_SC_10_PROPERTIES", "VULKAN_SC_1_0_PROPERTIES")
-       name = name.replace("INT_8_", "INT8_")
-       name = name.replace("AABBNV", "AABB_NV")
-       name = name.replace("_H_264_", "_H264_")
-       name = name.replace("_H_265_", "_H265_")
-       name = name.replace("RDMAFEATURES", "RDMA_FEATURES")
-       name = name.replace("RGBA_10_X_6", "RGBA10X6")
-       name = name.replace("2_D", "2D_")
-       name = name.replace("3_D", "3D_")
-       name = name.replace("IOSURFACE", "IO_SURFACE")
-
-       return prefix + name
-
-def getApiVariantIndexByName(variantName):
-       apiVariant = {
-               None : 0,
-               ''   : 0,
-               'SC' : 1
-       }
-       return apiVariant[variantName]
-
-def getApiVariantNameByIndex(variantIndex):
-       apiVariant = {
-               None : '',
-               0    : '',
-               1    : 'SC'
-       }
-       return apiVariant[variantIndex]
-
-class Version:
-       def __init__ (self, versionTuple):
-               self.api   = versionTuple[0]
-               self.major = versionTuple[1]
-               self.minor = versionTuple[2]
-               self.patch = versionTuple[3]
-
-       def getInHex (self):
-               if self.patch == 0:
-                       return "VK%s_API_VERSION_%d_%d" % (getApiVariantNameByIndex(self.api), self.major, self.minor)
-               return '0x%Xu' % (hash(self))
-
-       def isStandardVersion (self):
-               if self.patch != 0:
-                       return False
-               if self.major != 1:
-                       return False
-               return True
-
-       def getBestRepresentation (self):
-               if self.isStandardVersion():
-                       return self.getInHex()
-               return self.getDefineName()
-
-       def getDefineName (self):
-               return 'VERSION_%d_%d_%d' % (self.major, self.minor, self.patch)
-
-       def __hash__ (self):
-               return (self.api << 29) | (self.major << 22) | (self.minor << 12) | self.patch
-
-       def __eq__ (self, other):
-               return self.api == other.api and self.major == other.major and self.minor == other.minor and self.patch == other.patch
-
-       def __str__ (self):
-               return self.getBestRepresentation()
+EXTENSION_POSTFIXES_VENDOR             = ["AMD", "ARM", "NV", 'INTEL', "NVX", "KHX", "NN", "MVK", "FUCHSIA", 'QCOM', "GGP", "QNX", "ANDROID", 'VALVE', 'HUAWEI']
+EXTENSION_POSTFIXES                            = EXTENSION_POSTFIXES_STANDARD + EXTENSION_POSTFIXES_VENDOR
+
+def substituteType(object):            # both CompositeMember and FunctionArgument can be passed to this function
+       for src, dst in TYPE_SUBSTITUTIONS:
+               object.type = object.type.replace(src, dst)
+       for platformType, substitute, _ in PLATFORM_TYPES:
+               platformTypeName = platformType[0]
+               platformTypeName = platformType[-2] if "*" in platformType else platformType[0]
+               if object.type == platformTypeName:
+                       object.type = PLATFORM_TYPE_NAMESPACE + '::' + substitute[0]
+                       object.qualifiers = None if 'struct' in platformType else object.qualifiers
+                       object.qualifiers = None if 'const' in platformType else object.qualifiers
+                       if "*" in platformType:
+                               object.pointer = "*" if object.pointer == "**" else None
+
+class Define:
+       def __init__ (self, name, aType, alias, value):
+               self.name                       = name
+               self.type                       = aType
+               self.alias                      = alias
+               self.value                      = value
 
 class Handle:
-       TYPE_DISP               = 0
-       TYPE_NONDISP    = 1
+       def __init__ (self, name, aType, alias, parent, objtypeenum):
+               self.name                       = name
+               self.type                       = aType
+               self.alias                      = alias
+               self.parent                     = parent
+               self.objtypeenum        = objtypeenum
 
-       def __init__ (self, type, name):
-               self.type               = type
+class Bitmask:
+       def __init__ (self, name, aType, requires, bitvalues):
                self.name               = name
-               self.alias              = None
-               self.isAlias    = False
-
-       def getHandleType (self):
-               return prefixName("HANDLE_TYPE_", self.name)
-
-       def checkAliasValidity (self):
-               pass
-
-       def __repr__ (self):
-               return '%s (%s, %s)' % (self.name, self.alias, self.isAlias)
-
-class Definition:
-       def __init__ (self, type, name, value):
-               self.type       = type
-               self.name       = name
-               self.value      = value
-               self.alias      = None
-               self.isAlias    = False
-
-       def __repr__ (self):
-               return '%s = %s (%s)' % (self.name, self.value, self.type)
+               self.type               = aType
+               self.alias              = None                                  # initialy None but may be filled while parsing next tag
+               self.requires   = requires
+               self.bitvalues  = bitvalues
 
-class Enum:
-       def __init__ (self, name, values):
-               self.name               = name
-               self.values             = values
-               self.alias              = None
-               self.isAlias    = False
-
-       def checkAliasValidity (self):
-               if self.alias != None:
-                       if len(self.values) != len(self.alias.values):
-                               raise Exception("%s has different number of flags than its alias %s." % (self.name, self.alias.name))
-                       for index, value in enumerate(self.values):
-                               aliasVal = self.alias.values[index]
-                               if value[1] != aliasVal[1] or not (value[0].startswith(aliasVal[0]) or aliasVal[0].startswith(value[0])):
-                                       raise Exception("Flag %s of %s has different value than %s of %s." % (self.alias.values[index], self.alias.name, value, self.name))
-
-       def __repr__ (self):
-               return '%s (%s) %s' % (self.name, self.alias, self.values)
-
-class Bitfield:
-       def __init__ (self, name, values):
-               self.name               = name
-               self.values             = values
-               self.alias              = None
-               self.isAlias    = False
-
-       def checkAliasValidity (self):
-               if self.alias != None:
-                       if len(self.values) != len(self.alias.values):
-                               raise Exception("%s has different number of flags than its alias %s." % (self.name, self.alias.name))
-                       for index, value in enumerate(self.values):
-                               aliasVal = self.alias.values[index]
-                               if value[1] != aliasVal[1] or not (value[0].startswith(aliasVal[0]) or aliasVal[0].startswith(value[0])):
-                                       raise Exception("Flag %s of %s has different value than %s of %s." % (self.alias.values[index], self.alias.name, value, self.name))
-
-       def __repr__ (self):
-               return '%s (%s)' % (self.name, self.alias)
-
-class Variable:
-       def __init__ (self, type, name, arraySizeOrFieldWidth):
-               type            = type.replace('*',' *').replace('&',' &')
-               for src, dst in TYPE_SUBSTITUTIONS:
-                       type = type.replace(src, dst)
-               self.type       = type.split(' ')
-               for platformType, substitute, compat in PLATFORM_TYPES:
-                       range = self.contains(self.type, platformType)
-                       if range != None:
-                               self.type = self.type[:range[0]]+[PLATFORM_TYPE_NAMESPACE + '::' + substitute[0]] + substitute[1:] + self.type[range[1]:]
-                               break
+class Enumerator:
+       def __init__ (self, name, value, bitpos):
                self.name               = name
-               if len(arraySizeOrFieldWidth) > 0 and arraySizeOrFieldWidth[0] == ':':
-                       self.arraySize  = ''
-                       self.fieldWidth = arraySizeOrFieldWidth
-               else:
-                       self.arraySize  = arraySizeOrFieldWidth
-                       self.fieldWidth = ''
-
-       def contains(self, big, small):
-               for i in range(len(big)-len(small)+1):
-                       for j in range(len(small)):
-                               if big[i+j] != small[j]:
-                                       break
-                       else:
-                               return i, i+len(small)
-               return None
-
-       def getType (self):
-               return ' '.join(self.type).replace(' *','*').replace(' &','&')
-
-       def getAsString (self, separator):
-               return '%s%s%s%s%s' % (self.getType(), separator, self.name, self.arraySize, self.fieldWidth)
-
-       def getAsStringForArgumentList (self, separator):
-               return '%s%s%s%s' % (self.getType(), separator, self.name, self.arraySize)
+               self.aliasList  = []                                    # list of strings
+               self.value              = value                                 # some enums specify value and some bitpos
+               self.bitpos             = bitpos
+               self.extension  = None                                  # name of extension that added this enumerator
 
-       def __repr__ (self):
-               return '<%s> <%s> <%s>' % (self.type, self.name, self.arraySize)
-
-       def __eq__ (self, other):
-               if len(self.type) != len(other.type):
+class Enum:
+       def __init__ (self, name):
+               self.name                               = name
+               self.alias                              = None                  # name of enum alias or None
+               self.type                               = None                  # enum or bitmask
+               self.bitwidth                   = "32"
+               self.enumeratorList             = []                    # list of Enumerator objects
+
+       def areValuesLinear (self):
+               if self.type == 'bitmask':
                        return False
-               for index, type in enumerate(self.type):
-                       if "*" == type or "&" == type or "const" == type or "volatile" == type:
-                               if type != other.type[index]:
-                                       return False
-                       elif type != other.type[index] and \
-                               type not in map(lambda ext: other.type[index] + ext, EXTENSION_POSTFIXES_STANDARD) and \
-                               other.type[index] not in map(lambda ext: type + ext, EXTENSION_POSTFIXES_STANDARD):
+               curIndex = 0
+               for enumerator in self.enumeratorList:
+                       intValue = parseInt(enumerator.value)
+                       if intValue != curIndex:
                                return False
-               return self.arraySize == other.arraySize
-
-       def __ne__ (self, other):
-               return not self == other
-
-class CompositeType:
-       CLASS_STRUCT    = 0
-       CLASS_UNION             = 1
+                       curIndex += 1
+               return True
 
-       def __init__ (self, typeClass, name, members, apiVersion = None):
-               self.typeClass  = typeClass
-               self.name               = name
-               self.members    = members
-               self.alias              = None
-               self.isAlias    = False
-               self.apiVersion = apiVersion
-
-       def getClassName (self):
-               names = {CompositeType.CLASS_STRUCT: 'struct', CompositeType.CLASS_UNION: 'union'}
-               return names[self.typeClass]
-
-       def checkAliasValidity (self):
-               if self.alias != None:
-                       if len(self.members) != len(self.alias.members):
-                               raise Exception("%s has different number of members than its alias %s." % (self.name, self.alias.name))
-                       for index, member in enumerate(self.members ):
-                               break
-                               #if member != self.alias.members[index]:
-                                       #raise Exception("Member %s of %s is different than core member %s in %s." % (self.alias.members[index], self.alias.name, member, self.name))
-                                       #raise Exception("Member ",str(self.alias.members[index])," of ", str(self.alias.name)," is different than core member ", str(member)," in ", str(self.name),".")
-       def __repr__ (self):
-               return '%s (%s)' % (self.name, self.alias)
+class CompositeMember:
+       def __init__ (self, name, aType, pointer, qualifiers, arraySizeList, optional, limittype, values, fieldWidth):
+               self.name                       = name
+               self.type                       = aType                                 # member type
+               self.pointer            = pointer                               # None, '*' or '**'
+               self.qualifiers         = qualifiers                    # 'const' or 'struct' or None
+               self.arraySizeList      = arraySizeList                 # can contain digits or enums
+               self.optional           = optional
+               self.limittype          = limittype
+               self.values                     = values                                # allowed member values
+               self.fieldWidth         = fieldWidth                    # ':' followed by number of bits
+
+               # check if type should be swaped
+               substituteType(self)
+
+class Composite:
+       def __init__ (self, name, category, allowduplicate, structextends, returnedonly, members):
+               self.name                       = name
+               self.category           = category                      # is it struct or union
+               self.aliasList          = []                            # most composite types have single alias but there are cases like VkPhysicalDeviceVariablePointersFeatures that have 3
+               self.allowduplicate     = allowduplicate
+               self.structextends      = structextends
+               self.returnedonly       = returnedonly
+               self.members            = members                       # list of CompositeMember objects
+
+class FunctionArgument:
+       def __init__ (self, name, qualifiers, aType, pointer = None, secondPointerIsConst = False, arraySize = None):
+               self.name                                       = name
+               self.qualifiers                         = qualifiers
+               self.type                                       = aType
+               self.pointer                            = pointer                       # None, '*' or '**'
+               self.secondPointerIsConst       = secondPointerIsConst
+               self.arraySize                          = arraySize
+
+               # check if type should be swaped
+               substituteType(self)
 
 class Function:
        TYPE_PLATFORM           = 0 # Not bound to anything
        TYPE_INSTANCE           = 1 # Bound to VkInstance
        TYPE_DEVICE                     = 2 # Bound to VkDevice
 
-       def __init__ (self, name, returnType, arguments, apiVersion = None):
-               self.name               = name
-               self.returnType = returnType
-               self.arguments  = arguments
-               self.alias              = None
-               self.isAlias    = False
-               self.apiVersion = apiVersion
+       def __init__ (self, name, returnType = None, arguments = None):
+               self.name                       = name
+               self.aliasList          = []
+               self.returnType         = returnType
+               self.arguments          = arguments                             # list of FunctionArgument objects
+               self.functionType       = Function.TYPE_PLATFORM
 
-       def getType (self):
-               # Special functions
+               # Determine function type based on first argument but use TYPE_PLATFORM for vkGetInstanceProcAddr
                if self.name == "vkGetInstanceProcAddr":
-                       return Function.TYPE_PLATFORM
+                       return
                assert len(self.arguments) > 0
-               firstArgType = self.arguments[0].getType()
+               firstArgType = self.arguments[0].type
                if firstArgType in ["VkInstance", "VkPhysicalDevice"]:
-                       return Function.TYPE_INSTANCE
+                       self.functionType = Function.TYPE_INSTANCE
                elif firstArgType in ["VkDevice", "VkCommandBuffer", "VkQueue"]:
-                       return Function.TYPE_DEVICE
-               else:
-                       return Function.TYPE_PLATFORM
+                       self.functionType = Function.TYPE_DEVICE
 
-       def checkAliasValidity (self):
-               if self.alias != None:
-                       if len(self.arguments) != len(self.alias.arguments):
-                               raise Exception("%s has different number of arguments than its alias %s." % (self.name, self.alias.name))
-                       if self.returnType != self.alias.returnType or not (self.returnType.startswith(self.alias.returnType) or self.alias.returnType.startswith(self.returnType)):
-                               raise Exception("%s has different return value's type than its alias %s." % (self.name, self.alias.name))
-                       for index, argument in enumerate(self.arguments):
-                               if argument != self.alias.arguments[index]:
-                                       raise Exception("argument %s: \"%s\" of %s is different than \"%s\" of %s." % (index, self.alias.arguments[index].getAsString(' '), self.alias.name, argument.getAsString(' '), self.name))
-
-       def __repr__ (self):
-               return '%s (%s)' % (self.name, self.alias)
+       def getType (self):
+               return self.functionType
+
+class FeatureRequirement:
+       def __init__ (self, comment, enumList, typeList, commandList):
+               self.comment                    = comment
+               self.enumList                   = enumList
+               self.typeList                   = typeList
+               self.commandList                = commandList                   # list of strings, each representing required function
+
+class Feature:
+       def __init__ (self, api, name, number, requirementsList):
+               self.api                                = api
+               self.name                               = name
+               self.number                             = number
+               self.requirementsList   = requirementsList              # list of FeatureRequirement objects
+
+class ExtensionEnumerator:
+       def __init__ (self, name, extends, alias, value, extnumber, offset):
+               self.name               = name
+               self.extends    = extends
+               self.alias              = alias
+               self.value              = value
+               self.extnumber  = extnumber
+               self.offset             = offset
+
+class ExtensionRequirements:
+       def __init__ (self, extensionName, extendedEnums, newCommands, newTypes):
+               self.extensionName      = extensionName                                 # None when requirements apply to all implementations of extension;
+                                                                                                                       # string with extension name when requirements apply to implementations that also support given extension
+               self.extendedEnums      = extendedEnums                                 # list of ExtensionEnumerator objects
+               self.newCommands        = newCommands                                   # list of new command names
+               self.newTypes           = newTypes                                              # list of new type names
 
 class Extension:
-       def __init__ (self, name, handles, enums, bitfields, compositeTypes, functions, definitions, additionalDefinitions, typedefs, versionInCore):
-               self.name                       = name
-               self.definitions        = definitions
-               self.additionalDefs = additionalDefinitions
-               self.handles            = handles
-               self.enums                      = enums
-               self.bitfields          = bitfields
-               self.compositeTypes     = compositeTypes
-               self.functions          = functions
-               self.typedefs           = typedefs
-               self.versionInCore      = versionInCore
-
-       def __repr__ (self):
-               return 'EXT:\n%s ->\nENUMS:\n%s\nCOMPOS:\n%s\nFUNCS:\n%s\nBITF:\n%s\nHAND:\n%s\nDEFS:\n%s\n' % (self.name, self.enums, self.compositeTypes, self.functions, self.bitfields, self.handles, self.definitions, self.versionInCore)
+       def __init__ (self, name, number, type, requiresCore, requiredExtensions, platform, promotedto, requirementsList):
+               self.name                               = name                                          # extension name
+               self.number                             = number                                        # extension version
+               self.type                               = type                                          # extension type - "device" or "instance"
+               self.requiresCore               = requiresCore                          # required core vulkan version e.g. "1.1"
+               self.requiredExtensions = requiredExtensions            # list of extensions names that also need to be available on implementation or None
+               self.platform                   = platform                                      # None, "win32", "ios", "android" etc.
+               self.promotedto                 = promotedto                            # vulkan version, other extension or None
+               self.requirementsList   = requirementsList                      # list of ExtensionRequirements objects
 
 class API:
-       def __init__ (self, versions, definitions, handles, enums, bitfields, bitfields64, compositeTypes, functions, extensions, additionalExtensionData):
-               self.versions                                   = versions
-               self.definitions                                = definitions
-               self.handles                                    = handles
-               self.enums                                              = enums
-               self.bitfields                                  = bitfields
-               self.bitfields64                                = bitfields64
-               self.compositeTypes                             = compositeTypes
-               self.functions                                  = functions                                     # \note contains extension functions as well
-               self.extensions                                 = extensions
-               self.additionalExtensionData    = additionalExtensionData       # \note contains mandatory features and information about promotion
+       def __init__ (self):
+               self.versions                   = []
+               self.basetypes                  = {}    # dictionary, e.g. one of keys is VkFlags and its value is uint32_t
+               self.defines                    = []
+               self.handles                    = []
+               self.bitmasks                   = []    # list of Bitmask objects
+               self.enums                              = []    # list of Enum objects - each contains individual enum definition (including extension enums)
+               self.compositeTypes             = []    # list of Composite objects - each contains individual structure/union definition (including extension structures)
+               self.functions                  = []    # list of Function objects - each contains individual command definition (including extension functions)
+               self.features                   = []    # list of Feature objects
+               self.extensions                 = []    # list of Extension objects - each contains individual extension definition
+               self.basicCTypes                = []    # list of basic C types e.g. 'void', 'int8_t'
+               self.tempAliasesList    = []    # list of touples used to handle aliases for enumerators that will be defined later
+
+               # read all files from extensions directory
+               additionalExtensionData = {}
+               for fileName in glob.glob(os.path.join(SCRIPTS_SRC_DIR, "extensions", "*.json")):
+                       if "schema.json" in fileName:
+                               continue
+                       extensionName   = os.path.basename(fileName)[:-5]
+                       fileContent             = readFile(fileName)
+                       try:
+                               additionalExtensionData[extensionName] = json.loads(fileContent)
+                       except ValueError as err:
+                               print("Error in %s: %s" % (os.path.basename(fileName), str(err)))
+                               sys.exit(-1)
+               self.additionalExtensionData = sorted(additionalExtensionData.items(), key=lambda e: e[0])
+
+       def addOrUpdateEnumerator (self, enumeratorNode, enumDefinition, extensionNumber = None):
+               name    = enumeratorNode.get("name")
+               alias   = enumeratorNode.get("alias")
+               # if enumerator node has alias atribute then update existing enumerator
+               if alias is not None:
+                       for e in reversed(enumDefinition.enumeratorList):
+                               if alias == e.name:
+                                       # make sure same alias is not already on the list; this handles special case like
+                                       # VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR alais which is defined in three places
+                                       if name not in e.aliasList:
+                                               e.aliasList.append(name)
+                                       return
+                       # there are cases where alias is specified for enumerator that wasn't yet defined,
+                       # we need to remember those aliases and assign them after we parse whole xml
+                       self.tempAliasesList.append((enumDefinition, name, alias))
+                       return
+               # calculate enumerator value if offset attribute is present
+               value = enumeratorNode.get("value")
+               if value is None:
+                       value = enumeratorNode.get("offset")
+                       if value is not None:
+                               # check if extensionNumber should be overridden
+                               extnumber = enumeratorNode.get("extnumber")
+                               if extnumber is not None:
+                                       extensionNumber = extnumber
+                               value = 1000000000 + (int(extensionNumber)-1) * 1000 + int(value)
+                               # check if value should be negative
+                               dir = enumeratorNode.get("dir")
+                               if dir == "-":
+                                       value *= -1
+                               # convert to string so that type matches the type in which values
+                               # are stored for enums that were read from enums xml section
+                               value = str(value)
+               # add new enumerator
+               enumDefinition.enumeratorList.append(Enumerator(
+                       name,
+                       value,
+                       enumeratorNode.get("bitpos")
+               ))
+
+       def readEnum (self, enumsNode):
+               enumName = enumsNode.get("name")
+               # special case for vulkan hardcoded constants that are specified as enum in vk.xml
+               if enumName == "API Constants":
+                       for enumItem in enumsNode:
+                               self.defines.append(Define(
+                                       enumItem.get("name"),
+                                       enumItem.get("type"),
+                                       enumItem.get("alias"),
+                                       enumItem.get("value")
+                               ))
+                       return
+               # initial enum definition is read while processing types section;
+               # we need to find this enum definition and add data to it
+               enumDefinition = [enumDef for enumDef in self.enums if enumName == enumDef.name][0]
+               # add type and bitwidth to enum definition
+               enumDefinition.type             = enumsNode.get("type")
+               enumDefinition.bitwidth = enumsNode.get("bitwidth")
+               if enumDefinition.bitwidth is None:
+                       enumDefinition.bitwidth = "32"
+               # add components to enum definition
+               for enumeratorItem in enumsNode:
+                       # skip comment tags
+                       if enumeratorItem.tag != "enum":
+                               continue
+                       self.addOrUpdateEnumerator(enumeratorItem, enumDefinition)
+
+       def readCommand (self, commandNode):
+               protoNode = None                                        # proto is a first child of every command node
+               # check if this is alias
+               alias = commandNode.get("alias")
+               # if node is alias then use the fact that alias definition follows aliased structure
+               if alias is not None:
+                       lastFunction = self.functions[-1]
+                       # make sure last structure that was added to list is beeing aliased now
+                       # if this assert fails use same workaround as for structures
+                       assert(alias == lastFunction.name)
+                       lastFunction.aliasList.append(commandNode.get("name"))
+                       # go to next node
+                       return
+               # memorize all parameters
+               functionParams = []
+               for paramNode in commandNode:
+                       # memorize prototype node
+                       if paramNode.tag == "proto":
+                               protoNode = paramNode
+                               continue
+                       # skip implicitexternsyncparams
+                       if paramNode.tag != "param":
+                               continue
+                       nameNode        = paramNode.find("name")
+                       typeNode        = paramNode.find("type")
+                       starCount       = typeNode.tail.count('*')
+                       functionParams.append(FunctionArgument(
+                               nameNode.text,
+                               paramNode.text,
+                               paramNode.find("type").text,
+                               '*' * starCount if starCount > 0 else None,
+                               'const' in typeNode.tail,
+                               nameNode.tail
+                       ))
+               # memorize whole function
+               self.functions.append(Function(
+                       protoNode.find("name").text,
+                       protoNode.find("type").text,
+                       functionParams,
+               ))
+
+       def readExtension (self, extensionNode):
+               # skip disabled extensions
+               if extensionNode.get("supported") == "disabled":
+                       return
+               extensionName   = extensionNode.get("name")
+               extensionNumber = extensionNode.get("number")
+               # before reading extension data first read extension
+               # requirements by iterating over all require tags
+               requirementsList = []
+               for requireItem in extensionNode:
+                       extendedEnums   = []
+                       newCommands             = []
+                       newTypes                = []
+                       # iterate over all chilren in current require tag
+                       # and add them to proper list
+                       for individualRequirement in requireItem:
+                               requirementName = individualRequirement.get("name")
+                               if individualRequirement.tag == "enum":
+                                       extendedEnumName = individualRequirement.get("extends")
+                                       extendedEnums.append(ExtensionEnumerator(
+                                               requirementName,
+                                               extendedEnumName,
+                                               individualRequirement.get("alias"),
+                                               individualRequirement.get("value"),
+                                               individualRequirement.get("extnumber"),
+                                               individualRequirement.get("offset")))
+                                       # add enumerator to proper enum from api.enums
+                                       if extendedEnumName is not None:
+                                               newEnumerator = individualRequirement.get("name")
+                                               # find extendedEnumName in self.enums
+                                               matchedEnum = [enum for enum in self.enums if enum.name == extendedEnumName][0]
+                                               # add enumerator only when it is not already in enum
+                                               if len([e for e in matchedEnum.enumeratorList if e.name == newEnumerator]) == 0:
+                                                       self.addOrUpdateEnumerator(individualRequirement, matchedEnum, extensionNumber)
+                               elif individualRequirement.tag == "command":
+                                       newCommands.append(requirementName)
+                               elif individualRequirement.tag == "type":
+                                       newTypes.append(requirementName)
+                               else:
+                                       assert("Unhandled tag")
+                       # construct requirement object and add it to the list
+                       requirementsList.append(ExtensionRequirements(
+                               requireItem.get("extension"),   # extensionName
+                               extendedEnums,                                  # extendedEnums
+                               newCommands,                                    # newCommands
+                               newTypes                                                # newTypes
+                       ))
+               # read extensions that need to be supported when current extension is suported;
+               # in xml this is single comma separated string, we split it to list of strings
+               requiredExtensions = extensionNode.get("requires")
+               if requiredExtensions is not None:
+                       requiredExtensions = requiredExtensions.split(',')
+               # add extension definition to api object
+               self.extensions.append(Extension(
+                       extensionName,                                          # name
+                       extensionNumber,                                        # number
+                       extensionNode.get("type"),                      # type
+                       extensionNode.get("requiresCore"),      # requiresCore
+                       requiredExtensions,                                     # requiredExtensions
+                       extensionNode.get("platform"),          # platform
+                       extensionNode.get("promotedto"),        # promotedto
+                       requirementsList                                        # requirementsList
+               ))
+
+       def readFeature (self, featureNode):
+               requirementsList = []
+               for requirementGroup in featureNode:
+                       enumList        = []
+                       typeList        = []
+                       commandList     = []
+                       for requirement in requirementGroup:
+                               requirementName = requirement.get("name")
+                               if requirement.tag == "enum":
+                                       enumList.append(requirementName)
+                                       extendedEnumName = requirement.get("extends")
+                                       if extendedEnumName is not None:
+                                               # find extended enum in api.enums list
+                                               for e in self.enums:
+                                                       if extendedEnumName == e.name:
+                                                               # read enumerator and add it to enum
+                                                               self.addOrUpdateEnumerator(requirement, e)
+                                                               break
+                               elif requirement.tag == "type":
+                                       typeList.append(requirementName)
+                               elif requirement.tag == "command":
+                                       commandList.append(requirementName)
+                       requirementsList.append(FeatureRequirement(
+                               requirementGroup.get("comment"),
+                               enumList,
+                               typeList,
+                               commandList
+                       ))
+               self.features.append(Feature(
+                       featureNode.get("api"),
+                       featureNode.get("name"),
+                       featureNode.get("number"),
+                       requirementsList
+               ))
+
+       def readType (self, typeNode):
+               name            = typeNode.get("name")
+               alias           = typeNode.get("alias")
+               category        = typeNode.get("category")
+               if category == "enum":
+                       if alias is None:
+                               self.enums.append(Enum(name))
+                       else:
+                               for e in reversed(self.enums):
+                                       if alias == e.name:
+                                               e.alias = name
+                                               break
+               elif category == "handle":
+                       type = None
+                       if alias is None:
+                               name = typeNode.find("name").text
+                               type = typeNode.find("type").text
+                               self.handles.append(Handle(
+                                       name,
+                                       type,
+                                       alias,
+                                       typeNode.get("parent"),
+                                       typeNode.get("objtypeenum"),
+                               ))
+                       else:
+                               for h in reversed(self.handles):
+                                       if alias == h.name:
+                                               h.alias = name
+                                               break
+               elif category == "basetype":
+                       # processing only those basetypes that have type child
+                       type = typeNode.find("type")
+                       if type is not None:
+                               self.basetypes[typeNode.find("name").text] = type.text
+               elif category == "bitmask":
+                       # if node is alias then use the fact that alias definition follows aliased bitmasks;
+                       # in majoriti of cases it follows directly aliased bitmasks but in some cases there
+                       # is a unrelated bitmasks definition in between - to handle this traverse in reverse order
+                       if alias is not None:
+                               for bm in reversed(self.bitmasks):
+                                       if alias == bm.name:
+                                               bm.alias = name
+                                               break
+                       else:
+                               self.bitmasks.append(Bitmask(
+                                       typeNode.find("name").text,
+                                       typeNode.find("type").text,
+                                       typeNode.get("requires"),
+                                       typeNode.get("bitvalues")
+                               ))
+               elif category in ["struct", "union"]:
+                       # if node is alias then use the fact that alias definition follows aliased structure;
+                       # in majoriti of cases it follows directly aliased structure but in some cases there
+                       # is a unrelated structure definition in between - to handle this traverse in reverse order
+                       if alias is not None:
+                               for ct in reversed(self.compositeTypes):
+                                       if alias == ct.name:
+                                               ct.aliasList.append(name)
+                                               break
+                               # go to next node
+                               return
+                       # read structure members
+                       structMembers = []
+                       for memberNode in typeNode:
+                               if memberNode.tag != "member":
+                                       continue
+                               # handle enum nodes that can be used for arrays
+                               arraySizeList = []
+                               for node in memberNode:
+                                       if node.tag == "enum":
+                                               arraySizeList.append(node.text)
+                               # handle additional text after name tag; it can represent array
+                               # size like in VkPipelineFragmentShadingRateEnumStateCreateInfoNV
+                               # or number of bits like in VkAccelerationStructureInstanceKHR
+                               nameNode        = memberNode.find("name")
+                               nameTail        = nameNode.tail
+                               fieldWidth      = None
+                               if nameTail:
+                                       if ':' in nameTail:
+                                               fieldWidth = nameTail.replace(':', '').replace(' ', '')
+                                       elif '[' in nameTail and ']' in nameTail:
+                                               nameTail = nameTail.replace(']', ' ').replace('[', ' ')
+                                               arraySizeList = nameTail.split()
+                               # handle additional text after type tag; it can represent pointers like *pNext
+                               memberTypeNode  = memberNode.find("type")
+                               pointer                 = memberTypeNode.tail.strip() if memberTypeNode.tail is not None else None
+                               structMembers.append(CompositeMember(
+                                       nameNode.text,                                  # name
+                                       memberTypeNode.text,                    # type
+                                       pointer,                                                # pointer
+                                       memberNode.text,                                # qualifiers
+                                       arraySizeList,                                  # arraySizeList
+                                       memberNode.get("optional"),             # optional
+                                       memberNode.get("limittype"),    # limittype
+                                       memberNode.get("values"),               # values
+                                       fieldWidth                                              # fieldWidth
+                               ))
+                       # create structure definition
+                       self.compositeTypes.append(Composite(
+                               name,
+                               category,
+                               typeNode.get("allowduplicate"),
+                               typeNode.get("structextends"),
+                               typeNode.get("returnedonly"),
+                               structMembers
+                       ))
+               elif category == "define":
+                       if typeNode.get("requires") == "VK_MAKE_API_VERSION":
+                               value = typeNode.find("type").tail
+                               value = 'VK_MAKE_API_VERSION' + value[:value.find(')')+1]
+                               self.defines.append(Define(
+                                       typeNode.find("name").text,
+                                       "uint32_t",
+                                       None,
+                                       value
+                               ))
+               else:
+                       requires = typeNode.get("requires")
+                       if requires == 'vk_platform':
+                               self.basicCTypes.append(name)
+
+       def build (self, rawVkXml):
+               # iterate over all *.xml root children
+               for rootChild in rawVkXml.getroot():
+
+                       # each enum is defined in separate enums node directly under root node
+                       if rootChild.tag == "enums":
+                               self.readEnum(rootChild)
+
+                       # read function definitions
+                       if rootChild.tag == "commands":
+                               commandsNode = rootChild
+                               for commandItem in commandsNode:
+                                       self.readCommand(commandItem)
+
+                       # read vulkan versions
+                       if rootChild.tag == "feature":
+                               self.readFeature(rootChild)
+
+                       # read extensions
+                       if rootChild.tag == "extensions":
+                               extensionsNode = rootChild
+                               for extensionItem in extensionsNode:
+                                       self.readExtension(extensionItem)
+
+                       # "types" is a first child of root so it's optimal to check for it
+                       # last and don't repeat this check for all other iterations
+                       if rootChild.tag == "types":
+                               typesNode = rootChild
+                               for typeItem in typesNode:
+                                       self.readType(typeItem)
+
+       def postProcess (self):
+               def removeExtensionFromApi(extName, structureNameList, commandNameList):
+                       extObjectList = [e for e in api.extensions if e.name == extName]
+                       if len(extObjectList) > 0:
+                               api.extensions.remove(extObjectList[0])
+                       structObjectList = [ct for ct in api.compositeTypes if ct.name in structureNameList]
+                       for s in structObjectList:
+                               api.compositeTypes.remove(s)
+                       commandObjectList = [f for f in api.functions if f.name in commandNameList]
+                       for f in commandObjectList:
+                               api.functions.remove(f)
+
+               # remove structures and commands added by VK_EXT_directfb_surface extension
+               removeExtensionFromApi("VK_EXT_directfb_surface",
+                                                          ["VkDirectFBSurfaceCreateFlagsEXT", "VkDirectFBSurfaceCreateInfoEXT"],
+                                                          ["vkCreateDirectFBSurfaceEXT", "vkGetPhysicalDeviceDirectFBPresentationSupportEXT"])
+
+               # remove structures and commands added by disabled VK_ANDROID_native_buffer extension;
+               # disabled extensions aren't read but their structures and commands will be in types and commands sections in vk.xml
+               removeExtensionFromApi("VK_ANDROID_native_buffer",
+                                                          ["VkNativeBufferANDROID", "VkSwapchainImageCreateInfoANDROID",
+                                                               "VkPhysicalDevicePresentationPropertiesANDROID", "VkNativeBufferUsage2ANDROID",
+                                                               "VkSwapchainImageUsageFlagBitsANDROID", "VkSwapchainImageUsageFlagsANDROID"],
+                                                          ["vkGetSwapchainGrallocUsageANDROID", "vkAcquireImageANDROID",
+                                                               "vkQueueSignalReleaseImageANDROID", "vkGetSwapchainGrallocUsage2ANDROID"])
+
+               # remove empty enums e.g. VkQueryPoolCreateFlagBits, VkDeviceCreateFlagBits
+               enumsToRemove = [enum for enum in self.enums if len(enum.enumeratorList) == 0]
+               for er in enumsToRemove:
+                       self.enums.remove(er)
+
+               # add aliases to enumerators that were defined after alias (there are ~10 cases like that in vk.xml)
+               for tmpAliasTouple in self.tempAliasesList:
+                       (enum, name, alias) = tmpAliasTouple
+                       for e in enum.enumeratorList:
+                               if e.name == alias:
+                                       e.aliasList.append(name)
+                                       break
+               self.tempAliasesList = None
+
+               # add alias for VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR (in vk.xml for this struct alias is defined before struct
+               # where in all other cases it is defined after structure definition)
+               barycentricFeaturesStruct = [c for c in api.compositeTypes if c.name == 'VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR'][0]
+               barycentricFeaturesStruct.aliasList.append('VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV')
+
+               # sort enumerators in enums
+               sortLambda      = lambda enumerator: int(enumerator.bitpos) if enumerator.value is None else int(enumerator.value, 16 if 'x' in enumerator.value else 10)
+               for enum in self.enums:
+                       # skip enums that have no items in enumeratorList (e.g. VkQueryPoolCreateFlagBits) or just one item
+                       if len(enum.enumeratorList) < 2:
+                               continue
+                       # construct list of enumerators in which value and bitpos are not None
+                       enumeratorsToSort               = [e for e in enum.enumeratorList if e.value != e.bitpos]
+                       # construct list of enumerators in which value and bitpos are equal to None
+                       remainingEnumerators    = [e for e in enum.enumeratorList if e.value == e.bitpos]
+                       # construct sorted enumerator list with aliases at the end
+                       enum.enumeratorList = sorted(enumeratorsToSort, key=sortLambda)
+                       enum.enumeratorList.extend(remainingEnumerators)
+
+def prefixName (prefix, name):
+       name = re.sub(r'([a-z0-9])([A-Z])', r'\1_\2', name[2:])
+       name = re.sub(r'([a-zA-Z])([0-9])', r'\1_\2', name)
+       name = name.upper()
+       return prefix + name
+
+def parseInt (value):
+       return int(value, 16 if (value[:2] == "0x") else 10)
+
+def getApiVariantIndexByName(variantName):
+       apiVariant = {
+               None : 0,
+               ''   : 0,
+               'SC' : 1
+       }
+       return apiVariant[variantName]
+
+def getApiVariantNameByIndex(variantIndex):
+       apiVariant = {
+               None : '',
+               0    : '',
+               1    : 'SC'
+       }
+       return apiVariant[variantIndex]
 
 def readFile (filename):
        with open(filename, 'rt') as f:
                return f.read()
 
-IDENT_PTRN     = r'[a-zA-Z_][a-zA-Z0-9_]*'
-WIDTH_PTRN     = r'[:0-9]*'
-TYPE_PTRN      = r'[a-zA-Z_][a-zA-Z0-9_ \t*&]*'
-
-def getInterfaceName (function):
-       assert function.name[:2] == "vk"
-       return function.name[2].lower() + function.name[3:]
+def getInterfaceName (functionName):
+       assert functionName[:2] == "vk"
+       return functionName[2].lower() + functionName[3:]
 
-def getFunctionTypeName (function):
-       assert function.name[:2] == "vk"
-       return function.name[2:] + "Func"
+def getFunctionTypeName (functionName):
+       assert functionName[:2] == "vk"
+       return functionName[2:] + "Func"
 
 def endsWith (str, postfix):
        return str[-len(postfix):] == postfix
 
-def splitNameExtPostfix (name):
-       knownExtPostfixes = EXTENSION_POSTFIXES
-       for postfix in knownExtPostfixes:
-               if endsWith(name, postfix):
-                       return (name[:-len(postfix)], postfix)
-       return (name, "")
-
-def getBitEnumNameForBitfield (bitfieldName):
-       bitfieldName, postfix = splitNameExtPostfix(bitfieldName)
-       assert bitfieldName[-1] == "s"
-       return bitfieldName[:-1] + "Bits" + postfix
-
-def getBitfieldNameForBitEnum (bitEnumName):
-       bitEnumName, postfix = splitNameExtPostfix(bitEnumName)
-       assert bitEnumName[-4:] == "Bits"
-       return bitEnumName[:-4] + "s" + postfix
-
-def parsePreprocDefinedValue (src, name):
-       value = parsePreprocDefinedValueOptional(src, name)
-       if value is None:
-               raise Exception("No such definition: %s" % name)
-       return value
-
-def parsePreprocDefinedValueOptional (src, name):
-       definition = re.search(r'#\s*define\s+' + name + r'\s+([^\n]+)\n', src)
-       if definition is None:
-               return None
-       value = definition.group(1).strip()
-       if value == "UINT32_MAX":
-               value = "(~0u)"
-       return value
-
-def parseEnum (name, src):
-       keyValuePtrn = '(' + IDENT_PTRN + r')\s*=\s*([^\s,\n}]+)\s*[,\n}]'
-       return Enum(name, re.findall(keyValuePtrn, src))
-
-# \note Parses raw enums, some are mapped to bitfields later
-def parseEnums (src):
-       matches = re.findall(r'typedef enum(\s*' + IDENT_PTRN + r')?\s*{([^}]*)}\s*(' + IDENT_PTRN + r')\s*;', src)
-       enums   = []
-       for enumname, contents, typename in matches:
-               enums.append(parseEnum(typename, contents))
-       return enums
-
-def parseCompositeType (type, name, src):
-       typeNamePtrn    = r'(' + TYPE_PTRN + r')(\s+' + IDENT_PTRN + r')((\[[^\]]+\]|\s*:\s*[0-9]+)*)\s*;'
-       matches                 = re.findall(typeNamePtrn, src)
-       members                 = [Variable(t.strip(), n.strip(), a.replace(' ', '')) for t, n, a, _ in matches]
-       return CompositeType(type, name, members)
-
-def parseCompositeTypes (src):
-       typeMap = { 'struct': CompositeType.CLASS_STRUCT, 'union': CompositeType.CLASS_UNION }
-       matches = re.findall(r'typedef (struct|union)(\s*' + IDENT_PTRN + r')?\s*{([^}]*)}\s*(' + IDENT_PTRN + r')\s*;', src)
-       types   = []
-       for type, structname, contents, typename in matches:
-               types.append(parseCompositeType(typeMap[type], typename, contents))
-       return types
-
-def parseCompositeTypesByVersion (src, versionsData):
-
-       # find occurence of extension is a place where
-       # we cant assign apiVersion to found structures
-       extPtrn         = r'#define\s+[A-Z0-9_]+_EXTENSION_NAME\s+"([^"]+)"'
-       versionEnd      = re.search(extPtrn, src)
-       versions        = [Version((v[2], v[3], v[4], 0)) for v in versionsData]
-       versions.append(None)
-
-       # construct list of locations where version definitions start, and add the end of the file to it
-       sectionLocations = [versionDef[1] for versionDef in versionsData]
-       sectionLocations.append(versionEnd.start())
-       sectionLocations.append(len(src))
-
-       # construct function declaration pattern
-       ptrn            = r'typedef (struct|union)(\s*' + IDENT_PTRN + r')?\s*{([^}]*)}\s*(' + IDENT_PTRN + r')\s*;'
-       regPtrn         = re.compile(ptrn)
-       types           = []
-       typeMap         = { 'struct': CompositeType.CLASS_STRUCT, 'union': CompositeType.CLASS_UNION }
-
-       # iterate over all versions and find all structure definitions
-       for index, v in enumerate(versions):
-               matches = regPtrn.findall(src, sectionLocations[index], sectionLocations[index+1])
-               for type, structname, contents, typename in matches:
-                       compositeType = parseCompositeType(typeMap[type], typename, contents)
-                       compositeType.apiVersion = v
-                       types.append(compositeType)
-       return types
-
-def parseVersions (src):
-       # returns list of tuples each with four items:
-       # 1. string with version token (without ' 1' at the end)
-       # 2. starting point off version specific definitions in vulkan.h.in
-       # 3. major version number
-       # 4. minor version number
-       return [(m.group()[:-2], m.start(), getApiVariantIndexByName(m.group(1)), int(m.group(2)), int(m.group(3))) for m in re.finditer('VK(SC)?_VERSION_([1-9])_([0-9]) 1', src)]
-
-
-def parseHandles (src):
-       matches = re.findall(r'VK_DEFINE(_NON_DISPATCHABLE|)_HANDLE\((' + IDENT_PTRN + r')\)[ \t]*[\n\r]', src)
-       handles = []
-       typeMap = {'': Handle.TYPE_DISP, '_NON_DISPATCHABLE': Handle.TYPE_NONDISP}
-       for type, name in matches:
-               handle = Handle(typeMap[type], name)
-               handles.append(handle)
-       return handles
-
-def parseArgList (src):
-       typeNamePtrn    = r'(' + TYPE_PTRN + r')(\s+' + IDENT_PTRN + r')((\[[^\]]+\])*)\s*'
-       args                    = []
-       for rawArg in src.split(','):
-               m = re.search(typeNamePtrn, rawArg)
-               args.append(Variable(m.group(1).strip(), m.group(2).strip(), m.group(3)))
-       return args
-
-def removeTypeExtPostfix (name):
-       for extPostfix in EXTENSION_POSTFIXES_STANDARD:
-               if endsWith(name, extPostfix):
-                       return name[0:-len(extPostfix)]
-       return None
-
-def populateExtensionAliases(allObjects, extensionObjects):
-       for object in extensionObjects:
-               withoutPostfix = removeTypeExtPostfix(object.name)
-               if withoutPostfix != None and withoutPostfix in allObjects:
-                       # max 1 alias is assumed by functions in this file
-                       assert allObjects[withoutPostfix].alias == None
-                       allObjects[withoutPostfix].alias = object
-                       object.isAlias = True
-       for object in extensionObjects:
-               object.checkAliasValidity()
-
-def populateAliasesWithTypedefs (objects, src):
-       objectsByName = {}
-       for object in objects:
-               objectsByName[object.name] = object
-               ptrn    = r'\s*typedef\s+' + object.name + r'\s+([^;]+)'
-               stash = re.findall(ptrn, src)
-               if len(stash) == 1:
-                       objExt = copy.deepcopy(object)
-                       objExt.name = stash[0]
-                       object.alias = objExt
-                       objExt.isAlias = True
-                       objects.append(objExt)
-
-def removeAliasedValues (enum):
-       valueByName = {}
-       for name, value in enum.values:
-               valueByName[name] = value
-
-       def removeDefExtPostfix (name):
-               for extPostfix in EXTENSION_POSTFIXES:
-                       if endsWith(name, "_" + extPostfix):
-                               return name[0:-(len(extPostfix)+1)]
-               return None
-
-       newValues = []
-       for name, value in enum.values:
-               withoutPostfix = removeDefExtPostfix(name)
-               if withoutPostfix != None and withoutPostfix in valueByName and valueByName[withoutPostfix] == value:
-                       continue
-               newValues.append((name, value))
-       enum.values = newValues
-
-def parseFunctions (src):
-       ptrn            = r'VKAPI_ATTR\s+(' + TYPE_PTRN + ')\s+VKAPI_CALL\s+(' + IDENT_PTRN + r')\s*\(([^)]*)\)\s*;'
-       matches         = re.findall(ptrn, src)
-       functions       = []
-       for returnType, name, argList in matches:
-               functions.append(Function(name.strip(), returnType.strip(), parseArgList(argList)))
-       return functions
-
-def parseFunctionsByVersion (src, versions):
-       # construct list of locations where version definitions start, and add the end of the file to it
-       sectionLocations = [versionDef[1] for versionDef in versions]
-       sectionLocations.append(len(src))
-
-       # construct function declaration pattern
-       ptrn            = r'VKAPI_ATTR\s+(' + TYPE_PTRN + ')\s+VKAPI_CALL\s+(' + IDENT_PTRN + r')\s*\(([^)]*)\)\s*;'
-       regPtrn         = re.compile(ptrn)
-       functions       = []
-
-       # iterate over all versions and find all function definitions
-       for index, v in enumerate(versions):
-               matches = regPtrn.findall(src, sectionLocations[index], sectionLocations[index+1])
-               for returnType, name, argList in matches:
-                       functions.append(Function(name.strip(), returnType.strip(), parseArgList(argList), v[0]))
-       return functions
-
-def splitByExtension (src):
-       ptrn            = r'#define\s+[A-Z0-9_]+_EXTENSION_NAME\s+"([^"]+)"'
-       # Construct long pattern that will be used to split whole source by extensions
-       match           = "#define\s+("
-       for part in re.finditer(ptrn, src):
-                match += part.group(1)+"|"
-       match = match[:-1] + ")\s+1"
-       parts = re.split(match, src)
-
-       # First part is core, following tuples contain extension name and all its definitions
-       byExtension     = [(None, parts[0])]
-       for ndx in range(1, len(parts), 2):
-               byExtension.append((parts[ndx], parts[ndx+1]))
-       return byExtension
-
-def parseDefinitions (extensionName, src):
-
-       def skipDefinition (extensionName, definition):
-               if extensionName == None:
-                       return True
-               extNameUpper = extensionName.upper()
-               extNameUpper = extNameUpper.replace("VK_KHR_SYNCHRONIZATION2", "VK_KHR_SYNCHRONIZATION_2")
-               extNameUpper = extNameUpper.replace("VK_INTEL_SHADER_INTEGER_FUNCTIONS2", "VK_INTEL_SHADER_INTEGER_FUNCTIONS_2")
-               extNameUpper = extNameUpper.replace("VK_EXT_ROBUSTNESS2", "VK_EXT_ROBUSTNESS_2")
-               extNameUpper = extNameUpper.replace("VK_EXT_FRAGMENT_DENSITY_MAP2", "VK_EXT_FRAGMENT_DENSITY_MAP_2")
-               extNameUpper = extNameUpper.replace("VK_EXT_SHADER_ATOMIC_FLOAT2", "VK_EXT_SHADER_ATOMIC_FLOAT_2")
-               extNameUpper = extNameUpper.replace("VK_AMD_SHADER_CORE_PROPERTIES2", "VK_AMD_SHADER_CORE_PROPERTIES_2")
-               extNameUpper = extNameUpper.replace("VK_EXT_EXTENDED_DYNAMIC_STATE2", "VK_EXT_EXTENDED_DYNAMIC_STATE_2")
-               # SPEC_VERSION enums
-               if definition[0].startswith(extNameUpper) and definition[1].isdigit():
-                       return False
-               if definition[0].startswith(extNameUpper):
-                       return True
-               if definition[0].endswith("_H_"):
-                       return True
-               return False
-
-       ptrn            = r'#define\s+([^\s]+)\s+([^\r\n]+)'
-       matches         = re.findall(ptrn, src)
-
-       return [Definition(None, match[0], match[1]) for match in matches if not skipDefinition(extensionName, match)]
-
-def parseTypedefs (src):
-
-       ptrn            = r'typedef\s+([^\s]+)\s+([^\r\n]+);'
-       matches         = re.findall(ptrn, src)
-
-       return [Definition(None, match[0], match[1]) for match in matches]
-
-def parseExtensions (src, versions, allFunctions, allCompositeTypes, allEnums, allBitfields, allHandles, allDefinitions, additionalExtensionData):
-
-       # note registeredExtensionDict is also executed for vulkan 1.0 source for which extension name is None
-       registeredExtensionDict = {None: None}
-       for extensionName, data in additionalExtensionData:
-               # make sure that this extension was registered
-               if 'register_extension' not in data.keys():
-                       continue
-               # save array containing 'device' or 'instance' string followed by the optional vulkan version in which this extension is core;
-               # note that register_extension section is also required for partialy promoted extensions like VK_EXT_extended_dynamic_state2
-               # but those extensions should not fill 'core' tag
-               registeredExtensionDict[extensionName] = [ data['register_extension']['type'] ]
-               match = re.match("(\d).(\d).(\d).(\d)", data['register_extension']['core'])
-               if match != None:
-                       registeredExtensionDict[extensionName].extend( [ int(match.group(1)), int(match.group(2)), int(match.group(3)), int(match.group(4)) ] )
-
-       splitSrc                                = splitByExtension(src)
-       extensions                              = []
-       functionsByName                 = {function.name: function for function in allFunctions}
-       compositeTypesByName    = {compType.name: compType for compType in allCompositeTypes}
-       enumsByName                             = {enum.name: enum for enum in allEnums}
-       bitfieldsByName                 = {bitfield.name: bitfield for bitfield in allBitfields}
-       handlesByName                   = {handle.name: handle for handle in allHandles}
-       definitionsByName               = {definition.name: definition for definition in allDefinitions}
-
-       for extensionName, extensionSrc in splitSrc:
-               definitions                     = [Definition("uint32_t", v.getInHex(), parsePreprocDefinedValueOptional(extensionSrc, v.getInHex())) for v in versions]
-               definitions.extend([Definition(type, name, parsePreprocDefinedValueOptional(extensionSrc, name)) for name, type in DEFINITIONS])
-               definitions                     = [definition for definition in definitions if definition.value != None]
-               additionalDefinitions = parseDefinitions(extensionName, extensionSrc)
-               handles                         = parseHandles(extensionSrc)
-               functions                       = parseFunctions(extensionSrc)
-               compositeTypes          = parseCompositeTypes(extensionSrc)
-               rawEnums                        = parseEnums(extensionSrc)
-               bitfieldNames           = parse32bitBitfieldNames(extensionSrc)
-               typedefs                        = parseTypedefs(extensionSrc)
-               enumBitfieldNames       = [getBitEnumNameForBitfield(name) for name in bitfieldNames]
-               enums                           = [enum for enum in rawEnums if enum.name not in enumBitfieldNames]
-
-               extCoreVersion          = None
-               extData                         = registeredExtensionDict.get(extensionName, None)
-               extFunctions            = [functionsByName[function.name] for function in functions]
-               extCompositeTypes       = [compositeTypesByName[compositeType.name] for compositeType in compositeTypes]
-               extEnums                        = [enumsByName[enum.name] for enum in enums]
-               extBitfields            = [bitfieldsByName[bitfieldName] for bitfieldName in bitfieldNames]
-               extHandles                      = [handlesByName[handle.name] for handle in handles]
-               extDefinitions          = [definitionsByName[definition.name] for definition in definitions]
-
-               if extData != None:
-                       populateExtensionAliases(functionsByName, extFunctions)
-                       populateExtensionAliases(handlesByName, extHandles)
-                       populateExtensionAliases(enumsByName, extEnums)
-                       populateExtensionAliases(bitfieldsByName, extBitfields)
-                       populateExtensionAliases(compositeTypesByName, extCompositeTypes)
-                       if len(extData) > 1:
-                               extCoreVersion = extData
-
-               extensions.append(Extension(extensionName, extHandles, extEnums, extBitfields, extCompositeTypes, extFunctions, extDefinitions, additionalDefinitions, typedefs, extCoreVersion))
-       return extensions
-
-def parse32bitBitfieldNames (src):
-       ptrn            = r'typedef\s+VkFlags\s(' + IDENT_PTRN + r')\s*;'
-       matches         = re.findall(ptrn, src)
-
-       return matches
-
-def parse64bitBitfieldNames (src):
-       ptrn            = r'typedef\s+VkFlags64\s(' + IDENT_PTRN + r')\s*;'
-       matches         = re.findall(ptrn, src)
-
-       return matches
-
-def parse64bitBitfieldValues (src, bitfieldNamesList):
-
-       bitfields64 = []
-       for bitfieldName in bitfieldNamesList:
-               ptrn            = r'static const ' + bitfieldName + r'\s*(' + IDENT_PTRN + r')\s*=\s*([a-zA-Z0-9_]+)\s*;'
-               matches         = re.findall(ptrn, src)
-               bitfields64.append(Bitfield(bitfieldName, matches))
-
-       return bitfields64
-
-def parseAPI (src):
-       versionsData    = parseVersions(src)
-       versions                = [Version((v[2], v[3], v[4], 0)) for v in versionsData]
-       definitions             = [Definition("uint32_t", v.getInHex(), parsePreprocDefinedValue(src, v.getInHex())) for v in versions] +\
-                                         [Definition(type, name, parsePreprocDefinedValue(src, name)) for name, type in DEFINITIONS]
-
-       handles                                         = parseHandles(src)
-       rawEnums                                        = parseEnums(src)
-       bitfieldNames                           = parse32bitBitfieldNames(src)
-       bitfieldEnums                           = set([getBitEnumNameForBitfield(n) for n in bitfieldNames if getBitEnumNameForBitfield(n) in [enum.name for enum in rawEnums]])
-       bitfield64Names                         = parse64bitBitfieldNames(src)
-       bitfields64                                     = parse64bitBitfieldValues(src, bitfield64Names)
-       enums                                           = []
-       bitfields                                       = []
-       compositeTypes                          = parseCompositeTypesByVersion(src, versionsData)
-       allFunctions                            = parseFunctionsByVersion(src, versionsData)
-       additionalExtensionData         = {}
-
-       # read all files from extensions directory
-       for fileName in glob.glob(os.path.join(SCRIPTS_SRC_DIR, "extensions", "*.json")):
-               extensionName   = os.path.basename(fileName)[:-5]
-               fileContent             = readFile(fileName)
-               try:
-                       additionalExtensionData[extensionName] = json.loads(fileContent)
-               except ValueError as err:
-                       print("Error in %s: %s" % (os.path.basename(fileName), str(err)))
-                       sys.exit(-1)
-       additionalExtensionData = sorted(additionalExtensionData.items(), key=lambda e: e[0])
-
-       for enum in rawEnums:
-               if enum.name in bitfieldEnums:
-                       bitfields.append(Bitfield(getBitfieldNameForBitEnum(enum.name), enum.values))
-               else:
-                       enums.append(enum)
-
-       for bitfieldName in bitfieldNames:
-               if not bitfieldName in [bitfield.name for bitfield in bitfields]:
-                       # Add empty bitfield
-                       bitfields.append(Bitfield(bitfieldName, []))
-
-       extensions = parseExtensions(src, versions, allFunctions, compositeTypes, enums, bitfields, handles, definitions, additionalExtensionData)
-
-       # Populate alias fields
-       populateAliasesWithTypedefs(compositeTypes, src)
-       populateAliasesWithTypedefs(enums, src)
-       populateAliasesWithTypedefs(bitfields, src)
-       populateAliasesWithTypedefs(bitfields64, src)
-       populateAliasesWithTypedefs(handles, src)
-
-       for enum in enums:
-               removeAliasedValues(enum)
-
-       # Make generator to create Deleter<VkAccelerationStructureNV>
-       for f in allFunctions:
-               if (f.name == 'vkDestroyAccelerationStructureNV'):
-                       f.arguments[1].type[0] = 'VkAccelerationStructureNV'
-
-       # Dealias handles VkAccelerationStructureNV and VkAccelerationStructureKHR
-       for handle in handles:
-               if handle.name == 'VkAccelerationStructureKHR':
-                       handle.alias = None
-               if handle.name == 'VkAccelerationStructureNV':
-                       handle.isAlias = False
-
-       return API(
-               versions                                = versions,
-               definitions                             = definitions,
-               handles                                 = handles,
-               enums                                   = enums,
-               bitfields                               = bitfields,
-               bitfields64                             = bitfields64,
-               compositeTypes                  = compositeTypes,
-               functions                               = allFunctions,
-               extensions                              = extensions,
-               additionalExtensionData = additionalExtensionData)
-
-def splitUniqueAndDuplicatedEntries (handles):
-       listOfUniqueHandles = []
-       duplicates                      = OrderedDict()
-       for handle in handles:
-               if handle.alias != None:
-                       duplicates[handle.alias] = handle
-               if not handle.isAlias:
-                       listOfUniqueHandles.append(handle)
-       return listOfUniqueHandles, duplicates
-
 def writeHandleType (api, filename):
-       uniqeHandles, duplicatedHandles = splitUniqueAndDuplicatedEntries(api.handles)
+
+       def getHandleName (name):
+               return prefixName("HANDLE_TYPE_", name)
 
        def genHandles ():
-               yield "\t%s\t= 0," % uniqeHandles[0].getHandleType()
-               for handle in uniqeHandles[1:]:
-                       yield "\t%s," % handle.getHandleType()
-               for duplicate in duplicatedHandles:
-                       yield "\t%s\t= %s," % (duplicate.getHandleType(), duplicatedHandles[duplicate].getHandleType())
-               yield "\tHANDLE_TYPE_LAST\t= %s + 1" % (uniqeHandles[-1].getHandleType())
+               yield "\t%s\t= 0," % getHandleName(api.handles[0].name)
+               for h in api.handles[1:]:
+                       yield "\t%s," % getHandleName(h.name)
+               for h in api.handles:
+                       if h.alias is not None:
+                               yield "\t%s\t= %s," % (getHandleName(h.alias), getHandleName(h.name))
+               yield "\tHANDLE_TYPE_LAST\t= %s + 1" % (getHandleName(api.handles[-1].name))
 
        def genHandlesBlock ():
                yield "enum HandleType"
@@ -892,62 +813,35 @@ def writeHandleType (api, filename):
 
        writeInlFile(filename, INL_HEADER, genHandlesBlock())
 
-def getEnumValuePrefix (enum):
+def getEnumValuePrefixAndPostfix (enum):
        prefix = enum.name[0]
        for i in range(1, len(enum.name)):
                if enum.name[i].isupper() and not enum.name[i-1].isupper():
                        prefix += "_"
                prefix += enum.name[i].upper()
-       return prefix
-
-def parseInt (value):
-       if value[:2] == "0x":
-               return int(value, 16)
-       else:
-               return int(value, 10)
-
-def areEnumValuesLinear (enum):
-       curIndex = 0
-       maxIntCount = 0
-       for name, value in enum.values:
-               if value[:2] != "VK":
-                       intValue = parseInt(value)
-                       if intValue != curIndex:
-                               # enum is linear when all items are in order
-                               if intValue != 0x7FFFFFFF:
-                                       return False
-                               # count number of items with 0x7FFFFFFF value;
-                               # enum containing single 0x7FFFFFFF item are also
-                               # considered as linear (this is usualy *_MAX_ENUM item)
-                               maxIntCount += 1
-                               # enums containing more then one 0x7FFFFFFF value
-                               # are not considered as linear (vulkan video enums)
-                               if maxIntCount > 1:
-                                       return False
-                       curIndex += 1
-       return True
+       for p in EXTENSION_POSTFIXES:
+               if prefix.endswith(p):
+                       return prefix[:-len(p)-1], '_'+p
+       return prefix, ''
 
 def genEnumSrc (enum):
        yield "enum %s" % enum.name
        yield "{"
-
        lines = []
-       if areEnumValuesLinear(enum):
-               hasMaxItem      = parseInt(enum.values[-1][1]) == 0x7FFFFFFF
-
-               values          = enum.values[:-1] if hasMaxItem else enum.values
-               lastItem        = "\t%s_LAST," % getEnumValuePrefix(enum)
+       for ed in enum.enumeratorList:
+               if ed.value is not None:
+                       lines.append(f"\t{ed.name}\t= {ed.value},")
+       for ed in enum.enumeratorList:
+               for alias in ed.aliasList:
+                       lines.append(f"\t{alias}\t= {ed.name},")
 
-               # linear values first, followed by *_LAST
-               lines           += ["\t%s\t= %s," % v for v in values if v[1][:2] != "VK"]
-               lines.append(lastItem)
+       # add *_LAST item when enum is linear
+       prefix, postfix = getEnumValuePrefixAndPostfix(enum)
+       if enum.areValuesLinear():
+               lines.append(f"\t{prefix}{postfix}_LAST,")
 
-               # equivalence enums and *_MAX_ENUM
-               lines           += ["\t%s\t= %s," % v for v in values if v[1][:2] == "VK"]
-               if hasMaxItem:
-                       lines.append("\t%s\t= %s," % enum.values[-1])
-       else:
-               lines           += ["\t%s\t= %s," % v for v in enum.values]
+       # add _MAX_ENUM item with the ext postifix at the end
+       lines.append(f"\t{prefix}_MAX_ENUM{postfix}\t= 0x7FFFFFFF")
 
        for line in indentLines(lines):
                yield line
@@ -955,170 +849,243 @@ def genEnumSrc (enum):
        yield "};"
 
 def genBitfieldSrc (bitfield):
-       if len(bitfield.values) > 0:
-               yield "enum %s" % getBitEnumNameForBitfield(bitfield.name)
-               yield "{"
-               for line in indentLines(["\t%s\t= %s," % v for v in bitfield.values]):
-                       yield line
-               yield "};"
-       yield "typedef uint32_t %s;" % bitfield.name
+       lines = []
+       for ev in bitfield.enumeratorList:
+               # bitfields may use mix of bitpos and values
+               if ev.bitpos is not None:
+                       value = pow(2, int(ev.bitpos))
+                       lines.append(f"\t{ev.name}\t= {value:#010x},")
+               if ev.value is not None:
+                       lines.append(f"\t{ev.name}\t= {ev.value},")
+       for ev in bitfield.enumeratorList:
+               for alias in ev.aliasList:
+                       lines.append(f"\t{alias}\t= {ev.name},")
+       # add _MAX_ENUM item
+       prefix, postfix = getEnumValuePrefixAndPostfix(bitfield)
+       lines.append(f"\t{prefix}_MAX_ENUM{postfix}\t= 0x7FFFFFFF")
+       yield f"enum {bitfield.name}"
+       yield "{"
+       for line in indentLines(lines):
+               yield line
+       yield "};"
 
 def genBitfield64Src (bitfield64):
-       yield "typedef uint64_t %s;" % bitfield64.name
-       if len(bitfield64.values) > 0:
-               ptrn = "static const " + bitfield64.name + " %s\t= %s;"
-               for line in indentLines([ptrn % v for v in bitfield64.values]):
-                       yield line
-               yield ""
+       def generateEntry(lines, bitfieldName, entryName, bitpos, value):
+               if entryName is None:
+                       return
+               # bitfields may use mix of bitpos and values
+               if ev.bitpos is not None:
+                       v = pow(2, int(bitpos))
+                       lines.append(f"static const {bitfieldName} {entryName}\t= {v:#010x}ULL;")
+               if value is not None:
+                       lines.append(f"static const {bitfieldName} {entryName}\t= {value}ULL;")
+
+       yield f"typedef uint64_t {bitfield64.name};"
+       lines = []
+       for ev in bitfield64.enumeratorList:
+               generateEntry(lines, bitfield64.name, ev.name,  ev.bitpos, ev.value)
+               for alias in ev.aliasList:
+                       generateEntry(lines, bitfield64.name, alias, ev.bitpos, ev.value)
+       # write indented lines
+       for line in indentLines(lines):
+               yield line
+       yield ""
 
-def genCompositeTypeSrc (type):
-       yield "%s %s" % (type.getClassName(), type.name)
-       yield "{"
-       for line in indentLines(['\t'+m.getAsString('\t')+';' for m in type.members]):
+def genDefinesSrc (apiName, defines):
+       def genLines (defines):
+               for d in defines:
+                       if d.alias is not None:
+                               continue
+                       defineType = DEFINITIONS.get(d.name, d.type)
+                       yield f"#define {d.name}\t(static_cast<{defineType}>\t({d.value}))"
+       for line in indentLines(genLines(defines)):
                yield line
-       yield "};"
+       # add VK_API_MAX_FRAMEWORK_VERSION
+       major, minor = api.features[-1].number.split('.')
+       yield f"#define VK_API_MAX_FRAMEWORK_VERSION\tVK{apiName}_API_VERSION_{major}_{minor}"
 
 def genHandlesSrc (handles):
-       uniqeHandles, duplicatedHandles = splitUniqueAndDuplicatedEntries(handles)
-
        def genLines (handles):
-               for handle in uniqeHandles:
-                       if handle.type == Handle.TYPE_DISP:
-                               yield "VK_DEFINE_HANDLE\t(%s,\t%s);" % (handle.name, handle.getHandleType())
-                       elif handle.type == Handle.TYPE_NONDISP:
-                               yield "VK_DEFINE_NON_DISPATCHABLE_HANDLE\t(%s,\t%s);" % (handle.name, handle.getHandleType())
-
-               for duplicate in duplicatedHandles:
-                       if duplicate.type == Handle.TYPE_DISP:
-                               yield "VK_DEFINE_HANDLE\t(%s,\t%s);" % (duplicate.name, duplicatedHandles[duplicate].getHandleType())
-                       elif duplicate.type == Handle.TYPE_NONDISP:
-                               yield "VK_DEFINE_NON_DISPATCHABLE_HANDLE\t(%s,\t%s);" % (duplicate.name, duplicatedHandles[duplicate].getHandleType())
-
+               for h in handles:
+                       handleType = h.type
+                       handleObjtype = h.objtypeenum
+                       if h.alias is not None:
+                               # search for aliased handle
+                               for searchedHandle in handles:
+                                       if h.alias == searchedHandle.name:
+                                               handleType = searchedHandle.type
+                                               handleObjtype = searchedHandle.objtypeenum
+                                               break
+                       yield f"{handleType}\t({h.name},\tHANDLE{handleObjtype[9:]});"
        for line in indentLines(genLines(handles)):
                yield line
 
-def stripTrailingComment(str):
-       index = str.find("//")
-       if index == -1:
-               return str
-       return str[:index]
-
-def genDefinitionsSrc (definitions):
-       for line in ["#define %s\t(static_cast<%s>\t(%s))" % (definition.name, definition.type, stripTrailingComment(definition.value)) for definition in definitions]:
-               yield line
+def genHandlesSrc (handles):
+       def genLines (handles):
+               for h in handles:
+                       handleType    = h.type
+                       handleObjtype = h.objtypeenum
+                       line = f"{handleType}\t({{}},\tHANDLE{handleObjtype[9:]});"
+                       yield line.format(h.name)
+                       if h.alias is not None:
+                               yield line.format(h.alias)
 
-def genDefinitionsAliasSrc (definitions):
-       for line in ["#define %s\t%s" % (definition.name, definitions[definition].name) for definition in definitions]:
-               if definition.value != definitions[definition].value and definition.value != definitions[definition].name:
-                       raise Exception("Value of %s (%s) is different than core definition value %s (%s)." % (definition.name, definition.value, definitions[definition].name, definitions[definition].value))
+       for line in indentLines(genLines(handles)):
                yield line
 
-def genMaxFrameworkVersion (definitions):
-       maxApiVersionMajor = 1
-       maxApiVersionMinor = 0
-       for definition in definitions:
-               match = re.match("VK_API_VERSION_(\d+)_(\d+)", definition.name)
-               if match:
-                       apiVersionMajor = int(match.group(1))
-                       apiVersionMinor = int(match.group(2))
-                       if apiVersionMajor > maxApiVersionMajor:
-                               maxApiVersionMajor = apiVersionMajor
-                               maxApiVersionMinor = apiVersionMinor
-                       elif apiVersionMajor == maxApiVersionMajor and apiVersionMinor > maxApiVersionMinor:
-                               maxApiVersionMinor = apiVersionMinor
-       yield "#define VK_API_MAX_FRAMEWORK_VERSION\tVK_API_VERSION_%d_%d" % (maxApiVersionMajor, maxApiVersionMinor)
-
-def genMaxFrameworkVersionSC (definitions):
-       maxApiVersionMajor = 1
-       maxApiVersionMinor = 0
-       for definition in definitions:
-               match = re.match("VKSC_API_VERSION_(\d+)_(\d+)", definition.name)
-               if match:
-                       apiVersionMajor = int(match.group(1))
-                       apiVersionMinor = int(match.group(2))
-                       if apiVersionMajor > maxApiVersionMajor:
-                               maxApiVersionMajor = apiVersionMajor
-                               maxApiVersionMinor = apiVersionMinor
-                       elif apiVersionMajor == maxApiVersionMajor and apiVersionMinor > maxApiVersionMinor:
-                               maxApiVersionMinor = apiVersionMinor
-       yield "#define VKSC_API_MAX_FRAMEWORK_VERSION\tVKSC_API_VERSION_%d_%d" % (maxApiVersionMajor, maxApiVersionMinor)
-
 def writeBasicTypes (apiName, api, filename):
 
        def gen ():
-               definitionsCore, definitionDuplicates = splitUniqueAndDuplicatedEntries(api.definitions)
 
-               if apiName == '':
-                       for line in indentLines(chain(genDefinitionsSrc(definitionsCore), genMaxFrameworkVersion(definitionsCore), genDefinitionsAliasSrc(definitionDuplicates))):
-                               yield line
-                       yield ""
-               elif apiName == 'SC':
-                       for line in indentLines(chain(genDefinitionsSrc(definitionsCore), genMaxFrameworkVersion(definitionsCore), genMaxFrameworkVersionSC(definitionsCore), genDefinitionsAliasSrc(definitionDuplicates))):
-                               yield line
-                       yield ""
+               for line in genDefinesSrc(apiName, api.defines):
+                       yield line
+               yield ""
 
                for line in genHandlesSrc(api.handles):
                        yield line
                yield ""
 
                for enum in api.enums:
-                       if not enum.isAlias:
-                               for line in genEnumSrc(enum):
-                                       yield line
+                       if len(enum.enumeratorList) == 0:
+                               continue
+                       if enum.type == "bitmask":
+                               if enum.bitwidth == "32":
+                                       for line in genBitfieldSrc(enum):
+                                               yield line
+                               else:
+                                       for line in genBitfield64Src(enum):
+                                               yield line
                        else:
-                               for enum2 in api.enums:
-                                       if enum2.alias == enum:
-                                               yield "typedef %s %s;" % (enum2.name, enum.name)
-                       yield ""
-
-               for bitfield in api.bitfields:
-                       if not bitfield.isAlias:
-                               for line in genBitfieldSrc(bitfield):
+                               for line in genEnumSrc(enum):
                                        yield line
-                       else:
-                               for bitfield2 in api.bitfields:
-                                       if bitfield2.alias == bitfield:
-                                               yield "typedef %s %s;" % (bitfield2.name, bitfield.name)
+                       if enum.alias is not None:
+                               yield f"typedef {enum.name} {enum.alias};"
                        yield ""
 
-               for bitfield in api.bitfields64:
-                       if not bitfield.isAlias:
-                               for line in genBitfield64Src(bitfield):
-                                       yield line
-                       else:
-                               for bitfield2 in api.bitfields64:
-                                       if bitfield2.alias == bitfield:
-                                               yield "typedef %s %s;" % (bitfield2.name, bitfield.name)
-                       yield ""
+               for bitmask in api.bitmasks:
+                       plainType = api.basetypes[bitmask.type]
+                       yield f"typedef {plainType} {bitmask.name};\n"
+                       if bitmask.alias:
+                               yield f"typedef {bitmask.name} {bitmask.alias};\n"
 
+               yield ""
                for line in indentLines(["VK_DEFINE_PLATFORM_TYPE(%s,\t%s)" % (s[0], c) for n, s, c in PLATFORM_TYPES]):
                        yield line
+               yield ""
 
                for ext in api.extensions:
-                       if ext.additionalDefs != None:
-                               for definition in ext.additionalDefs:
-                                       yield "#define " + definition.name + " " + definition.value
+                       firstRequirementEnums = ext.requirementsList[0].extendedEnums
+                       for e in firstRequirementEnums:
+                               if e.extends is None and e.value is not None:
+                                       yield "#define " + e.name + " " + e.value
 
        writeInlFile(filename, INL_HEADER, gen())
 
 def writeCompositeTypes (api, filename):
+       # function that returns definition of structure member
+       def memberAsString (member):
+               result = ''
+               if member.qualifiers:
+                       result += member.qualifiers
+               result += member.type
+               if member.pointer:
+                       result += member.pointer
+               result += '\t' + member.name
+               for size in member.arraySizeList:
+                       result += f"[{size}]"
+               if member.fieldWidth:
+                       result += f":{member.fieldWidth}"
+               return result
+
+       # function that prints single structure definition
+       def genCompositeTypeSrc (type):
+               structLines = "%s %s\n{\n" % (type.category, type.name)
+               for line in indentLines(['\t'+memberAsString(m)+';' for m in type.members]):
+                       structLines += line + '\n'
+               return structLines + "};\n"
+
+       # function that prints all structure definitions and alias typedefs
        def gen ():
-               for type in api.compositeTypes:
-                       type.checkAliasValidity()
+               # structures in xml are not ordered in a correct way for C++
+               # we need to save structures that are used in other structures first
+               allStructureNamesList = [s.name for s in api.compositeTypes]
+               commonTypesList = api.basicCTypes + ['VkStructureType']
+               savedStructureNamesList = []
+               delayedStructureObjectsList = []
+
+               # helper function that checks if all structure members were already saved
+               def canStructBeSaved(compositeObject):
+                       for m in compositeObject.members:
+                               # check first commonTypesList to speed up the algorithm
+                               if m.type in commonTypesList:
+                                       continue
+                               # make sure that member is not of same type as compositeObject
+                               # (this hadles cases like VkBaseOutStructure)
+                               if m.type == compositeObject.name:
+                                       continue
+                               # if member is of compositeType that was not saved we cant save it now
+                               if m.type in allStructureNamesList and m.type not in savedStructureNamesList:
+                                       return False
+                       return True
 
-                       if not type.isAlias:
-                               for line in genCompositeTypeSrc(type):
-                                       yield line
+               # iterate over all composite types
+               lastDelayedComposite = None
+               for ct in api.compositeTypes:
+                       # check if one of delayed structures can be saved
+                       delayedButSaved = []
+                       for dct in delayedStructureObjectsList:
+                               if lastDelayedComposite != dct and canStructBeSaved(dct):
+                                       yield genCompositeTypeSrc(dct)
+                                       delayedButSaved.append(dct)
+                       lastDelayedComposite = None
+                       for dsct in delayedButSaved:
+                               savedStructureNamesList.append(dsct.name)
+                               delayedStructureObjectsList.remove(dsct)
+                       # check if current structure can be saved
+                       if canStructBeSaved(ct):
+                               yield genCompositeTypeSrc(ct)
+                               savedStructureNamesList.append(ct.name)
                        else:
-                               for type2 in api.compositeTypes:
-                                       if type2.alias == type:
-                                               yield "typedef %s %s;" % (type2.name, type.name)
-                       yield ""
+                               delayedStructureObjectsList.append(ct)
+                               # memorize structure that was delayed in last iteration to
+                               # avoid calling for it canStructBeSaved in next iteration
+                               lastDelayedComposite = ct
+               # save remaining delayed composite types (~4 video related structures)
+               while len(delayedStructureObjectsList) > 0:
+                       for dct in delayedStructureObjectsList:
+                               if canStructBeSaved(dct):
+                                       yield genCompositeTypeSrc(dct)
+                                       savedStructureNamesList.append(dct.name)
+                                       delayedStructureObjectsList.remove(dct)
+                                       break
+               # write all alias typedefs
+               for ct in api.compositeTypes:
+                       for alias in ct.aliasList:
+                               yield "typedef %s %s;" % (ct.name, alias)
+                               yield ""
 
        writeInlFile(filename, INL_HEADER, gen())
 
 def argListToStr (args):
-       return ", ".join(v.getAsStringForArgumentList(' ') for v in args)
+       def argumentToString(arg):
+               # args can be instance of FunctionArgument or CompositeMember
+               # but CompositeMember has no arraySize atrribute nor secondPointerIsConst
+               workingOnFunctionArgument = True if hasattr(arg, 'arraySize') else False
+               result = ''
+               if arg.qualifiers:
+                       result += arg.qualifiers
+               result += arg.type
+               if arg.pointer:
+                       if workingOnFunctionArgument and arg.secondPointerIsConst:
+                               result += '* const*'
+                       else:
+                               result += arg.pointer
+               result += ' ' + arg.name
+               if workingOnFunctionArgument:
+                       if arg.arraySize:
+                               result += arg.arraySize
+               return result
+       return ", ".join(argumentToString(arg) for arg in args)
 
 def writeInterfaceDecl (api, filename, functionTypes, concrete):
        def genProtos ():
@@ -1126,15 +1093,18 @@ def writeInterfaceDecl (api, filename, functionTypes, concrete):
                for function in api.functions:
                        if not function.getType() in functionTypes:
                                continue
-                       if not function.isAlias:
-                               yield "virtual %s\t%s\t(%s) const%s;" % (function.returnType, getInterfaceName(function), argListToStr(function.arguments), postfix)
+                       yield "virtual %s\t%s\t(%s) const%s;" % (function.returnType, getInterfaceName(function.name), argListToStr(function.arguments), postfix)
 
        writeInlFile(filename, INL_HEADER, indentLines(genProtos()))
 
 def writeFunctionPtrTypes (api, filename):
        def genTypes ():
+               pattern = "typedef VKAPI_ATTR {}\t(VKAPI_CALL* {})\t({});"
                for function in api.functions:
-                       yield "typedef VKAPI_ATTR %s\t(VKAPI_CALL* %s)\t(%s);" % (function.returnType, getFunctionTypeName(function), argListToStr(function.arguments))
+                       argList = argListToStr(function.arguments)
+                       yield pattern.format(function.returnType, getFunctionTypeName(function.name), argList)
+                       for alias in function.aliasList:
+                               yield pattern.format(function.returnType, getFunctionTypeName(alias), argList)
 
        writeInlFile(filename, INL_HEADER, indentLines(genTypes()))
 
@@ -1142,11 +1112,14 @@ def writeFunctionPointers (api, filename, functionTypes):
        def FunctionsYielder ():
                for function in api.functions:
                        if function.getType() in functionTypes:
-                               if function.isAlias:
-                                       if function.getType() == Function.TYPE_INSTANCE and function.arguments[0].getType() == "VkPhysicalDevice":
-                                               yield "%s\t%s;" % (getFunctionTypeName(function), getInterfaceName(function))
-                               else:
-                                       yield "%s\t%s;" % (getFunctionTypeName(function), getInterfaceName(function))
+                               interfaceName           = getInterfaceName(function.name)
+                               functionTypeName        = getFunctionTypeName(function.name)
+                               yield f"{functionTypeName}\t{interfaceName};"
+                               if function.getType() == Function.TYPE_INSTANCE:
+                                       for alias in function.aliasList:
+                                               interfaceName           = getInterfaceName(alias)
+                                               functionTypeName        = getFunctionTypeName(alias)
+                                               yield f"{functionTypeName}\t{interfaceName};"
 
        writeInlFile(filename, INL_HEADER, indentLines(FunctionsYielder()))
 
@@ -1154,24 +1127,26 @@ def writeInitFunctionPointers (api, filename, functionTypes, cond = None):
        def makeInitFunctionPointers ():
                for function in api.functions:
                        if function.getType() in functionTypes and (cond == None or cond(function)):
-                               interfaceName = getInterfaceName(function)
-                               if function.isAlias:
-                                       if function.getType() == Function.TYPE_INSTANCE and function.arguments[0].getType() == "VkPhysicalDevice":
-                                               yield "m_vk.%s\t= (%s)\tGET_PROC_ADDR(\"%s\");" % (getInterfaceName(function), getFunctionTypeName(function), function.name)
-                               else:
-                                       yield "m_vk.%s\t= (%s)\tGET_PROC_ADDR(\"%s\");" % (getInterfaceName(function), getFunctionTypeName(function), function.name)
-                                       if function.alias != None:
-                                               yield "if (!m_vk.%s)" % (getInterfaceName(function))
-                                               yield "    m_vk.%s\t= (%s)\tGET_PROC_ADDR(\"%s\");" % (getInterfaceName(function), getFunctionTypeName(function), function.alias.name)
+                               interfaceName           = getInterfaceName(function.name)
+                               functionTypeName        = getFunctionTypeName(function.name)
+                               yield f"m_vk.{interfaceName}\t= ({functionTypeName})\tGET_PROC_ADDR(\"{function.name}\");"
+                               for alias in function.aliasList:
+                                       yield f"if (!m_vk.{interfaceName})"
+                                       yield f"    m_vk.{interfaceName}\t= ({functionTypeName})\tGET_PROC_ADDR(\"{alias}\");"
+                                       if function.getType() == Function.TYPE_INSTANCE and function.arguments[0].type == "VkPhysicalDevice":
+                                               interfaceName           = getInterfaceName(alias)
+                                               functionTypeName        = getFunctionTypeName(alias)
+                                               yield f"m_vk.{interfaceName}\t= ({functionTypeName})\tGET_PROC_ADDR(\"{alias}\");"
+
        lines = [line.replace('    ', '\t') for line in indentLines(makeInitFunctionPointers())]
        writeInlFile(filename, INL_HEADER, lines)
 
 def writeFuncPtrInterfaceImpl (api, filename, functionTypes, className):
        def makeFuncPtrInterfaceImpl ():
                for function in api.functions:
-                       if function.getType() in functionTypes and not function.isAlias:
+                       if function.getType() in functionTypes:
                                yield ""
-                               yield "%s %s::%s (%s) const" % (function.returnType, className, getInterfaceName(function), argListToStr(function.arguments))
+                               yield "%s %s::%s (%s) const" % (function.returnType, className, getInterfaceName(function.name), argListToStr(function.arguments))
                                yield "{"
                                if function.name == "vkEnumerateInstanceVersion":
                                        yield " if (m_vk.enumerateInstanceVersion)"
@@ -1179,15 +1154,15 @@ def writeFuncPtrInterfaceImpl (api, filename, functionTypes, className):
                                        yield ""
                                        yield " *pApiVersion = VK_API_VERSION_1_0;"
                                        yield " return VK_SUCCESS;"
-                               elif function.getType() == Function.TYPE_INSTANCE and function.arguments[0].getType() == "VkPhysicalDevice" and function.alias != None:
+                               elif function.getType() == Function.TYPE_INSTANCE and function.arguments[0].type == "VkPhysicalDevice" and len(function.aliasList) > 0:
                                        yield " vk::VkPhysicalDeviceProperties props;"
                                        yield " m_vk.getPhysicalDeviceProperties(physicalDevice, &props);"
                                        yield " if (props.apiVersion >= VK_API_VERSION_1_1)"
-                                       yield "         %sm_vk.%s(%s);" % ("return " if function.returnType != "void" else "", getInterfaceName(function), ", ".join(a.name for a in function.arguments))
+                                       yield "         %sm_vk.%s(%s);" % ("return " if function.returnType != "void" else "", getInterfaceName(function.name), ", ".join(a.name for a in function.arguments))
                                        yield " else"
-                                       yield "         %sm_vk.%s(%s);" % ("return " if function.returnType != "void" else "", getInterfaceName(function.alias), ", ".join(a.name for a in function.arguments))
+                                       yield "         %sm_vk.%s(%s);" % ("return " if function.returnType != "void" else "", getInterfaceName(function.aliasList[0]), ", ".join(a.name for a in function.arguments))
                                else:
-                                       yield " %sm_vk.%s(%s);" % ("return " if function.returnType != "void" else "", getInterfaceName(function), ", ".join(a.name for a in function.arguments))
+                                       yield " %sm_vk.%s(%s);" % ("return " if function.returnType != "void" else "", getInterfaceName(function.name), ", ".join(a.name for a in function.arguments))
                                yield "}"
 
        writeInlFile(filename, INL_HEADER, makeFuncPtrInterfaceImpl())
@@ -1297,26 +1272,26 @@ def writeFuncPtrInterfaceSCImpl (api, filename, functionTypes, className):
 
 def writeStrUtilProto (api, filename):
        def makeStrUtilProto ():
-               for line in indentLines(["const char*\tget%sName\t(%s value);" % (enum.name[2:], enum.name) for enum in api.enums if not enum.isAlias]):
+               for line in indentLines(["const char*\tget%sName\t(%s value);" % (enum.name[2:], enum.name) for enum in api.enums if enum.type == "enum"]):
                        yield line
                yield ""
-               for line in indentLines(["inline tcu::Format::Enum<%s>\tget%sStr\t(%s value)\t{ return tcu::Format::Enum<%s>(get%sName, value);\t}" % (e.name, e.name[2:], e.name, e.name, e.name[2:]) for e in api.enums if not e.isAlias]):
+               for line in indentLines(["inline tcu::Format::Enum<%s>\tget%sStr\t(%s value)\t{ return tcu::Format::Enum<%s>(get%sName, value);\t}" % (e.name, e.name[2:], e.name, e.name, e.name[2:]) for e in api.enums if e.type == "enum"]):
                        yield line
                yield ""
-               for line in indentLines(["inline std::ostream&\toperator<<\t(std::ostream& s, %s value)\t{ return s << get%sStr(value);\t}" % (e.name, e.name[2:]) for e in api.enums if not e.isAlias]):
+               for line in indentLines(["inline std::ostream&\toperator<<\t(std::ostream& s, %s value)\t{ return s << get%sStr(value);\t}" % (e.name, e.name[2:]) for e in api.enums if e.type == "enum"]):
                        yield line
                yield ""
-               for line in indentLines(["tcu::Format::Bitfield<32>\tget%sStr\t(%s value);" % (bitfield.name[2:], bitfield.name) for bitfield in api.bitfields if not bitfield.isAlias or bitfield.name=='VkBuildAccelerationStructureFlagsNV']):
+               for line in indentLines(["tcu::Format::Bitfield<%s>\tget%sStr\t(%s value);" % (("64" if b.type == "VkFlags64" else "32"), b.name[2:], b.name) for b in api.bitmasks]):
                        yield line
                yield ""
-               for line in indentLines(["std::ostream&\toperator<<\t(std::ostream& s, const %s& value);" % (s.name) for s in api.compositeTypes if not s.isAlias]):
+               for line in indentLines(["std::ostream&\toperator<<\t(std::ostream& s, const %s& value);" % (s.name) for s in api.compositeTypes]):
                        yield line
 
        writeInlFile(filename, INL_HEADER, makeStrUtilProto())
 
 def writeStrUtilImpl (api, filename):
        def makeStrUtilImpl ():
-               for line in indentLines(["template<> const char*\tgetTypeName<%s>\t(void) { return \"%s\";\t}" % (handle.name, handle.name) for handle in api.handles if not handle.isAlias]):
+               for line in indentLines(["template<> const char*\tgetTypeName<%s>\t(void) { return \"%s\";\t}" % (handle.name, handle.name) for handle in api.handles]):
                        yield line
 
                yield ""
@@ -1328,86 +1303,92 @@ def writeStrUtilImpl (api, filename):
 
                yield "}"
 
+               savedBitmasks = []
                for enum in api.enums:
-                       if enum.isAlias:
-                               continue
-                       yield ""
-                       yield "const char* get%sName (%s value)" % (enum.name[2:], enum.name)
-                       yield "{"
-                       yield "\tswitch (value)"
-                       yield "\t{"
-                       enumValues = []
-                       lastValue = 0x7FFFFFFF
-                       for n, v in enum.values:
-                               if (v[:2] != "VK") and (v != lastValue):
-                                       enumValues.append(f"\t\tcase {n}:\treturn \"{n}\";")
-                               lastValue = v
-                       enumValues.append("\t\tdefault:\treturn DE_NULL;")
-                       for line in indentLines(enumValues):
-                               yield line
-                       yield "\t}"
-                       yield "}"
-
-               for bitfield in api.bitfields:
-                       if bitfield.isAlias:
-                               if bitfield.name != 'VkBuildAccelerationStructureFlagsNV':
-                                       continue
-                       yield ""
-                       yield "tcu::Format::Bitfield<32> get%sStr (%s value)" % (bitfield.name[2:], bitfield.name)
-                       yield "{"
-
-                       if len(bitfield.values) > 0:
+                       if enum.type == "enum":
+                               yield ""
+                               yield "const char* get%sName (%s value)" % (enum.name[2:], enum.name)
+                               yield "{"
+                               yield "\tswitch (value)"
+                               yield "\t{"
+                               enumValues = []
+                               lastValue = 0x7FFFFFFF
+                               for e in enum.enumeratorList:
+                                       enumValues.append(f"\t\tcase {e.name}:\treturn \"{e.name}\";")
+                               enumValues.append("\t\tdefault:\treturn DE_NULL;")
+                               for line in indentLines(enumValues):
+                                       yield line
+                               yield "\t}"
+                               yield "}"
+                       elif enum.type == "bitmask":
+                               # find bitfield that uses those bitmasks
+                               foundBitmask = None
+                               for bitmask in api.bitmasks:
+                                       if bitmask.requires == enum.name or bitmask.bitvalues == enum.name:
+                                               foundBitmask = bitmask
+                                               break
+                               savedBitmasks.append(foundBitmask.name)
+                               bitSize = "64" if foundBitmask.type == "VkFlags64" else "32"
+                               yield ""
+                               yield f"tcu::Format::Bitfield<{bitSize}> get{bitmask.name[2:]}Str ({bitmask.name} value)"
+                               yield "{"
                                yield "\tstatic const tcu::Format::BitDesc s_desc[] ="
                                yield "\t{"
-                               for line in indentLines(["\t\ttcu::Format::BitDesc(%s,\t\"%s\")," % (n, n) for n, v in bitfield.values]):
+                               for line in indentLines([f"\t\ttcu::Format::BitDesc({e.name},\t\"{e.name}\")," for e in enum.enumeratorList]):
                                        yield line
                                yield "\t};"
-                               yield "\treturn tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));"
-                       else:
-                               yield "\treturn tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);"
-                       yield "}"
-
-               bitfieldTypeNames = set([bitfield.name for bitfield in api.bitfields])
+                               yield f"\treturn tcu::Format::Bitfield<{bitSize}>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));"
+                               yield "}"
 
-               for type in api.compositeTypes:
-                       if not type.isAlias:
+               for bitmask in api.bitmasks:
+                       if bitmask.name not in savedBitmasks:
+                               bitSize = "64" if bitmask.type == "VkFlags64" else "32"
                                yield ""
-                               yield "std::ostream& operator<< (std::ostream& s, const %s& value)" % type.name
+                               yield f"tcu::Format::Bitfield<{bitSize}> get{bitmask.name[2:]}Str ({bitmask.name} value)"
                                yield "{"
-                               yield "\ts << \"%s = {\\n\";" % type.name
-                               for member in type.members:
-                                       memberName      = member.name
-                                       valFmt          = None
-                                       newLine         = ""
-                                       if member.getType() in bitfieldTypeNames:
-                                               valFmt = "get%sStr(value.%s)" % (member.getType()[2:], member.name)
-                                       elif member.getType() == "const char*" or member.getType() == "char*":
-                                               valFmt = "getCharPtrStr(value.%s)" % member.name
-                                       elif member.getType() == PLATFORM_TYPE_NAMESPACE + "::Win32LPCWSTR":
-                                               valFmt = "getWStr(value.%s)" % member.name
-                                       elif member.arraySize != '':
-                                               singleDimensional = not '][' in member.arraySize
-                                               if member.name in ["extensionName", "deviceName", "layerName", "description"]:
-                                                       valFmt = "(const char*)value.%s" % member.name
-                                               elif singleDimensional and (member.getType() == 'char' or member.getType() == 'uint8_t'):
-                                                       newLine = "'\\n' << "
-                                                       valFmt  = "tcu::formatArray(tcu::Format::HexIterator<%s>(DE_ARRAY_BEGIN(value.%s)), tcu::Format::HexIterator<%s>(DE_ARRAY_END(value.%s)))" % (member.getType(), member.name, member.getType(), member.name)
-                                               else:
-                                                       if member.name == "memoryTypes" or member.name == "memoryHeaps":
-                                                               endIter = "DE_ARRAY_BEGIN(value.%s) + value.%sCount" % (member.name, member.name[:-1])
-                                                       else:
-                                                               endIter = "DE_ARRAY_END(value.%s)" % member.name
-                                                       newLine = "'\\n' << "
-                                                       valFmt  = "tcu::formatArray(DE_ARRAY_BEGIN(value.%s), %s)" % (member.name, endIter)
-                                               memberName = member.name
-                                       else:
-                                               valFmt = "value.%s" % member.name
-                                       yield ("\ts << \"\\t%s = \" << " % memberName) + newLine + valFmt + " << '\\n';"
-                               yield "\ts << '}';"
-                               yield "\treturn s;"
+                               yield f"\treturn tcu::Format::Bitfield<{bitSize}>(value, DE_NULL, DE_NULL);"
                                yield "}"
-       writeInlFile(filename, INL_HEADER, makeStrUtilImpl())
 
+               bitfieldTypeNames = set([bitmask.name for bitmask in api.bitmasks])
+
+               for type in api.compositeTypes:
+                       yield ""
+                       yield "std::ostream& operator<< (std::ostream& s, const %s& value)" % type.name
+                       yield "{"
+                       yield "\ts << \"%s = {\\n\";" % type.name
+                       for member in type.members:
+                               memberName      = member.name
+                               valFmt          = None
+                               newLine         = ""
+                               if member.type in bitfieldTypeNames:
+                                       operator = '*' if member.pointer == '*' else ''
+                                       valFmt = "get%sStr(%svalue.%s)" % (member.type[2:], operator, member.name)
+                               elif member.type == "char" and member.pointer == '*':
+                                       valFmt = "getCharPtrStr(value.%s)" % member.name
+                               elif member.type == PLATFORM_TYPE_NAMESPACE + "::Win32LPCWSTR":
+                                       valFmt = "getWStr(value.%s)" % member.name
+                               elif len(member.arraySizeList) > 0:
+                                       singleDimensional = len(member.arraySizeList) == 1
+                                       if member.name in ["extensionName", "deviceName", "layerName", "description"]:
+                                               valFmt = "(const char*)value.%s" % member.name
+                                       elif singleDimensional and (member.type == 'char' or member.type == 'uint8_t'):
+                                               newLine = "'\\n' << "
+                                               valFmt  = "tcu::formatArray(tcu::Format::HexIterator<%s>(DE_ARRAY_BEGIN(value.%s)), tcu::Format::HexIterator<%s>(DE_ARRAY_END(value.%s)))" % (member.type, member.name, member.type, member.name)
+                                       else:
+                                               if member.name == "memoryTypes" or member.name == "memoryHeaps":
+                                                       endIter = "DE_ARRAY_BEGIN(value.%s) + value.%sCount" % (member.name, member.name[:-1])
+                                               else:
+                                                       endIter = "DE_ARRAY_END(value.%s)" % member.name
+                                               newLine = "'\\n' << "
+                                               valFmt  = "tcu::formatArray(DE_ARRAY_BEGIN(value.%s), %s)" % (member.name, endIter)
+                                       memberName = member.name
+                               else:
+                                       valFmt = "value.%s" % member.name
+                               yield ("\ts << \"\\t%s = \" << " % memberName) + newLine + valFmt + " << '\\n';"
+                       yield "\ts << '}';"
+                       yield "\treturn s;"
+                       yield "}"
+       writeInlFile(filename, INL_HEADER, makeStrUtilImpl())
 
 def writeObjTypeImpl (api, filename):
        def makeObjTypeImpl ():
@@ -1417,7 +1398,7 @@ def writeObjTypeImpl (api, filename):
 
                yield "template<typename T> VkObjectType getObjectType  (void);"
 
-               for line in indentLines(["template<> inline VkObjectType\tgetObjectType<%s>\t(void) { return %s;\t}" % (handle.name, prefixName("VK_OBJECT_TYPE_", handle.name)) for handle in api.handles if not handle.isAlias]):
+               for line in indentLines(["template<> inline VkObjectType\tgetObjectType<%s>\t(void) { return %s;\t}" % (handle.name, prefixName("VK_OBJECT_TYPE_", handle.name)) for handle in api.handles]):
                        yield line
 
                yield "}"
@@ -1434,38 +1415,36 @@ class ConstructorFunction:
 
 def getConstructorFunctions (api):
        funcs = []
+
        ifacesDict = {
-               Function.TYPE_PLATFORM: [Variable("const PlatformInterface&", "vk", "")],
-               Function.TYPE_INSTANCE: [Variable("const InstanceInterface&", "vk", "")],
-               Function.TYPE_DEVICE: [Variable("const DeviceInterface&", "vk", "")]
-       }
+               Function.TYPE_PLATFORM: [FunctionArgument("vk", "const ", "PlatformInterface&")],
+               Function.TYPE_INSTANCE: [FunctionArgument("vk", "const ", "InstanceInterface&")],
+               Function.TYPE_DEVICE:   [FunctionArgument("vk", "const ", "DeviceInterface&")]}
+
        for function in api.functions:
-               if function.isAlias:
-                       continue
                if (function.name[:8] == "vkCreate" or function.name == "vkAllocateMemory") and not "createInfoCount" in [a.name for a in function.arguments]:
                        if function.name == "vkCreateDisplayModeKHR":
                                continue # No way to delete display modes (bug?)
 
-                       # \todo [pyry] Rather hacky
-                       ifaceArgs = ifacesDict[function.getType()]
+                       ifaceArgs = []
                        if function.name == "vkCreateDevice":
-                               ifaceArgs = [Variable("const PlatformInterface&", "vkp", ""), Variable("VkInstance", "instance", "")] + ifaceArgs
+                               ifaceArgs = [FunctionArgument("vkp", "const ", "PlatformInterface&"),
+                                                        FunctionArgument("instance", "", "VkInstance")]
+                       ifaceArgs.extend(ifacesDict[function.getType()])
 
-                       assert (function.arguments[-2].type == ["const", "VkAllocationCallbacks", "*"])
+                       assert (function.arguments[-2].type == "VkAllocationCallbacks" and \
+                                       "const" in function.arguments[-2].qualifiers and \
+                                       function.arguments[-2].pointer == "*")
 
-                       objectType      = function.arguments[-1].type[0] #not getType() but type[0] on purpose
+                       objectType      = function.arguments[-1].type
                        arguments       = function.arguments[:-1]
-                       funcs.append(ConstructorFunction(function.getType(), getInterfaceName(function), objectType, ifaceArgs, arguments))
+                       funcs.append(ConstructorFunction(function.getType(), getInterfaceName(function.name), objectType, ifaceArgs, arguments))
        return funcs
 
 def addVersionDefines(versionSpectrum):
        output = ["#define " + ver.getDefineName() + " " + ver.getInHex() for ver in versionSpectrum if not ver.isStandardVersion()]
        return output
 
-def removeVersionDefines(versionSpectrum):
-       output = ["#undef " + ver.getDefineName() for ver in versionSpectrum if not ver.isStandardVersion()]
-       return output
-
 def writeRefUtilProto (api, filename):
        functions = getConstructorFunctions(api)
 
@@ -1487,13 +1466,12 @@ def writeRefUtilImpl (api, filename):
                for function in api.functions:
                        if function.getType() == Function.TYPE_DEVICE \
                        and (function.name[:9] == "vkDestroy" or function.name == "vkFreeMemory") \
-                       and not function.name == "vkDestroyDevice" \
-                       and not function.isAlias:
-                               objectType = function.arguments[-2].getType()
+                       and not function.name == "vkDestroyDevice":
+                               objectType = function.arguments[-2].type
                                yield "template<>"
                                yield "void Deleter<%s>::operator() (%s obj) const" % (objectType, objectType)
                                yield "{"
-                               yield "\tm_deviceIface->%s(m_device, obj, m_allocator);" % (getInterfaceName(function))
+                               yield "\tm_deviceIface->%s(m_device, obj, m_allocator);" % (getInterfaceName(function.name))
                                yield "}"
                                yield ""
 
@@ -1526,11 +1504,11 @@ def writeRefUtilImpl (api, filename):
 
 def writeStructTraitsImpl (api, filename):
        def gen ():
-               for type in api.compositeTypes:
-                       if type.getClassName() == "struct" and type.members[0].name == "sType" and not type.isAlias and type.name != "VkBaseOutStructure" and type.name != "VkBaseInStructure":
-                               yield "template<> VkStructureType getStructureType<%s> (void)" % type.name
+               for cType in api.compositeTypes:
+                       if cType.category == "struct" and cType.members[0].name == "sType" and cType.name != "VkBaseOutStructure" and cType.name != "VkBaseInStructure":
+                               yield "template<> VkStructureType getStructureType<%s> (void)" % cType.name
                                yield "{"
-                               yield "\treturn %s;" % prefixName("VK_STRUCTURE_TYPE_", type.name)
+                               yield "\treturn %s;" % cType.members[0].values
                                yield "}"
                                yield ""
 
@@ -1576,51 +1554,50 @@ def writeNullDriverImpl (api, filename):
                                "vkGetMemoryAndroidHardwareBufferANDROID",
                        ]
 
-               coreFunctions           = [f for f in api.functions if not f.isAlias]
-               specialFuncs            = [f for f in coreFunctions if f.name in specialFuncNames]
-               createFuncs                     = [f for f in coreFunctions if (f.name[:8] == "vkCreate" or f.name == "vkAllocateMemory") and not f in specialFuncs]
-               destroyFuncs            = [f for f in coreFunctions if (f.name[:9] == "vkDestroy" or f.name == "vkFreeMemory") and not f in specialFuncs]
-               dummyFuncs                      = [f for f in coreFunctions if f not in specialFuncs + createFuncs + destroyFuncs]
+               specialFuncs            = [f for f in api.functions if f.name in specialFuncNames]
+               createFuncs                     = [f for f in api.functions if (f.name[:8] == "vkCreate" or f.name == "vkAllocateMemory") and not f in specialFuncs]
+               destroyFuncs            = [f for f in api.functions if (f.name[:9] == "vkDestroy" or f.name == "vkFreeMemory") and not f in specialFuncs]
+               dummyFuncs                      = [f for f in api.functions if f not in specialFuncs + createFuncs + destroyFuncs]
 
                def getHandle (name):
                        for handle in api.handles:
-                               if handle.name == name[0]:
+                               if handle.name == name:
                                        return handle
                        raise Exception("No such handle: %s" % name)
 
                for function in createFuncs:
-                       objectType      = function.arguments[-1].type[:-1]
+                       objectType      = function.arguments[-1].type
                        argsStr         = ", ".join([a.name for a in function.arguments[:-1]])
 
-                       yield "VKAPI_ATTR %s VKAPI_CALL %s (%s)" % (function.returnType, getInterfaceName(function), argListToStr(function.arguments))
+                       yield "VKAPI_ATTR %s VKAPI_CALL %s (%s)" % (function.returnType, getInterfaceName(function.name), argListToStr(function.arguments))
                        yield "{"
                        yield "\tDE_UNREF(%s);" % function.arguments[-2].name
 
-                       if getHandle(objectType).type == Handle.TYPE_NONDISP:
-                               yield "\tVK_NULL_RETURN((*%s = allocateNonDispHandle<%s, %s>(%s)));" % (function.arguments[-1].name, objectType[0][2:], objectType[0], argsStr)
+                       if getHandle(objectType).type == "VK_DEFINE_NON_DISPATCHABLE_HANDLE":
+                               yield "\tVK_NULL_RETURN((*%s = allocateNonDispHandle<%s, %s>(%s)));" % (function.arguments[-1].name, objectType[2:], objectType, argsStr)
                        else:
-                               yield "\tVK_NULL_RETURN((*%s = allocateHandle<%s, %s>(%s)));" % (function.arguments[-1].name, objectType[0][2:], objectType[0], argsStr)
+                               yield "\tVK_NULL_RETURN((*%s = allocateHandle<%s, %s>(%s)));" % (function.arguments[-1].name, objectType[2:], objectType, argsStr)
                        yield "}"
                        yield ""
 
                for function in destroyFuncs:
                        objectArg       = function.arguments[-2]
 
-                       yield "VKAPI_ATTR %s VKAPI_CALL %s (%s)" % (function.returnType, getInterfaceName(function), argListToStr(function.arguments))
+                       yield "VKAPI_ATTR %s VKAPI_CALL %s (%s)" % (function.returnType, getInterfaceName(function.name), argListToStr(function.arguments))
                        yield "{"
                        for arg in function.arguments[:-2]:
                                yield "\tDE_UNREF(%s);" % arg.name
 
-                       if getHandle(objectArg.type).type == Handle.TYPE_NONDISP:
-                               yield "\tfreeNonDispHandle<%s, %s>(%s, %s);" % (objectArg.getType()[2:], objectArg.getType(), objectArg.name, function.arguments[-1].name)
+                       if getHandle(objectArg.type).type == 'VK_DEFINE_NON_DISPATCHABLE_HANDLE':
+                               yield "\tfreeNonDispHandle<%s, %s>(%s, %s);" % (objectArg.type[2:], objectArg.type, objectArg.name, function.arguments[-1].name)
                        else:
-                               yield "\tfreeHandle<%s, %s>(%s, %s);" % (objectArg.getType()[2:], objectArg.getType(), objectArg.name, function.arguments[-1].name)
+                               yield "\tfreeHandle<%s, %s>(%s, %s);" % (objectArg.type[2:], objectArg.type, objectArg.name, function.arguments[-1].name)
 
                        yield "}"
                        yield ""
 
                for function in dummyFuncs:
-                       yield "VKAPI_ATTR %s VKAPI_CALL %s (%s)" % (function.returnType, getInterfaceName(function), argListToStr(function.arguments))
+                       yield "VKAPI_ATTR %s VKAPI_CALL %s (%s)" % (function.returnType, getInterfaceName(function.name), argListToStr(function.arguments))
                        yield "{"
                        for arg in function.arguments:
                                yield "\tDE_UNREF(%s);" % arg.name
@@ -1630,15 +1607,18 @@ def writeNullDriverImpl (api, filename):
                        yield ""
 
                def genFuncEntryTable (type, name):
-                       funcs = [f for f in api.functions if f.getType() == type]
-                       refFuncs = {}
+
+                       entries = []
+                       pattern = "\tVK_NULL_FUNC_ENTRY(%s,\t%s),"
                        for f in api.functions:
-                               if f.alias != None:
-                                       refFuncs[f.alias] = f
+                               if f.getType() != type:
+                                       continue
+                               entries.append(pattern % (f.name, getInterfaceName(f.name)))
 
                        yield "static const tcu::StaticFunctionLibrary::Entry %s[] =" % name
                        yield "{"
-                       for line in indentLines(["\tVK_NULL_FUNC_ENTRY(%s,\t%s)," % (function.name, getInterfaceName(function if not function.isAlias else refFuncs[function])) for function in funcs]):
+
+                       for line in indentLines(entries):
                                yield line
                        yield "};"
                        yield ""
@@ -1689,30 +1669,31 @@ def writeTypeUtil (api, filename):
                        "StdVideoEncodeH265ReferenceInfoFlags",
                        "StdVideoEncodeH265SliceSegmentHeaderFlags",
                ])
-       COMPOSITE_TYPES = set([t.name for t in api.compositeTypes if not t.isAlias])
 
        def isSimpleStruct (type):
                def hasArrayMember (type):
                        for member in type.members:
-                               if member.arraySize != '':
+                               if len(member.arraySizeList) > 0:
                                        return True
                        return False
 
                def hasCompositeMember (type):
                        for member in type.members:
-                               if member.getType() in COMPOSITE_TYPES:
-                                       return True
+                               if member.pointer is not None and '*' not in member.pointer:
+                                       match = [c for c in api.compositeTypes if member.type == c.name]
+                                       if len(match) > 0:
+                                               return True
                        return False
 
-               return type.typeClass == CompositeType.CLASS_STRUCT and \
-               type.members[0].getType() != "VkStructureType" and \
+               return type.category == "struct" and \
+               type.members[0].type != "VkStructureType" and \
                not type.name in QUERY_RESULT_TYPES and \
                not hasArrayMember(type) and \
                not hasCompositeMember(type)
 
        def gen ():
                for type in api.compositeTypes:
-                       if not isSimpleStruct(type) or type.isAlias:
+                       if not isSimpleStruct(type):
                                continue
 
                        name = type.name[2:] if type.name[:2].lower() == "vk" else type.name
@@ -1728,8 +1709,7 @@ def writeTypeUtil (api, filename):
 
        writeInlFile(filename, INL_HEADER, gen())
 
-def writeDriverIds(apiName, filename):
-
+def writeDriverIds(api, filename):
        driverIdsString = []
        driverIdsString.append("static const struct\n"
                                         "{\n"
@@ -1737,37 +1717,19 @@ def writeDriverIds(apiName, filename):
                                         "\tuint32_t id;\n"
                                         "} driverIds [] =\n"
                                         "{")
-
-       vulkanHeaderFile = { "" :       os.path.join(VULKAN_HEADERS_INCLUDE_DIR, "vulkan", "vulkan_core.h"),
-                                               "SC" :  os.path.join(SCRIPTS_SRC_DIR, "vulkan_sc_core.h") }
-       vulkanCore = readFile(vulkanHeaderFile[apiName])
-
-       items = re.search(r'(?:typedef\s+enum\s+VkDriverId\s*{)((.*\n)*)(?:}\s*VkDriverId\s*;)', vulkanCore).group(1).split(',')
        driverItems = dict()
-       for item in items:
-               item.strip()
-               splitted = item.split('=')
-               key = splitted[0].strip()
-               value_str = splitted[1].strip()
-               try: # is this previously defined value?
-                       value = driverItems[value_str]
-               except:
-                       value = value_str
-                       value_str = ""
-               if value_str:
-                       value_str = "\t// " + value_str
-               driverItems[key] = value
-               if not item == items[-1]:
-                       driverIdsString.append("\t{\"" + key + "\"" + ", " + value + "}," + value_str)
-               else:
-                       driverIdsString.append("\t{\"" + key + "\"" + ", " + value + "}" + value_str)
-               driverItems[key] = value
-
+       driverIdEnum = [enum for enum in api.enums if enum.name == 'VkDriverId'][0]
+       for enumerator in driverIdEnum.enumeratorList:
+               driverIdsString.append(f"\t{{\"{enumerator.name}\", {enumerator.value}}},")
+               driverItems[enumerator.name] = enumerator.value
+       for enumerator in driverIdEnum.enumeratorList:
+               if len(enumerator.aliasList) > 0:
+                       driverIdsString.append(f"\t{{\"{enumerator.aliasList[0]}\", {enumerator.value}}},\t// {enumerator.name}")
+       driverIdsString.append("\t{\"VK_DRIVER_ID_MAX_ENUM\", 0x7FFFFFFF}")
        driverIdsString.append("};")
 
        writeInlFile(filename, INL_HEADER, driverIdsString)
 
-
 def writeSupportedExtensions(apiName, api, filename):
 
        def writeExtensionsForVersions(map):
@@ -1786,21 +1748,22 @@ def writeSupportedExtensions(apiName, api, filename):
 
        instanceMap             = {}
        deviceMap               = {}
-       versionSet              = set()
 
        for ext in api.extensions:
-               if ext.versionInCore != None:
-                       currVersion = Version(ext.versionInCore[1:])
-                       # VulkanSC is based on Vulkan 1.2. Any Vulkan version greater than 1.2 should be excluded
-                       if apiName=='SC' and currVersion.api==0 and currVersion.major==1 and currVersion.minor>2:
-                               continue
-                       if ext.versionInCore[0] == 'instance':
-                               list = instanceMap.get(Version(ext.versionInCore[1:]))
-                               instanceMap[Version(ext.versionInCore[1:])] = list + [ext] if list else [ext]
-                       else:
-                               list = deviceMap.get(Version(ext.versionInCore[1:]))
-                               deviceMap[Version(ext.versionInCore[1:])] = list + [ext] if list else [ext]
-                       versionSet.add(Version(ext.versionInCore[1:]))
+               if ext.promotedto is None or "VK_VERSION" not in ext.promotedto:
+                       continue
+               major           = int(ext.promotedto[-3])
+               minor           = int(ext.promotedto[-1])
+               currVersion = "VK_API_VERSION_" + ext.promotedto[-3:]
+               # VulkanSC is based on Vulkan 1.2. Any Vulkan version greater than 1.2 should be excluded
+               if apiName=='SC' and major==1 and minor>2:
+                       continue
+               if ext.type == 'instance':
+                       list = instanceMap.get(currVersion)
+                       instanceMap[currVersion] = list + [ext] if list else [ext]
+               else:
+                       list = deviceMap.get(currVersion)
+                       deviceMap[currVersion] = list + [ext] if list else [ext]
 
        # add list of extensions missing in Vulkan SC specification
        if apiName == 'SC':
@@ -1823,9 +1786,8 @@ def writeSupportedExtensions(apiName, api, filename):
                                else:
                                        list = deviceMap.get(currVersion)
                                        deviceMap[currVersion] = list + [ext] if list else [ext]
-                               versionSet.add(currVersion)
 
-       lines = addVersionDefines(versionSet) + [
+       lines = [
        "",
        "void getCoreDeviceExtensionsImpl (uint32_t coreVersion, ::std::vector<const char*>&%s)" % (" dst" if len(deviceMap) != 0 or apiName == 'SC' else ""),
        "{"] + writeExtensionsForVersions(deviceMap) + [
@@ -1834,47 +1796,22 @@ def writeSupportedExtensions(apiName, api, filename):
        "void getCoreInstanceExtensionsImpl (uint32_t coreVersion, ::std::vector<const char*>&%s)" % (" dst" if len(instanceMap) != 0 or apiName == 'SC' else ""),
        "{"] + writeExtensionsForVersions(instanceMap) + [
        "}",
-       ""] + removeVersionDefines(versionSet)
+       ""]
        writeInlFile(filename, INL_HEADER, lines)
 
 
 def writeExtensionFunctions (api, filename):
 
-       def isInstanceExtension (ext):
-               if ext.name and ext.functions:
-                       if ext.functions[0].getType() == Function.TYPE_INSTANCE:
-                               return True
-                       else:
-                               return False
-
-       def isDeviceExtension (ext):
-               if ext.name and ext.functions:
-                       if ext.functions[0].getType() == Function.TYPE_DEVICE:
-                               return True
-                       else:
-                               return False
-
        def writeExtensionNameArrays ():
-               instanceExtensionNames = []
-               deviceExtensionNames = []
-               for ext in api.extensions:
-                       if ext.name and isInstanceExtension(ext):
-                               instanceExtensionNames += [ext.name]
-                       elif ext.name and isDeviceExtension(ext):
-                               deviceExtensionNames += [ext.name]
+               instanceExtensionNames  = [f"\t\"{ext.name}\"," for ext in api.extensions if ext.type == "instance"]
+               deviceExtensionNames    = [f"\t\"{ext.name}\"," for ext in api.extensions if ext.type == "device"]
                yield '::std::string instanceExtensionNames[] =\n{'
                for instanceExtName in instanceExtensionNames:
-                       if (instanceExtName == instanceExtensionNames[len(instanceExtensionNames) - 1]):
-                               yield '\t"%s"' % instanceExtName
-                       else:
-                               yield '\t"%s",' % instanceExtName
+                       yield instanceExtName
                yield '};\n'
                yield '::std::string deviceExtensionNames[] =\n{'
                for deviceExtName in deviceExtensionNames:
-                       if (deviceExtName == deviceExtensionNames[len(deviceExtensionNames) - 1]):
-                               yield '\t"%s"' % deviceExtName
-                       else:
-                               yield '\t"%s",' % deviceExtName
+                       yield deviceExtName
                yield '};'
 
        def writeExtensionFunctions (functionType):
@@ -1888,12 +1825,24 @@ def writeExtensionFunctions (api, filename):
                        dg_list = ["vkGetDeviceGroupPresentCapabilitiesKHR", "vkGetDeviceGroupSurfacePresentModesKHR", "vkAcquireNextImage2KHR"]
                for ext in api.extensions:
                        funcNames = []
-                       if ext.name:
-                               for func in ext.functions:
+                       for requirement in ext.requirementsList:
+                               for commandName in requirement.newCommands:
+                                       # find function that has specified name
+                                       func            = None
+                                       funcList        = [f for f in api.functions if f.name == commandName]
+                                       # if name was not found check if this is alias
+                                       if len(funcList) == 0:
+                                               for f in api.functions:
+                                                       for aliasName in f.aliasList:
+                                                               if aliasName == commandName:
+                                                                       func = f
+                                                                       break
+                                       else:
+                                               func = funcList[0]
                                        if func.getType() == functionType:
                                                # only add functions with same vendor as extension
                                                # this is a workaroudn for entrypoints requiring more
-                                               # than one excetions and lack of the dependency in vulkan_core.h
+                                               # than one excetions and lack of the dependency in vk.xml
                                                vendor = ext.name.split('_')[1]
                                                if func.name.endswith(vendor):
                                                        funcNames.append(func.name)
@@ -1928,8 +1877,16 @@ def writeExtensionFunctions (api, filename):
        writeInlFile(filename, INL_HEADER, lines)
 
 def writeCoreFunctionalities(api, filename):
-       functionOriginValues    = ["FUNCTIONORIGIN_PLATFORM", "FUNCTIONORIGIN_INSTANCE", "FUNCTIONORIGIN_DEVICE"]
-       lines                                   = addVersionDefines(api.versions) + [
+       functionOriginValues = ["FUNCTIONORIGIN_PLATFORM", "FUNCTIONORIGIN_INSTANCE", "FUNCTIONORIGIN_DEVICE"]
+
+       functionNamesPerApiVersionDict = {}
+       for feature in api.features:
+               apiVersion = "VK_API_VERSION_" + feature.number.replace('.', '_')
+               functionNamesPerApiVersionDict[apiVersion] = []
+               for r in feature.requirementsList:
+                       functionNamesPerApiVersionDict[apiVersion].extend(r.commandList)
+
+       lines = [
        "",
        'enum FunctionOrigin', '{'] + [line for line in indentLines([
        '\t' + functionOriginValues[0] + '\t= 0,',
@@ -1944,192 +1901,103 @@ def writeCoreFunctionalities(api, filename):
        "void initApisMap (ApisMap& apis)",
        "{",
        "       apis.clear();"] + [
-       "       apis.insert(::std::pair<uint32_t, FunctionInfosList>(" + str(v) + ", FunctionInfosList()));" for v in api.versions] + [
+       "       apis.insert(::std::pair<uint32_t, FunctionInfosList>(" + v + ", FunctionInfosList()));" for v in functionNamesPerApiVersionDict] + [
        ""]
 
-       apiVersions = []
-       for index, v in enumerate(api.versions):
-               funcs = []
-               apiVersions.append("VK_VERSION_{0}_{1}".format(v.major, v.minor))
-               # iterate over all functions that are core in latest vulkan version
-               # note that first item in api.extension array are actually all definitions that are in vulkan.h.in before section with extensions
-               for fun in api.extensions[0].functions:
-                       if fun.apiVersion in apiVersions:
-                               funcs.append('  apis[' + str(v) + '].push_back(FunctionInfo("' + fun.name + '",\t' + functionOriginValues[fun.getType()] + '));')
-               lines = lines + [line for line in indentLines(funcs)] + [""]
-
-       lines = lines + ["}", ""] + removeVersionDefines(api.versions)
+       apiVersions             = []
+       functionLines   = []
+       for apiVersion in functionNamesPerApiVersionDict:
+               # iterate over names of functions added with api
+               for functionName in functionNamesPerApiVersionDict[apiVersion]:
+                       # search for data of this function in all functions list
+                       functionData = None
+                       for f in api.functions:
+                               if functionName == f.name:
+                                       functionData = f
+                                       break
+                       assert(functionData != None)
+                       # add line coresponding to this function
+                       functionLines.append('\tapis[{0}].push_back(FunctionInfo("' + functionName + '",\t' + functionOriginValues[functionData.getType()] + '));')
+               # functions for every api version should also include all functions from previous versions
+               specializedLines = [line.format(apiVersion) for line in functionLines]
+               # indent all functions of specified api and add them to main list
+               lines = lines + [line for line in indentLines(specializedLines)] + [""]
+
+       lines = lines + ["}"]
        writeInlFile(filename, INL_HEADER, lines)
 
 def camelToSnake(name):
-    name = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name)
-    return re.sub('([a-z0-9])([A-Z])', r'\1_\2', name).lower()
+       name = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name)
+       return re.sub('([a-z0-9])([A-Z])', r'\1_\2', name).lower()
 
 def writeDeviceFeatures2(api, filename):
-       def structInAPI(name):
+
+       def structInAPI(compositeObject):
                for c in api.compositeTypes:
-                       if c.name == name:
+                       if c.name == compositeObject.name:
                                return True
                return False
 
-       # list of structures that should be tested with getPhysicalDeviceFeatures2
-       # this is not posible to determine from vulkan_core.h, if new feature structures
-       # are added they should be manualy added to this list
-       testedStructures = [
-               'VkPhysicalDevice4444FormatsFeaturesEXT',
-               'VkPhysicalDevice8BitStorageFeatures',
-               'VkPhysicalDevice16BitStorageFeatures',
-               'VkPhysicalDeviceAccelerationStructureFeaturesKHR',
-               'VkPhysicalDeviceASTCDecodeFeaturesEXT',
-               'VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT',
-               'VkPhysicalDeviceBufferDeviceAddressFeaturesEXT',
-               'VkPhysicalDeviceBufferDeviceAddressFeatures',
-               'VkPhysicalDeviceConditionalRenderingFeaturesEXT',
-               'VkPhysicalDeviceCustomBorderColorFeaturesEXT',
-               'VkPhysicalDeviceColorWriteEnableFeaturesEXT',
-               'VkPhysicalDeviceDescriptorIndexingFeatures',
-               'VkPhysicalDeviceDepthClipEnableFeaturesEXT',
-               'VkPhysicalDeviceDynamicRenderingFeatures',
-               'VkPhysicalDeviceExtendedDynamicStateFeaturesEXT',
-               'VkPhysicalDeviceExtendedDynamicState2FeaturesEXT',
-               'VkPhysicalDeviceFragmentDensityMapFeaturesEXT',
-               'VkPhysicalDeviceFragmentDensityMap2FeaturesEXT',
-               'VkPhysicalDeviceFragmentShadingRateFeaturesKHR',
-               'VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR',
-               'VkPhysicalDeviceInlineUniformBlockFeatures',
-               'VkPhysicalDeviceIndexTypeUint8FeaturesEXT',
-               'VkPhysicalDeviceImagelessFramebufferFeatures',
-               'VkPhysicalDeviceImageRobustnessFeatures',
-               'VkPhysicalDeviceHostQueryResetFeatures',
-               'VkPhysicalDeviceLineRasterizationFeaturesEXT',
-               'VkPhysicalDeviceMaintenance4Features',
-               'VkPhysicalDeviceMultiviewFeatures',
-               'VkPhysicalDeviceMultiDrawFeaturesEXT',
-               'VkPhysicalDeviceMemoryPriorityFeaturesEXT',
-               'VkPhysicalDeviceDeviceMemoryReportFeaturesEXT',
-               'VkPhysicalDevicePerformanceQueryFeaturesKHR',
-               'VkPhysicalDevicePipelineCreationCacheControlFeatures',
-               'VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR',
-               'VkPhysicalDevicePresentIdFeaturesKHR',
-               'VkPhysicalDevicePresentWaitFeaturesKHR',
-               'VkPhysicalDeviceProtectedMemoryFeatures',
-               'VkPhysicalDeviceProvokingVertexFeaturesEXT',
-               'VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT',
-               'VkPhysicalDevicePrivateDataFeatures',
-               'VkPhysicalDeviceRayTracingPipelineFeaturesKHR',
-               'VkPhysicalDeviceRayQueryFeaturesKHR',
-               'VkPhysicalDeviceRobustness2FeaturesEXT',
-               'VkPhysicalDeviceSamplerYcbcrConversionFeatures',
-               'VkPhysicalDeviceScalarBlockLayoutFeatures',
-               'VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures',
-               'VkPhysicalDeviceShaderAtomicInt64Features',
-               'VkPhysicalDeviceShaderAtomicFloatFeaturesEXT',
-               'VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT',
-               'VkPhysicalDeviceShaderFloat16Int8Features',
-               'VkPhysicalDeviceShaderClockFeaturesKHR',
-               'VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures',
-               'VkPhysicalDeviceShaderDrawParametersFeatures',
-               'VkPhysicalDeviceShaderIntegerDotProductFeatures',
-               'VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures',
-               'VkPhysicalDeviceShaderTerminateInvocationFeatures',
-               'VkPhysicalDeviceSubgroupSizeControlFeatures',
-               'VkPhysicalDeviceSynchronization2Features',
-               'VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT',
-               'VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT',
-               'VkPhysicalDeviceTextureCompressionASTCHDRFeatures',
-               'VkPhysicalDeviceTimelineSemaphoreFeatures',
-               'VkPhysicalDeviceTransformFeedbackFeaturesEXT',
-               'VkPhysicalDeviceUniformBufferStandardLayoutFeatures',
-               'VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR',
-               'VkPhysicalDeviceVariablePointersFeatures',
-               'VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT',
-               'VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT',
-               'VkPhysicalDeviceVulkanMemoryModelFeaturesKHR',
-               'VkPhysicalDeviceYcbcrImageArraysFeaturesEXT',
-               'VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT',
-               'VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures',
-       ]
-
        # helper class used to encapsulate all data needed during generation
        class StructureDetail:
-               def __init__ (self, name):
-                       nameResult                      = re.search('(.*)Features(.*)', name[len('VkPhysicalDevice'):])
-                       nameSplitUp                     = ''
-                       # generate structure type name from structure name
-                       # note that sometimes digits are separated with '_':
-                       # VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT
-                       # but mostly they are not:
-                       # VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES
-                       specialCaseDict = {
-                               'FragmentDensityMap2'                   : ['FRAGMENT', 'DENSITY', 'MAP', '2'],
-                               'Ycbcr2Plane444Formats'                 : ['YCBCR', '2', 'PLANE', '444', 'FORMATS'],
-                               'ASTCDecode'                                    : ['ASTC', 'DECODE'],
-                               '4444Formats'                                   : ['4444', 'FORMATS'],
-                               'TextureCompressionASTCHDR'             : ['TEXTURE', 'COMPRESSION', 'ASTC', 'HDR'],
-                               'Synchronization2'                              : ['SYNCHRONIZATION', '2'],
-                               'ShaderAtomicFloat2'                    : ['SHADER', 'ATOMIC', 'FLOAT', '2'],
-                               'Robustness2'                                   : ['ROBUSTNESS', '2'],
-                               'Maintenance4'                                  : ['MAINTENANCE', '4'],
-                               'ExtendedDynamicState2'                 : ['EXTENDED', 'DYNAMIC', 'STATE', '2'],
-                       }
-                       nameSplitUp = specialCaseDict.get(nameResult.group(1))
-                       if nameSplitUp == None:
-                               nameSplit               = re.findall(r'[1-9A-Z]+(?:[a-z1-9]+|[A-Z]*(?=[A-Z]|$))', nameResult.group(1))
-                               nameSplitUp             = map(str.upper, nameSplit)
-                       nameSplitUp = list(nameSplitUp) + ['FEATURES']
-                       # check if there is extension suffix
-                       if (len(nameResult.group(2)) != 0):
-                               nameSplitUp.append(nameResult.group(2))
-                       self.name                       = name
-                       self.sType                      = 'VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_' + '_'.join(nameSplitUp)
-                       self.instanceName       = 'd' + name[11:]
-                       self.flagName           = 'is' + name[16:]
+               def __init__ (self, compositeObject):
+                       self.name                       = compositeObject.name
+                       self.sType                      = compositeObject.members[0].values
+                       self.instanceName       = 'd' + compositeObject.name[11:]
+                       self.flagName           = 'is' + compositeObject.name[16:]
                        self.extension          = None
                        self.api                        = None
                        self.major                      = None
                        self.minor                      = None
-                       self.members            = []
+                       structureMembers        = compositeObject.members[2:]
+                       self.members            = [m.name for m in structureMembers]
+
        # helper extension class used in algorith below
        class StructureFoundContinueToNextOne(Exception):
                pass
-       existingStructures = list(filter(structInAPI, testedStructures)) # remove features not found in API ( important for Vulkan SC )
-       testedStructureDetail = [StructureDetail(struct) for struct in existingStructures]
-       # iterate over all searched structures and find extensions that enable them
+
+       # find structures that extend VkPhysicalDeviceFeatures2
+       structures = [c for c in api.compositeTypes if c.structextends is not None and 'VkPhysicalDeviceFeatures2' in c.structextends]
+       # remove structures that were added by extensions other than KHR and EXT
+       testedStructures = []
+       for s in structures:
+               if all([postfix not in s.name for postfix in EXTENSION_POSTFIXES_VENDOR]):
+                       testedStructures.append(s)
+
+       existingStructures              = list(filter(structInAPI, testedStructures)) # remove features not found in API ( important for Vulkan SC )
+       testedStructureDetail   = [StructureDetail(struct) for struct in existingStructures]
+       # iterate over all searched structures and find extensions that enabled them
        for structureDetail in testedStructureDetail:
                try:
                        # iterate over all extensions
-                       for extension in api.extensions[1:]:
-                               # check composite types and typedefs in case extension is part of core
-                               for structureList in [extension.compositeTypes, extension.typedefs]:
-                                       # iterate over all structures added by extension
-                                       for extensionStructure in structureList:
-                                               # compare checked structure name to name of structure from extension
-                                               if structureDetail.name == extensionStructure.name:
+                       for extension in api.extensions:
+                               for requirement in extension.requirementsList:
+                                       for extensionStructure in requirement.newTypes:
+                                               if structureDetail.name == extensionStructure:
                                                        structureDetail.extension = extension.name
-                                                       if extension.versionInCore is not None:
-                                                               structureDetail.api   = extension.versionInCore[1]
-                                                               structureDetail.major = extension.versionInCore[2]
-                                                               structureDetail.minor = extension.versionInCore[3]
+                                                       if extension.promotedto is not None:
+                                                               versionSplit = extension.promotedto.split('_')
+                                                               structureDetail.api             = 0                                     # TODO handle this for Vulkan SC
+                                                               structureDetail.major   = versionSplit[-2]
+                                                               structureDetail.minor   = versionSplit[-1]
                                                        raise StructureFoundContinueToNextOne
                except StructureFoundContinueToNextOne:
                        continue
        for structureDetail in testedStructureDetail:
-               for compositeType in api.compositeTypes:
-                       if structureDetail.name != compositeType.name:
-                               continue
-                       structureMembers = compositeType.members[2:]
-                       structureDetail.members = [m.name for m in structureMembers]
+               if structureDetail.major is not None:
+                       continue
+               # if structure was not added with extension then check if
+               # it was added directly with one of vulkan versions
+               for feature in api.features:
+                       for requirement in feature.requirementsList:
+                               if structureDetail.name in requirement.typeList:
+                                       versionSplit = feature.name.split('_')
+                                       structureDetail.api             = 0                                                     # TODO handle this for Vulkan SC
+                                       structureDetail.major   = versionSplit[-2]
+                                       structureDetail.minor   = versionSplit[-1]
+                                       break
                        if structureDetail.major is not None:
                                break
-                       # if structure was not added with extension then check if
-                       # it was added directly with one of vulkan versions
-                       apiVersion = compositeType.apiVersion
-                       if apiVersion is None:
-                               continue
-                       structureDetail.api   = apiVersion.api
-                       structureDetail.major = apiVersion.major
-                       structureDetail.minor = apiVersion.minor
-                       break
        # generate file content
        structureDefinitions = []
        featureEnabledFlags = []
@@ -2230,63 +2098,73 @@ void addSeparateFeatureTests (tcu::TestCaseGroup* testGroup)
        # write out
        writeInlFile(filename, INL_HEADER, stream)
 
-def generateDeviceFeaturesDefs(apiName, src):
-       # look for definitions
-       ptrnSType       = r'VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_(\w+)_FEATURES(\w*)\s*='
-       matches         = re.findall(ptrnSType, src, re.M)
-       matches         = sorted(matches, key=lambda m: m[0])
-       # hardcoded list of core extensions having features and missing from Vulkan SC
-       missingVulkanSCExt = \
-               '#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME \"VK_KHR_16bit_storage\"\n' \
-               '#define VK_KHR_8BIT_STORAGE_EXTENSION_NAME \"VK_KHR_8bit_storage\"\n' \
-               '#define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME \"VK_KHR_buffer_device_address\"\n' \
-               '#define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME \"VK_EXT_descriptor_indexing\"\n' \
-               '#define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME \"VK_EXT_host_query_reset\"\n' \
-               '#define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME \"VK_KHR_imageless_framebuffer\"\n' \
-               '#define VK_KHR_MULTIVIEW_EXTENSION_NAME   \"VK_KHR_multiview\"\n' \
-               '#define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME \"VK_KHR_sampler_ycbcr_conversion\"\n' \
-               '#define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME \"VK_EXT_scalar_block_layout\"\n' \
-               '#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME \"VK_KHR_separate_depth_stencil_layouts\"\n' \
-               '#define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME \"VK_KHR_shader_atomic_int64\"\n' \
-               '#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME \"VK_KHR_shader_draw_parameters\"\n' \
-               '#define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME \"VK_KHR_shader_float16_int8\"\n' \
-               '#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME \"VK_KHR_shader_subgroup_extended_types\"\n' \
-               '#define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME \"VK_KHR_timeline_semaphore\"\n' \
-               '#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME \"VK_KHR_uniform_buffer_standard_layout\"\n' \
-               '#define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME \"VK_KHR_variable_pointers\"\n' \
-               '#define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME \"VK_KHR_vulkan_memory_model\"\n'
-       # construct final list
-       defs = []
-       for sType, sSuffix in matches:
-               structName                      = re.sub("[_0-9][a-z]", lambda match: match.group(0).upper(), sType.capitalize()).replace('_', '')
-               ptrnStructName          = r'\s*typedef\s+struct\s+(VkPhysicalDevice' + structName + 'Features' + sSuffix.replace('_', '') + ')'
-               matchStructName         = re.search(ptrnStructName, src, re.IGNORECASE)
-               if matchStructName:
-                       # handle special cases
-                       if sType == "EXCLUSIVE_SCISSOR":
-                               sType = "SCISSOR_EXCLUSIVE"
-                       elif sType == "ASTC_DECODE":
-                               sType = "ASTC_DECODE_MODE"
-                       elif sType == "MAINTENANCE_4":
-                               sType = "MAINTENANCE4"
-                       elif sType == "YCBCR_2_PLANE_444_FORMATS":
-                               sType = "YCBCR_2PLANE_444_FORMATS"
-                       elif sType in {'VULKAN_1_1', 'VULKAN_1_2', 'VULKAN_1_3'}:
-                               continue
-                       elif sType == 'RASTERIZATION_ORDER_ATTACHMENT_ACCESS':
-                               # skip case that has const pNext pointer
+def generateDeviceFeaturesOrPropertiesDefs(api, FeaturesOrProperties):
+       assert(FeaturesOrProperties in ['Features', 'Properties'])
+       defs                                                            = []
+       foundStructureEnums                                     = []
+       structureEnumPattern                            = f'VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_(\w+)_{FeaturesOrProperties.upper()}(\w+)'
+       structureEnumPatternNotExtension        = structureEnumPattern[:-5] + '$'
+       structureTypePattern                            = f'VkPhysicalDevice(\w+){FeaturesOrProperties}(\w+)'
+       structureTypePatternNotExtension        = structureTypePattern[:-5] + '$'
+       structureTypeToSkipPattern                      = f'VkPhysicalDeviceVulkan\d\d{FeaturesOrProperties}'
+       # iterate over all extensions to find extension that adds enum value matching pattern;
+       # this will always be in first requirement section
+       for ext in api.extensions:
+               # skip extensions that were promoted to other extensions (not vk version)
+               if ext.promotedto is not None and "VK_VERSION" not in ext.promotedto:
+                       continue
+               allExtendedEnums = ext.requirementsList[0].extendedEnums
+               for extendedEnum in allExtendedEnums:
+                       matchedStructEnum = re.search(structureEnumPattern, extendedEnum.name, re.IGNORECASE)
+                       if matchedStructEnum:
+                               # find feature/property structure type name
+                               structureTypeName = ""
+                               for st in ext.requirementsList[0].newTypes:
+                                       matchedStructType = re.search(structureTypePattern, st, re.IGNORECASE)
+                                       if matchedStructType:
+                                               structureTypeName = st
+                                               break
+                               # iterate over all composite types to check if structureTypeName is not alias
+                               # this handles case where extension was promoted and with it feature/property structure
+                               for ct in api.compositeTypes:
+                                       if structureTypeName in ct.aliasList:
+                                               structureTypeName = ct.name
+                                               break
+                               # meke sure that structure was not added earlier - this handles special
+                               # cases like VkPhysicalDeviceIDPropertiesKHR added by 3 extensions
+                               if len([d for d in defs if d[3] == structureTypeName]) > 0:
+                                       continue
+                               # special case for VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR that
+                               # contains both 'Properties' and 'Features' at the end - skip it for Properties
+                               if FeaturesOrProperties == 'Properties' and 'Features' in structureTypeName:
+                                       foundStructureEnums.append(matchedStructEnum.group(1))
+                                       continue
+                               # there are cases like VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD
+                               # where 2 is after PROPERTIES - to handle this we need to split suffix to two parts
+                               sSuffix         = matchedStructEnum.group(2)
+                               sVerSuffix      = ''
+                               sExtSuffix      = sSuffix
+                               suffixStart = sSuffix.rfind('_')
+                               if suffixStart > 0:
+                                       sVerSuffix = sSuffix[:suffixStart]
+                                       sExtSuffix = sSuffix[suffixStart:]
+                               foundStructureEnums.append(matchedStructEnum.group(1))
+                               defs.append( (matchedStructEnum.group(1), sVerSuffix, sExtSuffix, structureTypeName,\
+                                                         ext.name, allExtendedEnums[1].name, allExtendedEnums[0].name) )
+                               # accept single feature/property structure per extension - this also handles cases
+                               # like VK_KHR_variable_pointers which specify feature structure and its alias
+                               break
+
+       # iterate over all structures to find Feature/Property structures that were not added with extension
+       # but with vulkan version; to do that we need to skip extension part from pattern
+       for ct in api.compositeTypes:
+               matchedStructType = re.search(structureTypePatternNotExtension, ct.name, re.IGNORECASE)
+               if matchedStructType:
+                       if ct.members[0].name != "sType":
                                continue
-                       # end handling special cases
-                       ptrnExtensionName       = r'^\s*#define\s+(\w+' + sSuffix + '_' + sType + '_EXTENSION_NAME).+$'
-                       matchExtensionName      = re.search(ptrnExtensionName, src, re.M)
-                       if matchExtensionName is None and apiName=='SC':
-                               matchExtensionName      = re.search(ptrnExtensionName, missingVulkanSCExt, re.M)
-                       ptrnSpecVersion         = r'^\s*#define\s+(\w+' + sSuffix + '_' + sType + '_SPEC_VERSION).+$'
-                       matchSpecVersion        = re.search(ptrnSpecVersion, src, re.M)
-                       defs.append( (sType, '', sSuffix, matchStructName.group(1), \
-                                                       matchExtensionName.group(0)     if matchExtensionName   else None,
-                                                       matchExtensionName.group(1)     if matchExtensionName   else None,
-                                                       matchSpecVersion.group(1)       if matchSpecVersion             else '0') )
+                       matchedStructEnum = re.search(structureEnumPatternNotExtension, ct.members[0].values, re.IGNORECASE)
+                       if (matchedStructEnum.group(1) not in foundStructureEnums) and (re.match(structureTypeToSkipPattern, ct.name) == None):
+                               defs.append( (matchedStructEnum.group(1), '', '', ct.name, None, None, '0') )
        return defs
 
 def generateDevicePropertiesDefs(apiName, src):
@@ -2327,16 +2205,6 @@ def generateDevicePropertiesDefs(apiName, src):
                matchStructName         = re.search(ptrnStructName, src, re.M)
                if matchStructName:
                        extType = sType
-                       if extType == "DISCARD_RECTANGLE":
-                               extType = "DISCARD_RECTANGLES"
-                       elif extType == "DRIVER":
-                               extType = "DRIVER_PROPERTIES"
-                       elif extType == "POINT_CLIPPING":
-                               extType = "MAINTENANCE_2"
-                       elif extType == "SHADER_CORE":
-                               extType = "SHADER_CORE_PROPERTIES"
-                       elif extType == "DRM":
-                               extType = "PHYSICAL_DEVICE_DRM"
                        if apiName == 'SC':
                                if extType == "MAINTENANCE_3":
                                        extType = "MAINTENANCE3"
@@ -2382,8 +2250,6 @@ def writeDeviceFeatures(api, dfDefs, filename):
                # skip structures that were previously identified as blobs
                if blobPattern.match(structureType.name):
                        continue
-               if structureType.isAlias:
-                       continue
                # skip sType and pNext and just grab third and next attributes
                structureMembers = structureType.members[2:]
                notPartOfBlob = True
@@ -2417,31 +2283,21 @@ def writeDeviceFeatures(api, dfDefs, filename):
        extensionDefines = []
        makeFeatureDescDefinitions = []
        featureStructWrappers = []
-       for idx, (sType, sVerSuffix, sExtSuffix, extStruct, extLine, extName, specVer) in enumerate(dfDefs):
-               extensionNameDefinition = extName
+       for idx, (sType, sVerSuffix, sExtSuffix, extStruct, extName, extNameDef, specVersionDef) in enumerate(dfDefs):
+               extensionNameDefinition = extNameDef
                if not extensionNameDefinition:
                        extensionNameDefinition = 'DECL{0}_{1}_EXTENSION_NAME'.format((sExtSuffix if sExtSuffix else ''), sType)
                # construct defines with names
-               if extLine:
-                       extensionDefines.append(extLine)
+               if extName:
+                       extensionDefines.append(f'#define {extNameDef} \"{extName}\"')
                else:
-                       extensionDefines.append('#define {0} "not_existent_feature"'.format(extensionNameDefinition))
-               # handle special cases
-               if sType == "SCISSOR_EXCLUSIVE":
-                       sType = "EXCLUSIVE_SCISSOR"
-               elif sType == "ASTC_DECODE_MODE":
-                       sType = "ASTC_DECODE"
-               elif sType == "MAINTENANCE4":
-                       sType = "MAINTENANCE_4"
-               elif sType == "YCBCR_2PLANE_444_FORMATS":
-                       sType = "YCBCR_2_PLANE_444_FORMATS"
-               # end handling special cases
+                       extensionDefines.append(f'#define {extensionNameDefinition} "not_existent_feature"')
                # construct makeFeatureDesc template function definitions
                sTypeName = "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_{0}_FEATURES{1}".format(sType, sVerSuffix + sExtSuffix)
                makeFeatureDescDefinitions.append("template<> FeatureDesc makeFeatureDesc<{0}>(void) " \
-                       "{{ return FeatureDesc{{{1}, {2}, {3}, {4}}}; }}".format(extStruct, sTypeName, extensionNameDefinition, specVer, len(dfDefs)-idx))
+                       "{{ return FeatureDesc{{{1}, {2}, {3}, {4}}}; }}".format(extStruct, sTypeName, extensionNameDefinition, specVersionDef, len(dfDefs)-idx))
                # construct CreateFeatureStruct wrapper block
-               featureStructWrappers.append("\t{{ createFeatureStructWrapper<{0}>, {1}, {2} }},".format(extStruct, extensionNameDefinition, specVer))
+               featureStructWrappers.append("\t{{ createFeatureStructWrapper<{0}>, {1}, {2} }},".format(extStruct, extensionNameDefinition, specVersionDef))
        # construct function that will check for which vk version structure sType is part of blob
        blobChecker = "deUint32 getBlobFeaturesVersion (VkStructureType sType)\n{\n" \
                                  "\tconst std::map<VkStructureType, deUint32> sTypeBlobMap\n" \
@@ -2454,20 +2310,17 @@ def writeDeviceFeatures(api, dfDefs, filename):
                structuresList = sorted(structuresList, key=lambda s: s.name)
                for structType in structuresList:
                        # find definition of this structure in dfDefs
-                       structName = structType.name
-                       # handle special cases
-                       if structName == 'VkPhysicalDeviceShaderDrawParameterFeatures':
-                               structName = 'VkPhysicalDeviceShaderDrawParametersFeatures'
-                       # end handling special cases
-                       structDef = [s for s in dfDefs if s[3] == structName][0]
+                       structDef = None
+                       allNamesToCheck = [structType.name]
+                       if len(structType.aliasList) > 0:
+                               allNamesToCheck.extend(structType.aliasList)
+                       for structName in allNamesToCheck:
+                               structDefList = [s for s in dfDefs if s[3] == structName]
+                               if len(structDefList) > 0:
+                                       structDef = structDefList[0]
+                                       break
                        sType = structDef[0]
                        sSuffix = structDef[1] + structDef[2]
-                       # handle special cases
-                       if sType == "SCISSOR_EXCLUSIVE":
-                               sType = "EXCLUSIVE_SCISSOR"
-                       elif sType == "MAINTENANCE4":
-                               sType = "MAINTENANCE_4"
-                       # end handling special cases
                        sTypeName = "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_{0}_FEATURES{1}".format(sType, sSuffix)
                        tabs = "\t" * int((88 - len(sTypeName)) / 4)
                        blobChecker += "\t\t{{ {0},{1}VK_API_VERSION_{2}_{3} }},\n".format(sTypeName, tabs, blobName[0], blobName[1])
@@ -2507,9 +2360,6 @@ def writeDeviceFeatureTest(apiName, api, filename):
                # skip structures that are not feature structures
                if not allFeaturesPattern.match(structureType.name):
                        continue
-               # skip alias structures
-               if structureType.isAlias:
-                       continue
                # skip sType and pNext and just grab third and next attributes
                structureMembers = structureType.members[2:]
 
@@ -2607,8 +2457,6 @@ def writeDeviceProperties(api, dpDefs, filename):
                # skip structures that were previously identified as blobs
                if blobPattern.match(structureType.name):
                        continue
-               if structureType.isAlias:
-                       continue
                # skip sType and pNext and just grab third and next attributes
                structureMembers = structureType.members[2:]
                notPartOfBlob = True
@@ -2624,7 +2472,7 @@ def writeDeviceProperties(api, dpDefs, filename):
                                # add specialization for this property structure
                                memberCopying = ""
                                for member in structureMembers:
-                                       if not member.arraySize:
+                                       if len(member.arraySizeList) == 0:
                                                # handle special case
                                                if structureType.name == "VkPhysicalDeviceSubgroupProperties" and "subgroup" not in member.name :
                                                        blobMemberName = "subgroup" + member.name[0].capitalize() + member.name[1:]
@@ -2633,7 +2481,7 @@ def writeDeviceProperties(api, dpDefs, filename):
                                                else:
                                                        memberCopying += "\tpropertyType.{0} = allPropertiesBlobs.vk{1}.{0};\n".format(member.name, blobName)
                                        else:
-                                               memberCopying += "\tmemcpy(propertyType.{0}, allPropertiesBlobs.vk{1}.{0}, sizeof({2}) * {3});\n".format(member.name, blobName, member.type[0], member.arraySize[1:-1])
+                                               memberCopying += "\tmemcpy(propertyType.{0}, allPropertiesBlobs.vk{1}.{0}, sizeof({2}) * {3});\n".format(member.name, blobName, member.type, member.arraySizeList[0])
                                wholeFunction = \
                                        "template<> void initPropertyFromBlob<{0}>({0}& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)\n" \
                                        "{{\n" \
@@ -2651,21 +2499,21 @@ def writeDeviceProperties(api, dpDefs, filename):
        extensionDefines = []
        makePropertyDescDefinitions = []
        propertyStructWrappers = []
-       for idx, (sType, sVerSuffix, sExtSuffix, extStruct, extLine, extName, specVer) in enumerate(dpDefs):
-               extensionNameDefinition = extName
+       for idx, (sType, sVerSuffix, sExtSuffix, extStruct, extName, extNameDef, specVersionDef) in enumerate(dpDefs):
+               extensionNameDefinition = extNameDef
                if not extensionNameDefinition:
                        extensionNameDefinition = 'DECL{0}_{1}_EXTENSION_NAME'.format((sExtSuffix if sExtSuffix else ''), sType)
                # construct defines with names
-               if extLine:
-                       extensionDefines.append(extLine)
+               if extName:
+                       extensionDefines.append(f'#define {extNameDef} \"{extName}\"')
                else:
-                       extensionDefines.append('#define {0} "core_property"'.format(extensionNameDefinition))
+                       extensionDefines.append(f'#define {extensionNameDefinition} "core_property"')
                # construct makePropertyDesc template function definitions
                sTypeName = "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_{0}_PROPERTIES{1}".format(sType, sVerSuffix + sExtSuffix)
                makePropertyDescDefinitions.append("template<> PropertyDesc makePropertyDesc<{0}>(void) " \
-                       "{{ return PropertyDesc{{{1}, {2}, {3}, {4}}}; }}".format(extStruct, sTypeName, extensionNameDefinition, specVer, len(dpDefs)-idx))
+                       "{{ return PropertyDesc{{{1}, {2}, {3}, {4}}}; }}".format(extStruct, sTypeName, extensionNameDefinition, specVersionDef, len(dpDefs)-idx))
                # construct CreateProperty struct wrapper block
-               propertyStructWrappers.append("\t{{ createPropertyStructWrapper<{0}>, {1}, {2} }},".format(extStruct, extensionNameDefinition, specVer))
+               propertyStructWrappers.append("\t{{ createPropertyStructWrapper<{0}>, {1}, {2} }},".format(extStruct, extensionNameDefinition, specVersionDef))
        # construct method that will check if structure sType is part of blob
        blobChecker = "deUint32 getBlobPropertiesVersion (VkStructureType sType)\n{\n" \
                                  "\tconst std::map<VkStructureType, deUint32> sTypeBlobMap\n" \
@@ -2679,11 +2527,20 @@ def writeDeviceProperties(api, dpDefs, filename):
                for structType in structuresList:
                        # find definition of this structure in dpDefs
                        structName = structType.name
-                       structDef = [s for s in dpDefs if s[3] == structName][0]
+                       structDef = None
+                       foundDefs = [s for s in dpDefs if s[3] == structName]
+                       if len(foundDefs) > 0:
+                               structDef = foundDefs[0]
+                       else:
+                               for alias in structType.aliasList:
+                                       foundDefs = [s for s in dpDefs if s[3] == alias]
+                                       if len(foundDefs) > 0:
+                                               structDef = foundDefs[0]
+                                               break
                        sType = structDef[0]
                        sSuffix = structDef[1] + structDef[2]
                        sTypeName = "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_{0}_PROPERTIES{1}".format(sType, sSuffix)
-                       tabs = "\t" * int((76 - len(sTypeName)) / 4)
+                       tabs = "\t" * int((80 - len(sTypeName)) / 4)
                        blobChecker += "\t\t{{ {0},{1}VK_API_VERSION_{2}_{3} }},\n".format(sTypeName, tabs, blobName[0], blobName[1])
        blobChecker += "\t};\n\n" \
                                   "\tauto it = sTypeBlobMap.find(sType);\n" \
@@ -2756,6 +2613,9 @@ def writeMandatoryFeatures(api, filename):
                for c in api.compositeTypes:
                        if c.name == name:
                                return True
+                       for alias in c.aliasList:
+                               if alias == name:
+                                       return True
                return False
        stream = []
 
@@ -2847,7 +2707,6 @@ def writeMandatoryFeatures(api, filename):
                                   '\tbool result = true;',
                                   ''])
 
-
        for v in dictData:
                if not structInAPI(v[0]): # remove items not defined in current API ( important for Vulkan SC )
                        continue
@@ -2940,6 +2799,84 @@ def writeExtensionList(apiName, api, filename, extensionType):
        stream.append('};\n')
        writeInlFile(filename, INL_HEADER, stream)
 
+def writeApiExtensionDependencyInfo(api, filename):
+
+       def isExtensionInCore(ext, apiMajor, apiMinor):
+               if ext.promotedto is None:
+                       return False
+               if 'VK_VERSION' not in ext.promotedto:
+                       return False
+               extMajor = ext.promotedto[-3]
+               extMinor = ext.promotedto[-1]
+               if apiMajor > extMajor:
+                       return True
+               if apiMajor == extMajor and apiMinor >= extMinor:
+                       return True
+               return False
+
+       def genExtDepArray(extType):
+               yield 'static const std::tuple<deUint32, deUint32, deUint32, const char*, const char*>\t{}ExtensionDependencies[]\t='.format(extType)
+               yield '{'
+               allApiVersions = [f.number for f in api.features]
+               # iterate over all extension that are of specified type and that have requirements
+               for ext in api.extensions:
+                       if ext.type != extType:
+                               continue
+                       if ext.requiredExtensions is None:
+                               continue
+                       apiVariant = '0'
+                       # iterate over all api versions
+                       for apiVersion in allApiVersions:
+                               major, minor = apiVersion.split('.')
+                               if ext.requiresCore is not None:
+                                       requiresCoreMajor, requiresCoreMinor = ext.requiresCore.split('.')
+                                       if major < requiresCoreMajor or  minor < requiresCoreMinor:
+                                               continue
+                               if isExtensionInCore(ext, major, minor):
+                                       continue
+                               # iterate over all requirements and add to the list those that are
+                               # applicable for currently processed api version
+                               for r in ext.requiredExtensions:
+                                       # find required extension and make sure it is not part of core for this or previous api version
+                                       requiredExtensionList = [re for re in api.extensions if re.name == r]
+                                       if len(requiredExtensionList) > 0:
+                                               requiredExtension = requiredExtensionList[0]
+                                               if isExtensionInCore(requiredExtension, major, minor):
+                                                       continue
+                                       yield '\tstd::make_tuple({}, {}, {}, "{}", "{}"),'.format(apiVariant, major, minor, ext.name, r)
+               yield '};'
+
+       def genApiVersions():
+               yield 'static const std::tuple<deUint32, deUint32, deUint32, deUint32>\treleasedApiVersions[]\t='
+               yield '{'
+               for f in reversed(api.features):
+                       apiVariant = '0' if f.api == 'vulkan' else '1'
+                       major, minor = f.number.split('.')
+                       version = (int(apiVariant) << 29) | (int(major) << 22) | (int(minor) << 12)
+                       yield '\tstd::make_tuple({}, {}, {}, {}),'.format(version, apiVariant, major, minor)
+               yield '};'
+
+       def genRequiredCoreVersions():
+               yield 'static const std::tuple<deUint32, deUint32, const char*>\textensionRequiredCoreVersion[]\t ='
+               yield '{'
+               for ext in api.extensions:
+                       # skip video extensions
+                       if 'vulkan_video_' in ext.name:
+                               continue
+                       major, minor = '1', '0'
+                       if ext.requiresCore is not None:
+                               major, minor = ext.requiresCore.split('.')
+                       yield '\tstd::make_tuple({}, {}, "{}"),'.format(major, minor, ext.name)
+               yield '};'
+
+       stream = []
+       stream.extend(genExtDepArray('instance'))
+       stream.extend(genExtDepArray('device'))
+       stream.extend(genApiVersions())
+       stream.extend(genRequiredCoreVersions())
+
+       writeInlFile(filename, INL_HEADER, stream)
+
 def parseCmdLineArgs():
        parser = argparse.ArgumentParser(description = "Generate Vulkan INL files",
                                                                         formatter_class=argparse.ArgumentDefaultsHelpFormatter)
@@ -2955,104 +2892,47 @@ def parseCmdLineArgs():
                                                help="Choose output directory")
        return parser.parse_args()
 
-def preprocessTopInclude(src, dir):
-       pattern = r'#include\s+"([^\n]+)"'
-       while True:
-               inc = re.search(pattern, src)
-               if inc is None:
-                       return src
-               incFileName = inc.string[inc.start(1):inc.end(1)]
-               patternIncNamed = r'#include\s+"' + incFileName + '"'
-               incBody = readFile(os.path.join(dir, incFileName)) if incFileName != 'vk_platform.h' else ''
-               incBodySanitized = re.sub(pattern, '', incBody)
-               bodyEndSanitized = re.sub(patternIncNamed, '', src[inc.end(0):])
-               src = src[0:inc.start(0)] + incBodySanitized + bodyEndSanitized
-       return src
-
 if __name__ == "__main__":
        args = parseCmdLineArgs()
 
-       outputPath = DEFAULT_OUTPUT_DIR[args.api]
        # if argument was specified it is interpreted as a path to which .inl files will be written
-       if args.outdir != '':
-               outputPath = args.outdir
+       outputPath = DEFAULT_OUTPUT_DIR[args.api] if args.outdir == '' else args.outdir
+
+       currentDir = os.getcwd()
+       api = API()
 
-       files = []
-       src = ""
        if args.api == '':
 
-               # Generate vulkan headers from vk.xml
-               currentDir                      = os.getcwd()
-               pythonExecutable        = sys.executable or "python"
-               os.chdir(os.path.join(VULKAN_HEADERS_INCLUDE_DIR, "..", "xml"))
-               vkTargets = [
-                       "vulkan_android.h",
-                       "vulkan_beta.h",
-                       "vulkan_core.h",
-                       "vulkan_fuchsia.h",
-                       "vulkan_ggp.h",
-                       "vulkan_ios.h",
-                       "vulkan_macos.h",
-                       "vulkan_metal.h",
-                       "vulkan_vi.h",
-                       "vulkan_wayland.h",
-                       "vulkan_win32.h",
-                       "vulkan_xcb.h",
-                       "vulkan_xlib.h",
-                       "vulkan_xlib_xrandr.h",
-               ]
-               for target in vkTargets:
-                       execute([pythonExecutable, "../scripts/genvk.py", "-o", "../include/vulkan", target])
-
-               videoDir = "../include/vk_video"
-               if (not os.path.isdir(videoDir)):
-                       os.mkdir(videoDir)
-
-               videoTargets = [
-                       'vulkan_video_codecs_common.h',
-                       'vulkan_video_codec_h264std.h',
-                       'vulkan_video_codec_h264std_decode.h',
-                       'vulkan_video_codec_h264std_encode.h',
-                       'vulkan_video_codec_h265std.h',
-                       'vulkan_video_codec_h265std_decode.h',
-                       'vulkan_video_codec_h265std_encode.h',
-               ]
-               for target in videoTargets:
-                       execute([pythonExecutable, "../scripts/genvk.py", "-registry", "video.xml", "-o", videoDir, target])
-
-               os.chdir(currentDir)
-
-               # Read all .h files and make sure vulkan_core.h is first out of vulkan files
-               vkTargets.remove("vulkan_core.h")
-               vkTargets.sort()
-               vkTargets.insert(0, "vulkan_core.h")
-               vkFilesWithCatalog = [os.path.join("vulkan", f) for f in vkTargets]
-
-               for file in vkFilesWithCatalog:
-                       src += preprocessTopInclude(readFile(os.path.join(VULKAN_HEADERS_INCLUDE_DIR,file)), VULKAN_HEADERS_INCLUDE_DIR)
-       elif args.api=='SC':
-               # At the moment vulkan-docs does not have vulkan_sc_core.h. We will use a file from external/vulkancts/scripts/src
-               src = preprocessTopInclude(readFile(os.path.join(os.path.dirname(__file__), "src", "vulkan_sc_core.h" )), VULKAN_HEADERS_INCLUDE_DIR)
+               # Read vk.xml and generate vulkan headers from it
+               os.chdir(VULKAN_XML_DIR)
+               api.build( etree.parse("vk.xml") )
+               api.build( etree.parse("video.xml") )
+               api.postProcess()
 
-       src = re.sub('\s*//[^\n]*', '', src)
-       src = re.sub('\n\n', '\n', src)
+       elif args.api=='SC':
+               # At the moment structure of vk.xml for Vulkan SC is not final.
+               # For time being we will use old version of gen_framework script that
+               # was saved as gen_framework_sc (it still parses vulkan_sc_core.h)
+               os.chdir(os.path.dirname(__file__))
+               pythonExecutable = sys.executable or "python"
+               execute([pythonExecutable, "gen_framework_sc.py", "--api", "SC"])
+               exit (0)
 
-       api                             = parseAPI(src)
+       os.chdir(currentDir)
 
        platformFuncs   = [Function.TYPE_PLATFORM]
        instanceFuncs   = [Function.TYPE_INSTANCE]
        deviceFuncs             = [Function.TYPE_DEVICE]
 
-       dfd                                                                             = generateDeviceFeaturesDefs(args.api, src)
+       dfd                                                                             = generateDeviceFeaturesOrPropertiesDefs(api, 'Features')
        writeDeviceFeatures                                             (api, dfd, os.path.join(outputPath, "vkDeviceFeatures.inl"))
        writeDeviceFeaturesDefaultDeviceDefs    (dfd, os.path.join(outputPath, "vkDeviceFeaturesForDefaultDeviceDefs.inl"))
        writeDeviceFeaturesContextDecl                  (dfd, os.path.join(outputPath, "vkDeviceFeaturesForContextDecl.inl"))
        writeDeviceFeaturesContextDefs                  (dfd, os.path.join(outputPath, "vkDeviceFeaturesForContextDefs.inl"))
        writeDeviceFeatureTest                                  (args.api, api, os.path.join(outputPath, "vkDeviceFeatureTest.inl"))
 
-       dpd                                                                             = generateDevicePropertiesDefs(args.api, src)
+       dpd                                                                             = generateDeviceFeaturesOrPropertiesDefs(api, 'Properties')
        writeDeviceProperties                                   (api, dpd, os.path.join(outputPath, "vkDeviceProperties.inl"))
-
        writeDevicePropertiesDefaultDeviceDefs  (dpd, os.path.join(outputPath, "vkDevicePropertiesForDefaultDeviceDefs.inl"))
        writeDevicePropertiesContextDecl                (dpd, os.path.join(outputPath, "vkDevicePropertiesForContextDecl.inl"))
        writeDevicePropertiesContextDefs                (dpd, os.path.join(outputPath, "vkDevicePropertiesForContextDefs.inl"))
@@ -3090,9 +2970,11 @@ if __name__ == "__main__":
        writeExtensionFunctions                                 (api, os.path.join(outputPath, "vkExtensionFunctions.inl"))
        writeDeviceFeatures2                                    (api, os.path.join(outputPath, "vkDeviceFeatures2.inl"))
        writeMandatoryFeatures                                  (api, os.path.join(outputPath, "vkMandatoryFeatures.inl"))
-       writeExtensionList                                              (args.api, api, os.path.join(outputPath, "vkInstanceExtensions.inl"),                           'instance')
-       writeExtensionList                                              (args.api, api, os.path.join(outputPath, "vkDeviceExtensions.inl"),                             'device')
-       writeDriverIds                                                  (args.api, os.path.join(outputPath, "vkKnownDriverIds.inl"))
+       writeExtensionList                                              (args.api, api, os.path.join(outputPath, "vkInstanceExtensions.inl"),   'instance')
+       writeExtensionList                                              (args.api, api, os.path.join(outputPath, "vkDeviceExtensions.inl"),             'device')
+       writeDriverIds                                                  (api, os.path.join(outputPath, "vkKnownDriverIds.inl"))
        writeObjTypeImpl                                                (api, os.path.join(outputPath, "vkObjTypeImpl.inl"))
+       writeApiExtensionDependencyInfo                 (api, os.path.join(outputPath, "vkApiExtensionDependencyInfo.inl"))
+
        # NOTE: when new files are generated then they should also be added to the
        # vk-gl-cts\external\vulkancts\framework\vulkan\CMakeLists.txt outputs list
index 95587e6..fa27d30 100644 (file)
@@ -27,16 +27,17 @@ import re
 
 sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "..", "scripts"))
 
-from build.common import DEQP_DIR
+from build.common import DEQP_DIR, execute
 from khr_util.format import writeInlFile
 
-VULKAN_H                       = { "" : [      os.path.join(os.path.dirname(__file__), "..", "..", "vulkan-docs", "src", "include", "vk_video", "vulkan_video_codecs_common.h"),
-                                                               os.path.join(os.path.dirname(__file__), "..", "..", "vulkan-docs", "src", "include", "vk_video", "vulkan_video_codec_h264std.h"),
-                                                               os.path.join(os.path.dirname(__file__), "..", "..", "vulkan-docs", "src", "include", "vk_video", "vulkan_video_codec_h264std_encode.h"),
-                                                               os.path.join(os.path.dirname(__file__), "..", "..", "vulkan-docs", "src", "include", "vk_video", "vulkan_video_codec_h265std.h"),
-                                                               os.path.join(os.path.dirname(__file__), "..", "..", "vulkan-docs", "src", "include", "vk_video", "vulkan_video_codec_h264std_decode.h"),
-                                                               os.path.join(os.path.dirname(__file__), "..", "..", "vulkan-docs", "src", "include", "vk_video", "vulkan_video_codec_h265std_decode.h"),
-                                                               os.path.join(os.path.dirname(__file__), "..", "..", "vulkan-docs", "src", "include", "vulkan", "vulkan_core.h") ],
+VULKAN_HEADERS_INCLUDE_DIR       = os.path.join(os.path.dirname(__file__), "..", "..", "vulkan-docs", "src", "include")
+VULKAN_H                       = { "" : [      os.path.join(VULKAN_HEADERS_INCLUDE_DIR, "vk_video", "vulkan_video_codecs_common.h"),
+                                                               os.path.join(VULKAN_HEADERS_INCLUDE_DIR, "vk_video", "vulkan_video_codec_h264std.h"),
+                                                               os.path.join(VULKAN_HEADERS_INCLUDE_DIR, "vk_video", "vulkan_video_codec_h264std_encode.h"),
+                                                               os.path.join(VULKAN_HEADERS_INCLUDE_DIR, "vk_video", "vulkan_video_codec_h265std.h"),
+                                                               os.path.join(VULKAN_HEADERS_INCLUDE_DIR, "vk_video", "vulkan_video_codec_h264std_decode.h"),
+                                                               os.path.join(VULKAN_HEADERS_INCLUDE_DIR, "vk_video", "vulkan_video_codec_h265std_decode.h"),
+                                                               os.path.join(VULKAN_HEADERS_INCLUDE_DIR, "vulkan", "vulkan_core.h") ],
                                                "SC" : [ os.path.join(os.path.dirname(__file__), "src", "vulkan_sc_core.h") ] }
 DEFAULT_OUTPUT_DIR     = { "" :        os.path.join(os.path.dirname(__file__), "..", "framework", "vulkan", "generated", "vulkan"),
                                                "SC" :  os.path.join(os.path.dirname(__file__), "..", "framework", "vulkan", "generated", "vulkansc") }
@@ -99,10 +100,36 @@ if __name__ == "__main__":
        args                                    = parseCmdLineArgs()
 
        outputPath = DEFAULT_OUTPUT_DIR[args.api]
-       # if argument was specified it is interpreted as a path to which .inl files will be written
+       # if argument was specified it is interpreted as a path to which .inl file will be written
        if args.outdir != '':
                outputPath = args.outdir
        src = ""
+
+       # Generate vulkan headers from vk.xml
+       currentDir                      = os.getcwd()
+       pythonExecutable        = sys.executable or "python"
+       os.chdir(os.path.join(VULKAN_HEADERS_INCLUDE_DIR, "..", "xml"))
+       vkTargets = ["vulkan_core.h"]
+       for target in vkTargets:
+               execute([pythonExecutable, "../scripts/genvk.py", "-o", "../include/vulkan", target])
+
+       videoDir = "../include/vk_video"
+       if (not os.path.isdir(videoDir)):
+               os.mkdir(videoDir)
+
+       videoTargets = [
+               'vulkan_video_codecs_common.h',
+               'vulkan_video_codec_h264std.h',
+               'vulkan_video_codec_h264std_decode.h',
+               'vulkan_video_codec_h264std_encode.h',
+               'vulkan_video_codec_h265std.h',
+               'vulkan_video_codec_h265std_decode.h',
+       ]
+       for target in videoTargets:
+               execute([pythonExecutable, "../scripts/genvk.py", "-registry", "video.xml", "-o", videoDir, target])
+
+       os.chdir(currentDir)
+
        for file in VULKAN_H[args.api]:
                src += readFile(file)
 
diff --git a/external/vulkancts/scripts/gen_framework_sc.py b/external/vulkancts/scripts/gen_framework_sc.py
new file mode 100644 (file)
index 0000000..33a1b30
--- /dev/null
@@ -0,0 +1,3098 @@
+# -*- coding: utf-8 -*-
+
+#-------------------------------------------------------------------------
+# Vulkan CTS
+# ----------
+#
+# Copyright (c) 2015 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#-------------------------------------------------------------------------
+
+import os
+import re
+import sys
+import copy
+import glob
+import json
+import argparse
+from itertools import chain
+from collections import OrderedDict
+
+sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "..", "scripts"))
+
+from build.common import DEQP_DIR, execute
+from khr_util.format import indentLines, writeInlFile
+
+VULKAN_HEADERS_INCLUDE_DIR     = os.path.join(os.path.dirname(__file__), "..", "..", "vulkan-docs", "src", "include")
+SCRIPTS_SRC_DIR                                = os.path.join(os.path.dirname(__file__), "src")
+DEFAULT_OUTPUT_DIR                     = { "" :        os.path.join(os.path.dirname(__file__), "..", "framework", "vulkan", "generated", "vulkan"),
+                                                               "SC" :  os.path.join(os.path.dirname(__file__), "..", "framework", "vulkan", "generated", "vulkansc") }
+
+INL_HEADER = """\
+/* WARNING: This is auto-generated file. Do not modify, since changes will
+ * be lost! Modify the generating script instead.
+ * This file was generated by /scripts/gen_framework.py
+ */\
+
+"""
+
+DEFINITIONS                    = [
+       ("VK_MAX_PHYSICAL_DEVICE_NAME_SIZE",    "size_t"),
+       ("VK_MAX_EXTENSION_NAME_SIZE",                  "size_t"),
+       ("VK_MAX_DRIVER_NAME_SIZE",                             "size_t"),
+       ("VK_MAX_DRIVER_INFO_SIZE",                             "size_t"),
+       ("VK_UUID_SIZE",                                                "size_t"),
+       ("VK_LUID_SIZE",                                                "size_t"),
+       ("VK_MAX_MEMORY_TYPES",                                 "size_t"),
+       ("VK_MAX_MEMORY_HEAPS",                                 "size_t"),
+       ("VK_MAX_DESCRIPTION_SIZE",                             "size_t"),
+       ("VK_MAX_DEVICE_GROUP_SIZE",                    "size_t"),
+       ("VK_ATTACHMENT_UNUSED",                                "uint32_t"),
+       ("VK_SUBPASS_EXTERNAL",                                 "uint32_t"),
+       ("VK_QUEUE_FAMILY_IGNORED",                             "uint32_t"),
+       ("VK_QUEUE_FAMILY_EXTERNAL",                    "uint32_t"),
+       ("VK_REMAINING_MIP_LEVELS",                             "uint32_t"),
+       ("VK_REMAINING_ARRAY_LAYERS",                   "uint32_t"),
+       ("VK_WHOLE_SIZE",                                               "vk::VkDeviceSize"),
+       ("VK_TRUE",                                                             "vk::VkBool32"),
+       ("VK_FALSE",                                                    "vk::VkBool32"),
+]
+
+PLATFORM_TYPES         = [
+       # VK_KHR_xlib_surface
+       (["Display","*"],                                               ["XlibDisplayPtr"],                             "void*"),
+       (["Window"],                                                    ["XlibWindow"],                                 "uintptr_t",),
+       (["VisualID"],                                                  ["XlibVisualID"],                               "uint32_t"),
+
+       # VK_KHR_xcb_surface
+       (["xcb_connection_t", "*"],                             ["XcbConnectionPtr"],                   "void*"),
+       (["xcb_window_t"],                                              ["XcbWindow"],                                  "uintptr_t"),
+       (["xcb_visualid_t"],                                    ["XcbVisualid"],                                "uint32_t"),
+
+       # VK_KHR_wayland_surface
+       (["struct", "wl_display","*"],                  ["WaylandDisplayPtr"],                  "void*"),
+       (["struct", "wl_surface", "*"],                 ["WaylandSurfacePtr"],                  "void*"),
+
+       # VK_KHR_mir_surface
+       (["MirConnection", "*"],                                ["MirConnectionPtr"],                   "void*"),
+       (["MirSurface", "*"],                                   ["MirSurfacePtr"],                              "void*"),
+
+       # VK_KHR_android_surface
+       (["ANativeWindow", "*"],                                ["AndroidNativeWindowPtr"],             "void*"),
+
+       # VK_KHR_win32_surface
+       (["HINSTANCE"],                                                 ["Win32InstanceHandle"],                "void*"),
+       (["HWND"],                                                              ["Win32WindowHandle"],                  "void*"),
+       (["HANDLE"],                                                    ["Win32Handle"],                                "void*"),
+       (["const", "SECURITY_ATTRIBUTES", "*"], ["Win32SecurityAttributesPtr"], "const void*"),
+       (["AHardwareBuffer", "*"],                              ["AndroidHardwareBufferPtr"],   "void*"),
+       (["HMONITOR"],                                                  ["Win32MonitorHandle"],                 "void*"),
+       (["LPCWSTR"],                                                   ["Win32LPCWSTR"],                               "const void*"),
+
+       # VK_EXT_acquire_xlib_display
+       (["RROutput"],                                                  ["RROutput"],                                   "void*"),
+
+       (["zx_handle_t"],                                               ["zx_handle_t"],                                "uint32_t"),
+       (["GgpFrameToken"],                                             ["GgpFrameToken"],                              "int32_t"),
+       (["GgpStreamDescriptor"],                               ["GgpStreamDescriptor"],                "int32_t"),
+       (["CAMetalLayer"],                                              ["CAMetalLayer"],                               "void*"),
+
+       # VK_EXT_metal_objects
+       (["MTLDevice_id"],                                              ["MTLDevice_id"],                               "void*"),
+       (["MTLCommandQueue_id"],                                ["MTLCommandQueue_id"],                 "void*"),
+       (["MTLBuffer_id"],                                              ["MTLBuffer_id"],                               "void*"),
+       (["MTLTexture_id"],                                             ["MTLTexture_id"],                              "void*"),
+       (["IOSurfaceRef"],                                              ["IOSurfaceRef"],                               "void*"),
+       (["MTLSharedEvent_id"],                                 ["MTLSharedEvent_id"],                  "void*"),
+]
+
+PLATFORM_TYPE_NAMESPACE        = "pt"
+
+TYPE_SUBSTITUTIONS             = [
+       # Platform-specific
+       ("DWORD",               "uint32_t"),
+       ("HANDLE*",             PLATFORM_TYPE_NAMESPACE + "::" + "Win32Handle*"),
+]
+
+EXTENSION_POSTFIXES                            = ["KHR", "EXT", "NV", "NVX", "KHX", "NN", "MVK", "FUCHSIA", "GGP", "AMD", "QNX"]
+EXTENSION_POSTFIXES_STANDARD   = ["KHR", "EXT"]
+
+def prefixName (prefix, name):
+       name = re.sub(r'([a-z0-9])([A-Z])', r'\1_\2', name[2:])
+       name = re.sub(r'([a-zA-Z])([0-9])', r'\1_\2', name)
+       name = name.upper()
+
+       name = name.replace("YCB_CR_", "YCBCR_")
+       name = name.replace("WIN_32_", "WIN32_")
+       name = name.replace("8_BIT_", "8BIT_")
+       name = name.replace("16_BIT_", "16BIT_")
+       name = name.replace("INT_64_", "INT64_")
+       name = name.replace("D_3_D_12_", "D3D12_")
+       name = name.replace("IOSSURFACE_", "IOS_SURFACE_")
+       name = name.replace("MAC_OS", "MACOS_")
+       name = name.replace("TEXTURE_LOD", "TEXTURE_LOD_")
+       name = name.replace("VIEWPORT_W", "VIEWPORT_W_")
+       name = name.replace("_IDPROPERTIES", "_ID_PROPERTIES")
+       name = name.replace("PHYSICAL_DEVICE_SHADER_FLOAT_16_INT_8_FEATURES", "PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES")
+       name = name.replace("PHYSICAL_DEVICE_RGBA_10_X_6_FORMATS_FEATURES_EXT", "PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT")
+       name = name.replace("_PCIBUS_", "_PCI_BUS_")
+       name = name.replace("ASTCD", "ASTC_D")
+       name = name.replace("AABBNV", "AABB_NV")
+       name = name.replace("IMAGE_PIPE", "IMAGEPIPE")
+       name = name.replace("SMBUILTINS", "SM_BUILTINS")
+       name = name.replace("ASTCHDRFEATURES", "ASTC_HDR_FEATURES")
+       name = name.replace("UINT_8", "UINT8")
+       name = name.replace("VULKAN_11_FEATURES", "VULKAN_1_1_FEATURES")
+       name = name.replace("VULKAN_11_PROPERTIES", "VULKAN_1_1_PROPERTIES")
+       name = name.replace("VULKAN_12_FEATURES", "VULKAN_1_2_FEATURES")
+       name = name.replace("VULKAN_12_PROPERTIES", "VULKAN_1_2_PROPERTIES")
+       name = name.replace("VULKAN_13_FEATURES", "VULKAN_1_3_FEATURES")
+       name = name.replace("VULKAN_13_PROPERTIES", "VULKAN_1_3_PROPERTIES")
+       name = name.replace("VULKAN_SC_10_FEATURES", "VULKAN_SC_1_0_FEATURES")
+       name = name.replace("VULKAN_SC_10_PROPERTIES", "VULKAN_SC_1_0_PROPERTIES")
+       name = name.replace("INT_8_", "INT8_")
+       name = name.replace("AABBNV", "AABB_NV")
+       name = name.replace("_H_264_", "_H264_")
+       name = name.replace("_H_265_", "_H265_")
+       name = name.replace("RDMAFEATURES", "RDMA_FEATURES")
+       name = name.replace("RGBA_10_X_6", "RGBA10X6")
+       name = name.replace("2_D", "2D_")
+       name = name.replace("3_D", "3D_")
+       name = name.replace("IOSURFACE", "IO_SURFACE")
+
+       return prefix + name
+
+def getApiVariantIndexByName(variantName):
+       apiVariant = {
+               None : 0,
+               ''   : 0,
+               'SC' : 1
+       }
+       return apiVariant[variantName]
+
+def getApiVariantNameByIndex(variantIndex):
+       apiVariant = {
+               None : '',
+               0    : '',
+               1    : 'SC'
+       }
+       return apiVariant[variantIndex]
+
+class Version:
+       def __init__ (self, versionTuple):
+               self.api   = versionTuple[0]
+               self.major = versionTuple[1]
+               self.minor = versionTuple[2]
+               self.patch = versionTuple[3]
+
+       def getInHex (self):
+               if self.patch == 0:
+                       return "VK%s_API_VERSION_%d_%d" % (getApiVariantNameByIndex(self.api), self.major, self.minor)
+               return '0x%Xu' % (hash(self))
+
+       def isStandardVersion (self):
+               if self.patch != 0:
+                       return False
+               if self.major != 1:
+                       return False
+               return True
+
+       def getBestRepresentation (self):
+               if self.isStandardVersion():
+                       return self.getInHex()
+               return self.getDefineName()
+
+       def getDefineName (self):
+               return 'VERSION_%d_%d_%d' % (self.major, self.minor, self.patch)
+
+       def __hash__ (self):
+               return (self.api << 29) | (self.major << 22) | (self.minor << 12) | self.patch
+
+       def __eq__ (self, other):
+               return self.api == other.api and self.major == other.major and self.minor == other.minor and self.patch == other.patch
+
+       def __str__ (self):
+               return self.getBestRepresentation()
+
+class Handle:
+       TYPE_DISP               = 0
+       TYPE_NONDISP    = 1
+
+       def __init__ (self, type, name):
+               self.type               = type
+               self.name               = name
+               self.alias              = None
+               self.isAlias    = False
+
+       def getHandleType (self):
+               return prefixName("HANDLE_TYPE_", self.name)
+
+       def checkAliasValidity (self):
+               pass
+
+       def __repr__ (self):
+               return '%s (%s, %s)' % (self.name, self.alias, self.isAlias)
+
+class Definition:
+       def __init__ (self, type, name, value):
+               self.type       = type
+               self.name       = name
+               self.value      = value
+               self.alias      = None
+               self.isAlias    = False
+
+       def __repr__ (self):
+               return '%s = %s (%s)' % (self.name, self.value, self.type)
+
+class Enum:
+       def __init__ (self, name, values):
+               self.name               = name
+               self.values             = values
+               self.alias              = None
+               self.isAlias    = False
+
+       def checkAliasValidity (self):
+               if self.alias != None:
+                       if len(self.values) != len(self.alias.values):
+                               raise Exception("%s has different number of flags than its alias %s." % (self.name, self.alias.name))
+                       for index, value in enumerate(self.values):
+                               aliasVal = self.alias.values[index]
+                               if value[1] != aliasVal[1] or not (value[0].startswith(aliasVal[0]) or aliasVal[0].startswith(value[0])):
+                                       raise Exception("Flag %s of %s has different value than %s of %s." % (self.alias.values[index], self.alias.name, value, self.name))
+
+       def __repr__ (self):
+               return '%s (%s) %s' % (self.name, self.alias, self.values)
+
+class Bitfield:
+       def __init__ (self, name, values):
+               self.name               = name
+               self.values             = values
+               self.alias              = None
+               self.isAlias    = False
+
+       def checkAliasValidity (self):
+               if self.alias != None:
+                       if len(self.values) != len(self.alias.values):
+                               raise Exception("%s has different number of flags than its alias %s." % (self.name, self.alias.name))
+                       for index, value in enumerate(self.values):
+                               aliasVal = self.alias.values[index]
+                               if value[1] != aliasVal[1] or not (value[0].startswith(aliasVal[0]) or aliasVal[0].startswith(value[0])):
+                                       raise Exception("Flag %s of %s has different value than %s of %s." % (self.alias.values[index], self.alias.name, value, self.name))
+
+       def __repr__ (self):
+               return '%s (%s)' % (self.name, self.alias)
+
+class Variable:
+       def __init__ (self, type, name, arraySizeOrFieldWidth):
+               type            = type.replace('*',' *').replace('&',' &')
+               for src, dst in TYPE_SUBSTITUTIONS:
+                       type = type.replace(src, dst)
+               self.type       = type.split(' ')
+               for platformType, substitute, compat in PLATFORM_TYPES:
+                       range = self.contains(self.type, platformType)
+                       if range != None:
+                               self.type = self.type[:range[0]]+[PLATFORM_TYPE_NAMESPACE + '::' + substitute[0]] + substitute[1:] + self.type[range[1]:]
+                               break
+               self.name               = name
+               if len(arraySizeOrFieldWidth) > 0 and arraySizeOrFieldWidth[0] == ':':
+                       self.arraySize  = ''
+                       self.fieldWidth = arraySizeOrFieldWidth
+               else:
+                       self.arraySize  = arraySizeOrFieldWidth
+                       self.fieldWidth = ''
+
+       def contains(self, big, small):
+               for i in range(len(big)-len(small)+1):
+                       for j in range(len(small)):
+                               if big[i+j] != small[j]:
+                                       break
+                       else:
+                               return i, i+len(small)
+               return None
+
+       def getType (self):
+               return ' '.join(self.type).replace(' *','*').replace(' &','&')
+
+       def getAsString (self, separator):
+               return '%s%s%s%s%s' % (self.getType(), separator, self.name, self.arraySize, self.fieldWidth)
+
+       def getAsStringForArgumentList (self, separator):
+               return '%s%s%s%s' % (self.getType(), separator, self.name, self.arraySize)
+
+       def __repr__ (self):
+               return '<%s> <%s> <%s>' % (self.type, self.name, self.arraySize)
+
+       def __eq__ (self, other):
+               if len(self.type) != len(other.type):
+                       return False
+               for index, type in enumerate(self.type):
+                       if "*" == type or "&" == type or "const" == type or "volatile" == type:
+                               if type != other.type[index]:
+                                       return False
+                       elif type != other.type[index] and \
+                               type not in map(lambda ext: other.type[index] + ext, EXTENSION_POSTFIXES_STANDARD) and \
+                               other.type[index] not in map(lambda ext: type + ext, EXTENSION_POSTFIXES_STANDARD):
+                               return False
+               return self.arraySize == other.arraySize
+
+       def __ne__ (self, other):
+               return not self == other
+
+class CompositeType:
+       CLASS_STRUCT    = 0
+       CLASS_UNION             = 1
+
+       def __init__ (self, typeClass, name, members, apiVersion = None):
+               self.typeClass  = typeClass
+               self.name               = name
+               self.members    = members
+               self.alias              = None
+               self.isAlias    = False
+               self.apiVersion = apiVersion
+
+       def getClassName (self):
+               names = {CompositeType.CLASS_STRUCT: 'struct', CompositeType.CLASS_UNION: 'union'}
+               return names[self.typeClass]
+
+       def checkAliasValidity (self):
+               if self.alias != None:
+                       if len(self.members) != len(self.alias.members):
+                               raise Exception("%s has different number of members than its alias %s." % (self.name, self.alias.name))
+                       for index, member in enumerate(self.members ):
+                               break
+                               #if member != self.alias.members[index]:
+                                       #raise Exception("Member %s of %s is different than core member %s in %s." % (self.alias.members[index], self.alias.name, member, self.name))
+                                       #raise Exception("Member ",str(self.alias.members[index])," of ", str(self.alias.name)," is different than core member ", str(member)," in ", str(self.name),".")
+       def __repr__ (self):
+               return '%s (%s)' % (self.name, self.alias)
+
+class Function:
+       TYPE_PLATFORM           = 0 # Not bound to anything
+       TYPE_INSTANCE           = 1 # Bound to VkInstance
+       TYPE_DEVICE                     = 2 # Bound to VkDevice
+
+       def __init__ (self, name, returnType, arguments, apiVersion = None):
+               self.name               = name
+               self.returnType = returnType
+               self.arguments  = arguments
+               self.alias              = None
+               self.isAlias    = False
+               self.apiVersion = apiVersion
+
+       def getType (self):
+               # Special functions
+               if self.name == "vkGetInstanceProcAddr":
+                       return Function.TYPE_PLATFORM
+               assert len(self.arguments) > 0
+               firstArgType = self.arguments[0].getType()
+               if firstArgType in ["VkInstance", "VkPhysicalDevice"]:
+                       return Function.TYPE_INSTANCE
+               elif firstArgType in ["VkDevice", "VkCommandBuffer", "VkQueue"]:
+                       return Function.TYPE_DEVICE
+               else:
+                       return Function.TYPE_PLATFORM
+
+       def checkAliasValidity (self):
+               if self.alias != None:
+                       if len(self.arguments) != len(self.alias.arguments):
+                               raise Exception("%s has different number of arguments than its alias %s." % (self.name, self.alias.name))
+                       if self.returnType != self.alias.returnType or not (self.returnType.startswith(self.alias.returnType) or self.alias.returnType.startswith(self.returnType)):
+                               raise Exception("%s has different return value's type than its alias %s." % (self.name, self.alias.name))
+                       for index, argument in enumerate(self.arguments):
+                               if argument != self.alias.arguments[index]:
+                                       raise Exception("argument %s: \"%s\" of %s is different than \"%s\" of %s." % (index, self.alias.arguments[index].getAsString(' '), self.alias.name, argument.getAsString(' '), self.name))
+
+       def __repr__ (self):
+               return '%s (%s)' % (self.name, self.alias)
+
+class Extension:
+       def __init__ (self, name, handles, enums, bitfields, compositeTypes, functions, definitions, additionalDefinitions, typedefs, versionInCore):
+               self.name                       = name
+               self.definitions        = definitions
+               self.additionalDefs = additionalDefinitions
+               self.handles            = handles
+               self.enums                      = enums
+               self.bitfields          = bitfields
+               self.compositeTypes     = compositeTypes
+               self.functions          = functions
+               self.typedefs           = typedefs
+               self.versionInCore      = versionInCore
+
+       def __repr__ (self):
+               return 'EXT:\n%s ->\nENUMS:\n%s\nCOMPOS:\n%s\nFUNCS:\n%s\nBITF:\n%s\nHAND:\n%s\nDEFS:\n%s\n' % (self.name, self.enums, self.compositeTypes, self.functions, self.bitfields, self.handles, self.definitions, self.versionInCore)
+
+class API:
+       def __init__ (self, versions, definitions, handles, enums, bitfields, bitfields64, compositeTypes, functions, extensions, additionalExtensionData):
+               self.versions                                   = versions
+               self.definitions                                = definitions
+               self.handles                                    = handles
+               self.enums                                              = enums
+               self.bitfields                                  = bitfields
+               self.bitfields64                                = bitfields64
+               self.compositeTypes                             = compositeTypes
+               self.functions                                  = functions                                     # \note contains extension functions as well
+               self.extensions                                 = extensions
+               self.additionalExtensionData    = additionalExtensionData       # \note contains mandatory features and information about promotion
+
+def readFile (filename):
+       with open(filename, 'rt') as f:
+               return f.read()
+
+IDENT_PTRN     = r'[a-zA-Z_][a-zA-Z0-9_]*'
+WIDTH_PTRN     = r'[:0-9]*'
+TYPE_PTRN      = r'[a-zA-Z_][a-zA-Z0-9_ \t*&]*'
+
+def getInterfaceName (function):
+       assert function.name[:2] == "vk"
+       return function.name[2].lower() + function.name[3:]
+
+def getFunctionTypeName (function):
+       assert function.name[:2] == "vk"
+       return function.name[2:] + "Func"
+
+def endsWith (str, postfix):
+       return str[-len(postfix):] == postfix
+
+def splitNameExtPostfix (name):
+       knownExtPostfixes = EXTENSION_POSTFIXES
+       for postfix in knownExtPostfixes:
+               if endsWith(name, postfix):
+                       return (name[:-len(postfix)], postfix)
+       return (name, "")
+
+def getBitEnumNameForBitfield (bitfieldName):
+       bitfieldName, postfix = splitNameExtPostfix(bitfieldName)
+       assert bitfieldName[-1] == "s"
+       return bitfieldName[:-1] + "Bits" + postfix
+
+def getBitfieldNameForBitEnum (bitEnumName):
+       bitEnumName, postfix = splitNameExtPostfix(bitEnumName)
+       assert bitEnumName[-4:] == "Bits"
+       return bitEnumName[:-4] + "s" + postfix
+
+def parsePreprocDefinedValue (src, name):
+       value = parsePreprocDefinedValueOptional(src, name)
+       if value is None:
+               raise Exception("No such definition: %s" % name)
+       return value
+
+def parsePreprocDefinedValueOptional (src, name):
+       definition = re.search(r'#\s*define\s+' + name + r'\s+([^\n]+)\n', src)
+       if definition is None:
+               return None
+       value = definition.group(1).strip()
+       if value == "UINT32_MAX":
+               value = "(~0u)"
+       return value
+
+def parseEnum (name, src):
+       keyValuePtrn = '(' + IDENT_PTRN + r')\s*=\s*([^\s,\n}]+)\s*[,\n}]'
+       return Enum(name, re.findall(keyValuePtrn, src))
+
+# \note Parses raw enums, some are mapped to bitfields later
+def parseEnums (src):
+       matches = re.findall(r'typedef enum(\s*' + IDENT_PTRN + r')?\s*{([^}]*)}\s*(' + IDENT_PTRN + r')\s*;', src)
+       enums   = []
+       for enumname, contents, typename in matches:
+               enums.append(parseEnum(typename, contents))
+       return enums
+
+def parseCompositeType (type, name, src):
+       typeNamePtrn    = r'(' + TYPE_PTRN + r')(\s+' + IDENT_PTRN + r')((\[[^\]]+\]|\s*:\s*[0-9]+)*)\s*;'
+       matches                 = re.findall(typeNamePtrn, src)
+       members                 = [Variable(t.strip(), n.strip(), a.replace(' ', '')) for t, n, a, _ in matches]
+       return CompositeType(type, name, members)
+
+def parseCompositeTypes (src):
+       typeMap = { 'struct': CompositeType.CLASS_STRUCT, 'union': CompositeType.CLASS_UNION }
+       matches = re.findall(r'typedef (struct|union)(\s*' + IDENT_PTRN + r')?\s*{([^}]*)}\s*(' + IDENT_PTRN + r')\s*;', src)
+       types   = []
+       for type, structname, contents, typename in matches:
+               types.append(parseCompositeType(typeMap[type], typename, contents))
+       return types
+
+def parseCompositeTypesByVersion (src, versionsData):
+
+       # find occurence of extension is a place where
+       # we cant assign apiVersion to found structures
+       extPtrn         = r'#define\s+[A-Z0-9_]+_EXTENSION_NAME\s+"([^"]+)"'
+       versionEnd      = re.search(extPtrn, src)
+       versions        = [Version((v[2], v[3], v[4], 0)) for v in versionsData]
+       versions.append(None)
+
+       # construct list of locations where version definitions start, and add the end of the file to it
+       sectionLocations = [versionDef[1] for versionDef in versionsData]
+       sectionLocations.append(versionEnd.start())
+       sectionLocations.append(len(src))
+
+       # construct function declaration pattern
+       ptrn            = r'typedef (struct|union)(\s*' + IDENT_PTRN + r')?\s*{([^}]*)}\s*(' + IDENT_PTRN + r')\s*;'
+       regPtrn         = re.compile(ptrn)
+       types           = []
+       typeMap         = { 'struct': CompositeType.CLASS_STRUCT, 'union': CompositeType.CLASS_UNION }
+
+       # iterate over all versions and find all structure definitions
+       for index, v in enumerate(versions):
+               matches = regPtrn.findall(src, sectionLocations[index], sectionLocations[index+1])
+               for type, structname, contents, typename in matches:
+                       compositeType = parseCompositeType(typeMap[type], typename, contents)
+                       compositeType.apiVersion = v
+                       types.append(compositeType)
+       return types
+
+def parseVersions (src):
+       # returns list of tuples each with four items:
+       # 1. string with version token (without ' 1' at the end)
+       # 2. starting point off version specific definitions in vulkan.h.in
+       # 3. major version number
+       # 4. minor version number
+       return [(m.group()[:-2], m.start(), getApiVariantIndexByName(m.group(1)), int(m.group(2)), int(m.group(3))) for m in re.finditer('VK(SC)?_VERSION_([1-9])_([0-9]) 1', src)]
+
+
+def parseHandles (src):
+       matches = re.findall(r'VK_DEFINE(_NON_DISPATCHABLE|)_HANDLE\((' + IDENT_PTRN + r')\)[ \t]*[\n\r]', src)
+       handles = []
+       typeMap = {'': Handle.TYPE_DISP, '_NON_DISPATCHABLE': Handle.TYPE_NONDISP}
+       for type, name in matches:
+               handle = Handle(typeMap[type], name)
+               handles.append(handle)
+       return handles
+
+def parseArgList (src):
+       typeNamePtrn    = r'(' + TYPE_PTRN + r')(\s+' + IDENT_PTRN + r')((\[[^\]]+\])*)\s*'
+       args                    = []
+       for rawArg in src.split(','):
+               m = re.search(typeNamePtrn, rawArg)
+               args.append(Variable(m.group(1).strip(), m.group(2).strip(), m.group(3)))
+       return args
+
+def removeTypeExtPostfix (name):
+       for extPostfix in EXTENSION_POSTFIXES_STANDARD:
+               if endsWith(name, extPostfix):
+                       return name[0:-len(extPostfix)]
+       return None
+
+def populateExtensionAliases(allObjects, extensionObjects):
+       for object in extensionObjects:
+               withoutPostfix = removeTypeExtPostfix(object.name)
+               if withoutPostfix != None and withoutPostfix in allObjects:
+                       # max 1 alias is assumed by functions in this file
+                       assert allObjects[withoutPostfix].alias == None
+                       allObjects[withoutPostfix].alias = object
+                       object.isAlias = True
+       for object in extensionObjects:
+               object.checkAliasValidity()
+
+def populateAliasesWithTypedefs (objects, src):
+       objectsByName = {}
+       for object in objects:
+               objectsByName[object.name] = object
+               ptrn    = r'\s*typedef\s+' + object.name + r'\s+([^;]+)'
+               stash = re.findall(ptrn, src)
+               if len(stash) == 1:
+                       objExt = copy.deepcopy(object)
+                       objExt.name = stash[0]
+                       object.alias = objExt
+                       objExt.isAlias = True
+                       objects.append(objExt)
+
+def removeAliasedValues (enum):
+       valueByName = {}
+       for name, value in enum.values:
+               valueByName[name] = value
+
+       def removeDefExtPostfix (name):
+               for extPostfix in EXTENSION_POSTFIXES:
+                       if endsWith(name, "_" + extPostfix):
+                               return name[0:-(len(extPostfix)+1)]
+               return None
+
+       newValues = []
+       for name, value in enum.values:
+               withoutPostfix = removeDefExtPostfix(name)
+               if withoutPostfix != None and withoutPostfix in valueByName and valueByName[withoutPostfix] == value:
+                       continue
+               newValues.append((name, value))
+       enum.values = newValues
+
+def parseFunctions (src):
+       ptrn            = r'VKAPI_ATTR\s+(' + TYPE_PTRN + ')\s+VKAPI_CALL\s+(' + IDENT_PTRN + r')\s*\(([^)]*)\)\s*;'
+       matches         = re.findall(ptrn, src)
+       functions       = []
+       for returnType, name, argList in matches:
+               functions.append(Function(name.strip(), returnType.strip(), parseArgList(argList)))
+       return functions
+
+def parseFunctionsByVersion (src, versions):
+       # construct list of locations where version definitions start, and add the end of the file to it
+       sectionLocations = [versionDef[1] for versionDef in versions]
+       sectionLocations.append(len(src))
+
+       # construct function declaration pattern
+       ptrn            = r'VKAPI_ATTR\s+(' + TYPE_PTRN + ')\s+VKAPI_CALL\s+(' + IDENT_PTRN + r')\s*\(([^)]*)\)\s*;'
+       regPtrn         = re.compile(ptrn)
+       functions       = []
+
+       # iterate over all versions and find all function definitions
+       for index, v in enumerate(versions):
+               matches = regPtrn.findall(src, sectionLocations[index], sectionLocations[index+1])
+               for returnType, name, argList in matches:
+                       functions.append(Function(name.strip(), returnType.strip(), parseArgList(argList), v[0]))
+       return functions
+
+def splitByExtension (src):
+       ptrn            = r'#define\s+[A-Z0-9_]+_EXTENSION_NAME\s+"([^"]+)"'
+       # Construct long pattern that will be used to split whole source by extensions
+       match           = "#define\s+("
+       for part in re.finditer(ptrn, src):
+                match += part.group(1)+"|"
+       match = match[:-1] + ")\s+1"
+       parts = re.split(match, src)
+
+       # First part is core, following tuples contain extension name and all its definitions
+       byExtension     = [(None, parts[0])]
+       for ndx in range(1, len(parts), 2):
+               byExtension.append((parts[ndx], parts[ndx+1]))
+       return byExtension
+
+def parseDefinitions (extensionName, src):
+
+       def skipDefinition (extensionName, definition):
+               if extensionName == None:
+                       return True
+               extNameUpper = extensionName.upper()
+               extNameUpper = extNameUpper.replace("VK_KHR_SYNCHRONIZATION2", "VK_KHR_SYNCHRONIZATION_2")
+               extNameUpper = extNameUpper.replace("VK_INTEL_SHADER_INTEGER_FUNCTIONS2", "VK_INTEL_SHADER_INTEGER_FUNCTIONS_2")
+               extNameUpper = extNameUpper.replace("VK_EXT_ROBUSTNESS2", "VK_EXT_ROBUSTNESS_2")
+               extNameUpper = extNameUpper.replace("VK_EXT_FRAGMENT_DENSITY_MAP2", "VK_EXT_FRAGMENT_DENSITY_MAP_2")
+               extNameUpper = extNameUpper.replace("VK_EXT_SHADER_ATOMIC_FLOAT2", "VK_EXT_SHADER_ATOMIC_FLOAT_2")
+               extNameUpper = extNameUpper.replace("VK_AMD_SHADER_CORE_PROPERTIES2", "VK_AMD_SHADER_CORE_PROPERTIES_2")
+               extNameUpper = extNameUpper.replace("VK_EXT_EXTENDED_DYNAMIC_STATE2", "VK_EXT_EXTENDED_DYNAMIC_STATE_2")
+               # SPEC_VERSION enums
+               if definition[0].startswith(extNameUpper) and definition[1].isdigit():
+                       return False
+               if definition[0].startswith(extNameUpper):
+                       return True
+               if definition[0].endswith("_H_"):
+                       return True
+               return False
+
+       ptrn            = r'#define\s+([^\s]+)\s+([^\r\n]+)'
+       matches         = re.findall(ptrn, src)
+
+       return [Definition(None, match[0], match[1]) for match in matches if not skipDefinition(extensionName, match)]
+
+def parseTypedefs (src):
+
+       ptrn            = r'typedef\s+([^\s]+)\s+([^\r\n]+);'
+       matches         = re.findall(ptrn, src)
+
+       return [Definition(None, match[0], match[1]) for match in matches]
+
+def parseExtensions (src, versions, allFunctions, allCompositeTypes, allEnums, allBitfields, allHandles, allDefinitions, additionalExtensionData):
+
+       # note registeredExtensionDict is also executed for vulkan 1.0 source for which extension name is None
+       registeredExtensionDict = {None: None}
+       for extensionName, data in additionalExtensionData:
+               # make sure that this extension was registered
+               if 'register_extension' not in data.keys():
+                       continue
+               # save array containing 'device' or 'instance' string followed by the optional vulkan version in which this extension is core;
+               # note that register_extension section is also required for partialy promoted extensions like VK_EXT_extended_dynamic_state2
+               # but those extensions should not fill 'core' tag
+               registeredExtensionDict[extensionName] = [ data['register_extension']['type'] ]
+               match = re.match("(\d).(\d).(\d).(\d)", data['register_extension']['core'])
+               if match != None:
+                       registeredExtensionDict[extensionName].extend( [ int(match.group(1)), int(match.group(2)), int(match.group(3)), int(match.group(4)) ] )
+
+       splitSrc                                = splitByExtension(src)
+       extensions                              = []
+       functionsByName                 = {function.name: function for function in allFunctions}
+       compositeTypesByName    = {compType.name: compType for compType in allCompositeTypes}
+       enumsByName                             = {enum.name: enum for enum in allEnums}
+       bitfieldsByName                 = {bitfield.name: bitfield for bitfield in allBitfields}
+       handlesByName                   = {handle.name: handle for handle in allHandles}
+       definitionsByName               = {definition.name: definition for definition in allDefinitions}
+
+       for extensionName, extensionSrc in splitSrc:
+               definitions                     = [Definition("uint32_t", v.getInHex(), parsePreprocDefinedValueOptional(extensionSrc, v.getInHex())) for v in versions]
+               definitions.extend([Definition(type, name, parsePreprocDefinedValueOptional(extensionSrc, name)) for name, type in DEFINITIONS])
+               definitions                     = [definition for definition in definitions if definition.value != None]
+               additionalDefinitions = parseDefinitions(extensionName, extensionSrc)
+               handles                         = parseHandles(extensionSrc)
+               functions                       = parseFunctions(extensionSrc)
+               compositeTypes          = parseCompositeTypes(extensionSrc)
+               rawEnums                        = parseEnums(extensionSrc)
+               bitfieldNames           = parse32bitBitfieldNames(extensionSrc)
+               typedefs                        = parseTypedefs(extensionSrc)
+               enumBitfieldNames       = [getBitEnumNameForBitfield(name) for name in bitfieldNames]
+               enums                           = [enum for enum in rawEnums if enum.name not in enumBitfieldNames]
+
+               extCoreVersion          = None
+               extData                         = registeredExtensionDict.get(extensionName, None)
+               extFunctions            = [functionsByName[function.name] for function in functions]
+               extCompositeTypes       = [compositeTypesByName[compositeType.name] for compositeType in compositeTypes]
+               extEnums                        = [enumsByName[enum.name] for enum in enums]
+               extBitfields            = [bitfieldsByName[bitfieldName] for bitfieldName in bitfieldNames]
+               extHandles                      = [handlesByName[handle.name] for handle in handles]
+               extDefinitions          = [definitionsByName[definition.name] for definition in definitions]
+
+               if extData != None:
+                       populateExtensionAliases(functionsByName, extFunctions)
+                       populateExtensionAliases(handlesByName, extHandles)
+                       populateExtensionAliases(enumsByName, extEnums)
+                       populateExtensionAliases(bitfieldsByName, extBitfields)
+                       populateExtensionAliases(compositeTypesByName, extCompositeTypes)
+                       if len(extData) > 1:
+                               extCoreVersion = extData
+
+               extensions.append(Extension(extensionName, extHandles, extEnums, extBitfields, extCompositeTypes, extFunctions, extDefinitions, additionalDefinitions, typedefs, extCoreVersion))
+       return extensions
+
+def parse32bitBitfieldNames (src):
+       ptrn            = r'typedef\s+VkFlags\s(' + IDENT_PTRN + r')\s*;'
+       matches         = re.findall(ptrn, src)
+
+       return matches
+
+def parse64bitBitfieldNames (src):
+       ptrn            = r'typedef\s+VkFlags64\s(' + IDENT_PTRN + r')\s*;'
+       matches         = re.findall(ptrn, src)
+
+       return matches
+
+def parse64bitBitfieldValues (src, bitfieldNamesList):
+
+       bitfields64 = []
+       for bitfieldName in bitfieldNamesList:
+               ptrn            = r'static const ' + bitfieldName + r'\s*(' + IDENT_PTRN + r')\s*=\s*([a-zA-Z0-9_]+)\s*;'
+               matches         = re.findall(ptrn, src)
+               bitfields64.append(Bitfield(bitfieldName, matches))
+
+       return bitfields64
+
+def parseAPI (src):
+       versionsData    = parseVersions(src)
+       versions                = [Version((v[2], v[3], v[4], 0)) for v in versionsData]
+       definitions             = [Definition("uint32_t", v.getInHex(), parsePreprocDefinedValue(src, v.getInHex())) for v in versions] +\
+                                         [Definition(type, name, parsePreprocDefinedValue(src, name)) for name, type in DEFINITIONS]
+
+       handles                                         = parseHandles(src)
+       rawEnums                                        = parseEnums(src)
+       bitfieldNames                           = parse32bitBitfieldNames(src)
+       bitfieldEnums                           = set([getBitEnumNameForBitfield(n) for n in bitfieldNames if getBitEnumNameForBitfield(n) in [enum.name for enum in rawEnums]])
+       bitfield64Names                         = parse64bitBitfieldNames(src)
+       bitfields64                                     = parse64bitBitfieldValues(src, bitfield64Names)
+       enums                                           = []
+       bitfields                                       = []
+       compositeTypes                          = parseCompositeTypesByVersion(src, versionsData)
+       allFunctions                            = parseFunctionsByVersion(src, versionsData)
+       additionalExtensionData         = {}
+
+       # read all files from extensions directory
+       for fileName in glob.glob(os.path.join(SCRIPTS_SRC_DIR, "extensions", "*.json")):
+               extensionName   = os.path.basename(fileName)[:-5]
+               fileContent             = readFile(fileName)
+               try:
+                       additionalExtensionData[extensionName] = json.loads(fileContent)
+               except ValueError as err:
+                       print("Error in %s: %s" % (os.path.basename(fileName), str(err)))
+                       sys.exit(-1)
+       additionalExtensionData = sorted(additionalExtensionData.items(), key=lambda e: e[0])
+
+       for enum in rawEnums:
+               if enum.name in bitfieldEnums:
+                       bitfields.append(Bitfield(getBitfieldNameForBitEnum(enum.name), enum.values))
+               else:
+                       enums.append(enum)
+
+       for bitfieldName in bitfieldNames:
+               if not bitfieldName in [bitfield.name for bitfield in bitfields]:
+                       # Add empty bitfield
+                       bitfields.append(Bitfield(bitfieldName, []))
+
+       extensions = parseExtensions(src, versions, allFunctions, compositeTypes, enums, bitfields, handles, definitions, additionalExtensionData)
+
+       # Populate alias fields
+       populateAliasesWithTypedefs(compositeTypes, src)
+       populateAliasesWithTypedefs(enums, src)
+       populateAliasesWithTypedefs(bitfields, src)
+       populateAliasesWithTypedefs(bitfields64, src)
+       populateAliasesWithTypedefs(handles, src)
+
+       for enum in enums:
+               removeAliasedValues(enum)
+
+       # Make generator to create Deleter<VkAccelerationStructureNV>
+       for f in allFunctions:
+               if (f.name == 'vkDestroyAccelerationStructureNV'):
+                       f.arguments[1].type[0] = 'VkAccelerationStructureNV'
+
+       # Dealias handles VkAccelerationStructureNV and VkAccelerationStructureKHR
+       for handle in handles:
+               if handle.name == 'VkAccelerationStructureKHR':
+                       handle.alias = None
+               if handle.name == 'VkAccelerationStructureNV':
+                       handle.isAlias = False
+
+       return API(
+               versions                                = versions,
+               definitions                             = definitions,
+               handles                                 = handles,
+               enums                                   = enums,
+               bitfields                               = bitfields,
+               bitfields64                             = bitfields64,
+               compositeTypes                  = compositeTypes,
+               functions                               = allFunctions,
+               extensions                              = extensions,
+               additionalExtensionData = additionalExtensionData)
+
+def splitUniqueAndDuplicatedEntries (handles):
+       listOfUniqueHandles = []
+       duplicates                      = OrderedDict()
+       for handle in handles:
+               if handle.alias != None:
+                       duplicates[handle.alias] = handle
+               if not handle.isAlias:
+                       listOfUniqueHandles.append(handle)
+       return listOfUniqueHandles, duplicates
+
+def writeHandleType (api, filename):
+       uniqeHandles, duplicatedHandles = splitUniqueAndDuplicatedEntries(api.handles)
+
+       def genHandles ():
+               yield "\t%s\t= 0," % uniqeHandles[0].getHandleType()
+               for handle in uniqeHandles[1:]:
+                       yield "\t%s," % handle.getHandleType()
+               for duplicate in duplicatedHandles:
+                       yield "\t%s\t= %s," % (duplicate.getHandleType(), duplicatedHandles[duplicate].getHandleType())
+               yield "\tHANDLE_TYPE_LAST\t= %s + 1" % (uniqeHandles[-1].getHandleType())
+
+       def genHandlesBlock ():
+               yield "enum HandleType"
+               yield "{"
+
+               for line in indentLines(genHandles()):
+                       yield line
+
+               yield "};"
+               yield ""
+
+       writeInlFile(filename, INL_HEADER, genHandlesBlock())
+
+def getEnumValuePrefix (enum):
+       prefix = enum.name[0]
+       for i in range(1, len(enum.name)):
+               if enum.name[i].isupper() and not enum.name[i-1].isupper():
+                       prefix += "_"
+               prefix += enum.name[i].upper()
+       return prefix
+
+def parseInt (value):
+       if value[:2] == "0x":
+               return int(value, 16)
+       else:
+               return int(value, 10)
+
+def areEnumValuesLinear (enum):
+       curIndex = 0
+       maxIntCount = 0
+       for name, value in enum.values:
+               if value[:2] != "VK":
+                       intValue = parseInt(value)
+                       if intValue != curIndex:
+                               # enum is linear when all items are in order
+                               if intValue != 0x7FFFFFFF:
+                                       return False
+                               # count number of items with 0x7FFFFFFF value;
+                               # enum containing single 0x7FFFFFFF item are also
+                               # considered as linear (this is usualy *_MAX_ENUM item)
+                               maxIntCount += 1
+                               # enums containing more then one 0x7FFFFFFF value
+                               # are not considered as linear (vulkan video enums)
+                               if maxIntCount > 1:
+                                       return False
+                       curIndex += 1
+       return True
+
+def genEnumSrc (enum):
+       yield "enum %s" % enum.name
+       yield "{"
+
+       lines = []
+       if areEnumValuesLinear(enum):
+               hasMaxItem      = parseInt(enum.values[-1][1]) == 0x7FFFFFFF
+
+               values          = enum.values[:-1] if hasMaxItem else enum.values
+               lastItem        = "\t%s_LAST," % getEnumValuePrefix(enum)
+
+               # linear values first, followed by *_LAST
+               lines           += ["\t%s\t= %s," % v for v in values if v[1][:2] != "VK"]
+               lines.append(lastItem)
+
+               # equivalence enums and *_MAX_ENUM
+               lines           += ["\t%s\t= %s," % v for v in values if v[1][:2] == "VK"]
+               if hasMaxItem:
+                       lines.append("\t%s\t= %s," % enum.values[-1])
+       else:
+               lines           += ["\t%s\t= %s," % v for v in enum.values]
+
+       for line in indentLines(lines):
+               yield line
+
+       yield "};"
+
+def genBitfieldSrc (bitfield):
+       if len(bitfield.values) > 0:
+               yield "enum %s" % getBitEnumNameForBitfield(bitfield.name)
+               yield "{"
+               for line in indentLines(["\t%s\t= %s," % v for v in bitfield.values]):
+                       yield line
+               yield "};"
+       yield "typedef uint32_t %s;" % bitfield.name
+
+def genBitfield64Src (bitfield64):
+       yield "typedef uint64_t %s;" % bitfield64.name
+       if len(bitfield64.values) > 0:
+               ptrn = "static const " + bitfield64.name + " %s\t= %s;"
+               for line in indentLines([ptrn % v for v in bitfield64.values]):
+                       yield line
+               yield ""
+
+def genCompositeTypeSrc (type):
+       yield "%s %s" % (type.getClassName(), type.name)
+       yield "{"
+       for line in indentLines(['\t'+m.getAsString('\t')+';' for m in type.members]):
+               yield line
+       yield "};"
+
+def genHandlesSrc (handles):
+       uniqeHandles, duplicatedHandles = splitUniqueAndDuplicatedEntries(handles)
+
+       def genLines (handles):
+               for handle in uniqeHandles:
+                       if handle.type == Handle.TYPE_DISP:
+                               yield "VK_DEFINE_HANDLE\t(%s,\t%s);" % (handle.name, handle.getHandleType())
+                       elif handle.type == Handle.TYPE_NONDISP:
+                               yield "VK_DEFINE_NON_DISPATCHABLE_HANDLE\t(%s,\t%s);" % (handle.name, handle.getHandleType())
+
+               for duplicate in duplicatedHandles:
+                       if duplicate.type == Handle.TYPE_DISP:
+                               yield "VK_DEFINE_HANDLE\t(%s,\t%s);" % (duplicate.name, duplicatedHandles[duplicate].getHandleType())
+                       elif duplicate.type == Handle.TYPE_NONDISP:
+                               yield "VK_DEFINE_NON_DISPATCHABLE_HANDLE\t(%s,\t%s);" % (duplicate.name, duplicatedHandles[duplicate].getHandleType())
+
+       for line in indentLines(genLines(handles)):
+               yield line
+
+def stripTrailingComment(str):
+       index = str.find("//")
+       if index == -1:
+               return str
+       return str[:index]
+
+def genDefinitionsSrc (definitions):
+       for line in ["#define %s\t(static_cast<%s>\t(%s))" % (definition.name, definition.type, stripTrailingComment(definition.value)) for definition in definitions]:
+               yield line
+
+def genDefinitionsAliasSrc (definitions):
+       for line in ["#define %s\t%s" % (definition.name, definitions[definition].name) for definition in definitions]:
+               if definition.value != definitions[definition].value and definition.value != definitions[definition].name:
+                       raise Exception("Value of %s (%s) is different than core definition value %s (%s)." % (definition.name, definition.value, definitions[definition].name, definitions[definition].value))
+               yield line
+
+def genMaxFrameworkVersion (definitions):
+       maxApiVersionMajor = 1
+       maxApiVersionMinor = 0
+       for definition in definitions:
+               match = re.match("VK_API_VERSION_(\d+)_(\d+)", definition.name)
+               if match:
+                       apiVersionMajor = int(match.group(1))
+                       apiVersionMinor = int(match.group(2))
+                       if apiVersionMajor > maxApiVersionMajor:
+                               maxApiVersionMajor = apiVersionMajor
+                               maxApiVersionMinor = apiVersionMinor
+                       elif apiVersionMajor == maxApiVersionMajor and apiVersionMinor > maxApiVersionMinor:
+                               maxApiVersionMinor = apiVersionMinor
+       yield "#define VK_API_MAX_FRAMEWORK_VERSION\tVK_API_VERSION_%d_%d" % (maxApiVersionMajor, maxApiVersionMinor)
+
+def genMaxFrameworkVersionSC (definitions):
+       maxApiVersionMajor = 1
+       maxApiVersionMinor = 0
+       for definition in definitions:
+               match = re.match("VKSC_API_VERSION_(\d+)_(\d+)", definition.name)
+               if match:
+                       apiVersionMajor = int(match.group(1))
+                       apiVersionMinor = int(match.group(2))
+                       if apiVersionMajor > maxApiVersionMajor:
+                               maxApiVersionMajor = apiVersionMajor
+                               maxApiVersionMinor = apiVersionMinor
+                       elif apiVersionMajor == maxApiVersionMajor and apiVersionMinor > maxApiVersionMinor:
+                               maxApiVersionMinor = apiVersionMinor
+       yield "#define VKSC_API_MAX_FRAMEWORK_VERSION\tVKSC_API_VERSION_%d_%d" % (maxApiVersionMajor, maxApiVersionMinor)
+
+def writeBasicTypes (apiName, api, filename):
+
+       def gen ():
+               definitionsCore, definitionDuplicates = splitUniqueAndDuplicatedEntries(api.definitions)
+
+               if apiName == '':
+                       for line in indentLines(chain(genDefinitionsSrc(definitionsCore), genMaxFrameworkVersion(definitionsCore), genDefinitionsAliasSrc(definitionDuplicates))):
+                               yield line
+                       yield ""
+               elif apiName == 'SC':
+                       for line in indentLines(chain(genDefinitionsSrc(definitionsCore), genMaxFrameworkVersion(definitionsCore), genMaxFrameworkVersionSC(definitionsCore), genDefinitionsAliasSrc(definitionDuplicates))):
+                               yield line
+                       yield ""
+
+               for line in genHandlesSrc(api.handles):
+                       yield line
+               yield ""
+
+               for enum in api.enums:
+                       if not enum.isAlias:
+                               for line in genEnumSrc(enum):
+                                       yield line
+                       else:
+                               for enum2 in api.enums:
+                                       if enum2.alias == enum:
+                                               yield "typedef %s %s;" % (enum2.name, enum.name)
+                       yield ""
+
+               for bitfield in api.bitfields:
+                       if not bitfield.isAlias:
+                               for line in genBitfieldSrc(bitfield):
+                                       yield line
+                       else:
+                               for bitfield2 in api.bitfields:
+                                       if bitfield2.alias == bitfield:
+                                               yield "typedef %s %s;" % (bitfield2.name, bitfield.name)
+                       yield ""
+
+               for bitfield in api.bitfields64:
+                       if not bitfield.isAlias:
+                               for line in genBitfield64Src(bitfield):
+                                       yield line
+                       else:
+                               for bitfield2 in api.bitfields64:
+                                       if bitfield2.alias == bitfield:
+                                               yield "typedef %s %s;" % (bitfield2.name, bitfield.name)
+                       yield ""
+
+               for line in indentLines(["VK_DEFINE_PLATFORM_TYPE(%s,\t%s)" % (s[0], c) for n, s, c in PLATFORM_TYPES]):
+                       yield line
+
+               for ext in api.extensions:
+                       if ext.additionalDefs != None:
+                               for definition in ext.additionalDefs:
+                                       yield "#define " + definition.name + " " + definition.value
+
+       writeInlFile(filename, INL_HEADER, gen())
+
+def writeCompositeTypes (api, filename):
+       def gen ():
+               for type in api.compositeTypes:
+                       type.checkAliasValidity()
+
+                       if not type.isAlias:
+                               for line in genCompositeTypeSrc(type):
+                                       yield line
+                       else:
+                               for type2 in api.compositeTypes:
+                                       if type2.alias == type:
+                                               yield "typedef %s %s;" % (type2.name, type.name)
+                       yield ""
+
+       writeInlFile(filename, INL_HEADER, gen())
+
+def argListToStr (args):
+       return ", ".join(v.getAsStringForArgumentList(' ') for v in args)
+
+def writeInterfaceDecl (api, filename, functionTypes, concrete):
+       def genProtos ():
+               postfix = "" if concrete else " = 0"
+               for function in api.functions:
+                       if not function.getType() in functionTypes:
+                               continue
+                       if not function.isAlias:
+                               yield "virtual %s\t%s\t(%s) const%s;" % (function.returnType, getInterfaceName(function), argListToStr(function.arguments), postfix)
+
+       writeInlFile(filename, INL_HEADER, indentLines(genProtos()))
+
+def writeFunctionPtrTypes (api, filename):
+       def genTypes ():
+               for function in api.functions:
+                       yield "typedef VKAPI_ATTR %s\t(VKAPI_CALL* %s)\t(%s);" % (function.returnType, getFunctionTypeName(function), argListToStr(function.arguments))
+
+       writeInlFile(filename, INL_HEADER, indentLines(genTypes()))
+
+def writeFunctionPointers (api, filename, functionTypes):
+       def FunctionsYielder ():
+               for function in api.functions:
+                       if function.getType() in functionTypes:
+                               if function.isAlias:
+                                       if function.getType() == Function.TYPE_INSTANCE and function.arguments[0].getType() == "VkPhysicalDevice":
+                                               yield "%s\t%s;" % (getFunctionTypeName(function), getInterfaceName(function))
+                               else:
+                                       yield "%s\t%s;" % (getFunctionTypeName(function), getInterfaceName(function))
+
+       writeInlFile(filename, INL_HEADER, indentLines(FunctionsYielder()))
+
+def writeInitFunctionPointers (api, filename, functionTypes, cond = None):
+       def makeInitFunctionPointers ():
+               for function in api.functions:
+                       if function.getType() in functionTypes and (cond == None or cond(function)):
+                               interfaceName = getInterfaceName(function)
+                               if function.isAlias:
+                                       if function.getType() == Function.TYPE_INSTANCE and function.arguments[0].getType() == "VkPhysicalDevice":
+                                               yield "m_vk.%s\t= (%s)\tGET_PROC_ADDR(\"%s\");" % (getInterfaceName(function), getFunctionTypeName(function), function.name)
+                               else:
+                                       yield "m_vk.%s\t= (%s)\tGET_PROC_ADDR(\"%s\");" % (getInterfaceName(function), getFunctionTypeName(function), function.name)
+                                       if function.alias != None:
+                                               yield "if (!m_vk.%s)" % (getInterfaceName(function))
+                                               yield "    m_vk.%s\t= (%s)\tGET_PROC_ADDR(\"%s\");" % (getInterfaceName(function), getFunctionTypeName(function), function.alias.name)
+       lines = [line.replace('    ', '\t') for line in indentLines(makeInitFunctionPointers())]
+       writeInlFile(filename, INL_HEADER, lines)
+
+def writeFuncPtrInterfaceImpl (api, filename, functionTypes, className):
+       def makeFuncPtrInterfaceImpl ():
+               for function in api.functions:
+                       if function.getType() in functionTypes and not function.isAlias:
+                               yield ""
+                               yield "%s %s::%s (%s) const" % (function.returnType, className, getInterfaceName(function), argListToStr(function.arguments))
+                               yield "{"
+                               if function.name == "vkEnumerateInstanceVersion":
+                                       yield " if (m_vk.enumerateInstanceVersion)"
+                                       yield "         return m_vk.enumerateInstanceVersion(pApiVersion);"
+                                       yield ""
+                                       yield " *pApiVersion = VK_API_VERSION_1_0;"
+                                       yield " return VK_SUCCESS;"
+                               elif function.getType() == Function.TYPE_INSTANCE and function.arguments[0].getType() == "VkPhysicalDevice" and function.alias != None:
+                                       yield " vk::VkPhysicalDeviceProperties props;"
+                                       yield " m_vk.getPhysicalDeviceProperties(physicalDevice, &props);"
+                                       yield " if (props.apiVersion >= VK_API_VERSION_1_1)"
+                                       yield "         %sm_vk.%s(%s);" % ("return " if function.returnType != "void" else "", getInterfaceName(function), ", ".join(a.name for a in function.arguments))
+                                       yield " else"
+                                       yield "         %sm_vk.%s(%s);" % ("return " if function.returnType != "void" else "", getInterfaceName(function.alias), ", ".join(a.name for a in function.arguments))
+                               else:
+                                       yield " %sm_vk.%s(%s);" % ("return " if function.returnType != "void" else "", getInterfaceName(function), ", ".join(a.name for a in function.arguments))
+                               yield "}"
+
+       writeInlFile(filename, INL_HEADER, makeFuncPtrInterfaceImpl())
+
+def writeFuncPtrInterfaceSCImpl (api, filename, functionTypes, className):
+       normFuncs = {
+               "createGraphicsPipelines"               : "\t\treturn createGraphicsPipelinesHandlerNorm(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);",
+               "createComputePipelines"                : "\t\treturn createComputePipelinesHandlerNorm(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);",
+               "createSampler"                                 : "\t\treturn createSamplerHandlerNorm(device, pCreateInfo, pAllocator, pSampler);",
+               "createSamplerYcbcrConversion"  : "\t\treturn createSamplerYcbcrConversionHandlerNorm(device, pCreateInfo, pAllocator, pYcbcrConversion);",
+               "createDescriptorSetLayout"             : "\t\treturn createDescriptorSetLayoutHandlerNorm(device, pCreateInfo, pAllocator, pSetLayout);",
+               "createPipelineLayout"                  : "\t\treturn createPipelineLayoutHandlerNorm(device, pCreateInfo, pAllocator, pPipelineLayout);",
+               "createRenderPass"                              : "\t\treturn createRenderPassHandlerNorm(device, pCreateInfo, pAllocator, pRenderPass);",
+               "createRenderPass2"                             : "\t\treturn createRenderPass2HandlerNorm(device, pCreateInfo, pAllocator, pRenderPass);",
+               "createCommandPool"                             : "\t\treturn createCommandPoolHandlerNorm(device, pCreateInfo, pAllocator, pCommandPool);",
+               "resetCommandPool"                              : "\t\treturn resetCommandPoolHandlerNorm(device, commandPool, flags);",
+               "createFramebuffer"                             : "\t\treturn createFramebufferHandlerNorm(device, pCreateInfo, pAllocator, pFramebuffer);",
+       }
+       statFuncs = {
+               "destroyDevice"                                 : "\t\tdestroyDeviceHandler(device, pAllocator);",
+               "createDescriptorSetLayout"             : "\t\tcreateDescriptorSetLayoutHandlerStat(device, pCreateInfo, pAllocator, pSetLayout);",
+               "destroyDescriptorSetLayout"    : "\t\tdestroyDescriptorSetLayoutHandler(device, descriptorSetLayout, pAllocator);",
+               "createImageView"                               : "\t\tcreateImageViewHandler(device, pCreateInfo, pAllocator, pView);",
+               "destroyImageView"                              : "\t\tdestroyImageViewHandler(device, imageView, pAllocator);",
+               "createSemaphore"                               : "\t{\n\t\tDDSTAT_LOCK();\n\t\tDDSTAT_HANDLE_CREATE(semaphoreRequestCount,1);\n\t\t*pSemaphore = Handle<HANDLE_TYPE_SEMAPHORE>(m_resourceInterface->incResourceCounter());\n\t}",
+               "destroySemaphore"                              : "\t{\n\t\tDDSTAT_LOCK();\n\t\tDDSTAT_HANDLE_DESTROY_IF(semaphore,semaphoreRequestCount,1);\n\t}",
+               "createFence"                                   : "\t{\n\t\tDDSTAT_LOCK();\n\t\tDDSTAT_HANDLE_CREATE(fenceRequestCount,1);\n\t\t*pFence = Handle<HANDLE_TYPE_FENCE>(m_resourceInterface->incResourceCounter());\n\t}",
+               "destroyFence"                                  : "\t{\n\t\tDDSTAT_LOCK();\n\t\tDDSTAT_HANDLE_DESTROY_IF(fence,fenceRequestCount,1);\n\t}",
+               "allocateMemory"                                : "\t{\n\t\tDDSTAT_LOCK();\n\t\tDDSTAT_HANDLE_CREATE(deviceMemoryRequestCount,1);\n\t\t*pMemory = Handle<HANDLE_TYPE_DEVICE_MEMORY>(m_resourceInterface->incResourceCounter());\n\t}",
+               "createBuffer"                                  : "\t{\n\t\tDDSTAT_LOCK();\n\t\tDDSTAT_HANDLE_CREATE(bufferRequestCount,1);\n\t\t*pBuffer = Handle<HANDLE_TYPE_BUFFER>(m_resourceInterface->incResourceCounter());\n\t}",
+               "destroyBuffer"                                 : "\t{\n\t\tDDSTAT_LOCK();\n\t\tDDSTAT_HANDLE_DESTROY_IF(buffer,bufferRequestCount,1);\n\t}",
+               "createImage"                                   : "\t{\n\t\tDDSTAT_LOCK();\n\t\tDDSTAT_HANDLE_CREATE(imageRequestCount,1);\n\t\t*pImage = Handle<HANDLE_TYPE_IMAGE>(m_resourceInterface->incResourceCounter());\n\t}",
+               "destroyImage"                                  : "\t{\n\t\tDDSTAT_LOCK();\n\t\tDDSTAT_HANDLE_DESTROY_IF(image,imageRequestCount,1);\n\t}",
+               "createEvent"                                   : "\t{\n\t\tDDSTAT_LOCK();\n\t\tDDSTAT_HANDLE_CREATE(eventRequestCount,1);\n\t\t*pEvent = Handle<HANDLE_TYPE_EVENT>(m_resourceInterface->incResourceCounter());\n\t}",
+               "destroyEvent"                                  : "\t{\n\t\tDDSTAT_LOCK();\n\t\tDDSTAT_HANDLE_DESTROY_IF(event,eventRequestCount,1);\n\t}",
+               "createQueryPool"                               : "\t\tcreateQueryPoolHandler(device, pCreateInfo, pAllocator, pQueryPool);",
+               "createBufferView"                              : "\t{\n\t\tDDSTAT_LOCK();\n\t\tDDSTAT_HANDLE_CREATE(bufferViewRequestCount,1);\n\t\t*pView = Handle<HANDLE_TYPE_BUFFER_VIEW>(m_resourceInterface->incResourceCounter());\n\t}",
+               "destroyBufferView"                             : "\t{\n\t\tDDSTAT_LOCK();\n\t\tDDSTAT_HANDLE_DESTROY_IF(bufferView,bufferViewRequestCount,1);\n\t}",
+               "createPipelineLayout"                  : "\t\tcreatePipelineLayoutHandlerStat(device, pCreateInfo, pAllocator, pPipelineLayout);",
+               "destroyPipelineLayout"                 : "\t{\n\t\tDDSTAT_LOCK();\n\t\tDDSTAT_HANDLE_DESTROY_IF(pipelineLayout,pipelineLayoutRequestCount,1);\n\t}",
+               "createRenderPass"                              : "\t\tcreateRenderPassHandlerStat(device, pCreateInfo, pAllocator, pRenderPass);",
+               "createRenderPass2"                             : "\t\tcreateRenderPass2HandlerStat(device, pCreateInfo, pAllocator, pRenderPass);",
+               "destroyRenderPass"                             : "\t\tdestroyRenderPassHandler(device, renderPass, pAllocator);",
+               "createGraphicsPipelines"               : "\t\tcreateGraphicsPipelinesHandlerStat(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);",
+               "createComputePipelines"                : "\t\tcreateComputePipelinesHandlerStat(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);",
+               "destroyPipeline"                               : "\t\tdestroyPipelineHandler(device, pipeline, pAllocator);",
+               "createSampler"                                 : "\t\tcreateSamplerHandlerStat(device, pCreateInfo, pAllocator, pSampler);",
+               "destroySampler"                                : "\t{\n\t\tDDSTAT_LOCK();\n\t\tDDSTAT_HANDLE_DESTROY_IF(sampler,samplerRequestCount,1);\n\t}",
+               "createDescriptorPool"                  : "\t{\n\t\tDDSTAT_LOCK();\n\t\tDDSTAT_HANDLE_CREATE(descriptorPoolRequestCount,1);\n\t\t*pDescriptorPool = Handle<HANDLE_TYPE_DESCRIPTOR_POOL>(m_resourceInterface->incResourceCounter());\n\t}",
+               "resetDescriptorPool"                   : "\t\tresetDescriptorPoolHandlerStat(device, descriptorPool, flags);",
+               "allocateDescriptorSets"                : "\t\tallocateDescriptorSetsHandlerStat(device, pAllocateInfo, pDescriptorSets);",
+               "freeDescriptorSets"                    : "\t\tfreeDescriptorSetsHandlerStat(device, descriptorPool, descriptorSetCount, pDescriptorSets);",
+               "createFramebuffer"                             : "\t\tcreateFramebufferHandlerStat(device, pCreateInfo, pAllocator, pFramebuffer);",
+               "destroyFramebuffer"                    : "\t{\n\t\tDDSTAT_LOCK();\n\t\tDDSTAT_HANDLE_DESTROY_IF(framebuffer,framebufferRequestCount,1);\n\t}",
+               "createCommandPool"                             : "\t\tcreateCommandPoolHandlerStat(device, pCreateInfo, pAllocator, pCommandPool);",
+               "resetCommandPool"                              : "\t\tresetCommandPoolHandlerStat(device, commandPool, flags);",
+               "allocateCommandBuffers"                : "\t\tallocateCommandBuffersHandler(device, pAllocateInfo, pCommandBuffers);",
+               "freeCommandBuffers"                    : "\t\tfreeCommandBuffersHandler(device, commandPool, commandBufferCount, pCommandBuffers);",
+               "createSamplerYcbcrConversion"  : "\t\tcreateSamplerYcbcrConversionHandlerStat(device, pCreateInfo, pAllocator, pYcbcrConversion);",
+               "destroySamplerYcbcrConversion" : "\t{\n\t\tDDSTAT_LOCK();\n\t\tDDSTAT_HANDLE_DESTROY_IF(ycbcrConversion,samplerYcbcrConversionRequestCount,1);\n\t}",
+               "getDescriptorSetLayoutSupport" : "\t\tgetDescriptorSetLayoutSupportHandler(device, pCreateInfo, pSupport);",
+#              "" : "surfaceRequestCount",
+#              "" : "swapchainRequestCount",
+#              "" : "displayModeRequestCount"
+               "mapMemory"                                             : "\t{\n\t\tDDSTAT_LOCK();\n\t\tif(m_falseMemory.size() < (static_cast<std::size_t>(offset+size)))\n\t\t\tm_falseMemory.resize(static_cast<std::size_t>(offset+size));\n\t\t*ppData = (void*)m_falseMemory.data();\n\t}",
+               "getBufferMemoryRequirements"   : "\t{\n\t\tDDSTAT_LOCK();\n\t\tpMemoryRequirements->size = 1048576U;\n\t\tpMemoryRequirements->alignment = 1U;\n\t\tpMemoryRequirements->memoryTypeBits = ~0U;\n\t}",
+               "getImageMemoryRequirements"    : "\t{\n\t\tDDSTAT_LOCK();\n\t\tpMemoryRequirements->size = 1048576U;\n\t\tpMemoryRequirements->alignment = 1U;\n\t\tpMemoryRequirements->memoryTypeBits = ~0U;\n\t}",
+               "getBufferMemoryRequirements2"  : "\t{\n\t\tDDSTAT_LOCK();\n\t\tpMemoryRequirements->memoryRequirements.size = 1048576U;\n\t\tpMemoryRequirements->memoryRequirements.alignment = 1U;\n\t\tpMemoryRequirements->memoryRequirements.memoryTypeBits = ~0U;\n\t}",
+               "getImageMemoryRequirements2"   : "\t{\n\t\tDDSTAT_LOCK();\n\t\tpMemoryRequirements->memoryRequirements.size = 1048576U;\n\t\tpMemoryRequirements->memoryRequirements.alignment = 1U;\n\t\tpMemoryRequirements->memoryRequirements.memoryTypeBits = ~0U;\n\t}",
+               "getImageSubresourceLayout"             : "\t{\n\t\tDDSTAT_LOCK();\n\t\tpLayout->offset = 0U;\n\t\tpLayout->size = 1048576U;\n\t\tpLayout->rowPitch = 0U;\n\t\tpLayout->arrayPitch = 0U;\n\t\tpLayout->depthPitch = 0U;\n\t}",
+               "createPipelineCache"                   : "\t{\n\t\tDDSTAT_LOCK();\n\t\tDDSTAT_HANDLE_CREATE(pipelineCacheRequestCount,1);\n\t\t*pPipelineCache = Handle<HANDLE_TYPE_PIPELINE_CACHE>(m_resourceInterface->incResourceCounter());\n\t}",
+               "destroyPipelineCache"                  : "\t{\n\t\tDDSTAT_LOCK();\n\t\tDDSTAT_HANDLE_DESTROY_IF(pipelineCache,pipelineCacheRequestCount,1);\n\t}",
+               "cmdUpdateBuffer"                               : "\t\tincreaseCommandBufferSize(commandBuffer, dataSize);",
+               "getDeviceQueue"                                : "\t\tm_vk.getDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue);",
+       }
+
+       statReturns = {
+               "VkResult"                      : "return VK_SUCCESS;",
+               "VkDeviceAddress"       : "return 0u;",
+               "uint64_t"                      : "return 0u;",
+       }
+       def makeFuncPtrInterfaceStatisticsImpl ():
+               for function in api.functions:
+                       if function.getType() in functionTypes and not function.isAlias:
+                               yield ""
+                               yield "%s %s::%s (%s) const" % (function.returnType, className, getInterfaceName(function), argListToStr(function.arguments))
+                               yield "{"
+                               if ( getInterfaceName(function) in normFuncs ) or ( getInterfaceName(function) in statFuncs ):
+                                       yield "\tstd::lock_guard<std::mutex> lock(functionMutex);"
+                               if getInterfaceName(function) != "getDeviceProcAddr" :
+                                       yield "\tif (m_normalMode)"
+                               if getInterfaceName(function) in normFuncs :
+                                       yield "%s" % ( normFuncs[getInterfaceName(function)] )
+                               else:
+                                       yield "\t\t%sm_vk.%s(%s);" % ("return " if function.returnType != "void" else "", getInterfaceName(function), ", ".join(a.name for a in function.arguments))
+                               if getInterfaceName(function) in statFuncs :
+                                       yield "\telse"
+                                       yield "%s" % ( statFuncs[getInterfaceName(function)] )
+                               elif getInterfaceName(function)[:3] == "cmd" :
+                                       yield "\telse"
+                                       yield "\t\tincreaseCommandBufferSize(commandBuffer, 0u);"
+                               if function.returnType in statReturns:
+                                       yield "\t%s" % ( statReturns[function.returnType] )
+                               yield "}"
+
+       writeInlFile(filename, INL_HEADER, makeFuncPtrInterfaceStatisticsImpl())
+
+def writeStrUtilProto (api, filename):
+       def makeStrUtilProto ():
+               for line in indentLines(["const char*\tget%sName\t(%s value);" % (enum.name[2:], enum.name) for enum in api.enums if not enum.isAlias]):
+                       yield line
+               yield ""
+               for line in indentLines(["inline tcu::Format::Enum<%s>\tget%sStr\t(%s value)\t{ return tcu::Format::Enum<%s>(get%sName, value);\t}" % (e.name, e.name[2:], e.name, e.name, e.name[2:]) for e in api.enums if not e.isAlias]):
+                       yield line
+               yield ""
+               for line in indentLines(["inline std::ostream&\toperator<<\t(std::ostream& s, %s value)\t{ return s << get%sStr(value);\t}" % (e.name, e.name[2:]) for e in api.enums if not e.isAlias]):
+                       yield line
+               yield ""
+               for line in indentLines(["tcu::Format::Bitfield<32>\tget%sStr\t(%s value);" % (bitfield.name[2:], bitfield.name) for bitfield in api.bitfields if not bitfield.isAlias or bitfield.name=='VkBuildAccelerationStructureFlagsNV']):
+                       yield line
+               yield ""
+               for line in indentLines(["std::ostream&\toperator<<\t(std::ostream& s, const %s& value);" % (s.name) for s in api.compositeTypes if not s.isAlias]):
+                       yield line
+
+       writeInlFile(filename, INL_HEADER, makeStrUtilProto())
+
+def writeStrUtilImpl (api, filename):
+       def makeStrUtilImpl ():
+               for line in indentLines(["template<> const char*\tgetTypeName<%s>\t(void) { return \"%s\";\t}" % (handle.name, handle.name) for handle in api.handles if not handle.isAlias]):
+                       yield line
+
+               yield ""
+               yield "namespace %s" % PLATFORM_TYPE_NAMESPACE
+               yield "{"
+
+               for line in indentLines("std::ostream& operator<< (std::ostream& s, %s\tv) { return s << tcu::toHex(v.internal); }" % ''.join(s) for n, s, c in PLATFORM_TYPES):
+                       yield line
+
+               yield "}"
+
+               for enum in api.enums:
+                       if enum.isAlias:
+                               continue
+                       yield ""
+                       yield "const char* get%sName (%s value)" % (enum.name[2:], enum.name)
+                       yield "{"
+                       yield "\tswitch (value)"
+                       yield "\t{"
+                       enumValues = []
+                       lastValue = 0x7FFFFFFF
+                       for n, v in enum.values:
+                               if (v[:2] != "VK") and (v != lastValue):
+                                       enumValues.append(f"\t\tcase {n}:\treturn \"{n}\";")
+                               lastValue = v
+                       enumValues.append("\t\tdefault:\treturn DE_NULL;")
+                       for line in indentLines(enumValues):
+                               yield line
+                       yield "\t}"
+                       yield "}"
+
+               for bitfield in api.bitfields:
+                       if bitfield.isAlias:
+                               if bitfield.name != 'VkBuildAccelerationStructureFlagsNV':
+                                       continue
+                       yield ""
+                       yield "tcu::Format::Bitfield<32> get%sStr (%s value)" % (bitfield.name[2:], bitfield.name)
+                       yield "{"
+
+                       if len(bitfield.values) > 0:
+                               yield "\tstatic const tcu::Format::BitDesc s_desc[] ="
+                               yield "\t{"
+                               for line in indentLines(["\t\ttcu::Format::BitDesc(%s,\t\"%s\")," % (n, n) for n, v in bitfield.values]):
+                                       yield line
+                               yield "\t};"
+                               yield "\treturn tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));"
+                       else:
+                               yield "\treturn tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);"
+                       yield "}"
+
+               bitfieldTypeNames = set([bitfield.name for bitfield in api.bitfields])
+
+               for type in api.compositeTypes:
+                       if not type.isAlias:
+                               yield ""
+                               yield "std::ostream& operator<< (std::ostream& s, const %s& value)" % type.name
+                               yield "{"
+                               yield "\ts << \"%s = {\\n\";" % type.name
+                               for member in type.members:
+                                       memberName      = member.name
+                                       valFmt          = None
+                                       newLine         = ""
+                                       if member.getType() in bitfieldTypeNames:
+                                               valFmt = "get%sStr(value.%s)" % (member.getType()[2:], member.name)
+                                       elif member.getType() == "const char*" or member.getType() == "char*":
+                                               valFmt = "getCharPtrStr(value.%s)" % member.name
+                                       elif member.getType() == PLATFORM_TYPE_NAMESPACE + "::Win32LPCWSTR":
+                                               valFmt = "getWStr(value.%s)" % member.name
+                                       elif member.arraySize != '':
+                                               singleDimensional = not '][' in member.arraySize
+                                               if member.name in ["extensionName", "deviceName", "layerName", "description"]:
+                                                       valFmt = "(const char*)value.%s" % member.name
+                                               elif singleDimensional and (member.getType() == 'char' or member.getType() == 'uint8_t'):
+                                                       newLine = "'\\n' << "
+                                                       valFmt  = "tcu::formatArray(tcu::Format::HexIterator<%s>(DE_ARRAY_BEGIN(value.%s)), tcu::Format::HexIterator<%s>(DE_ARRAY_END(value.%s)))" % (member.getType(), member.name, member.getType(), member.name)
+                                               else:
+                                                       if member.name == "memoryTypes" or member.name == "memoryHeaps":
+                                                               endIter = "DE_ARRAY_BEGIN(value.%s) + value.%sCount" % (member.name, member.name[:-1])
+                                                       else:
+                                                               endIter = "DE_ARRAY_END(value.%s)" % member.name
+                                                       newLine = "'\\n' << "
+                                                       valFmt  = "tcu::formatArray(DE_ARRAY_BEGIN(value.%s), %s)" % (member.name, endIter)
+                                               memberName = member.name
+                                       else:
+                                               valFmt = "value.%s" % member.name
+                                       yield ("\ts << \"\\t%s = \" << " % memberName) + newLine + valFmt + " << '\\n';"
+                               yield "\ts << '}';"
+                               yield "\treturn s;"
+                               yield "}"
+       writeInlFile(filename, INL_HEADER, makeStrUtilImpl())
+
+
+def writeObjTypeImpl (api, filename):
+       def makeObjTypeImpl ():
+
+               yield "namespace vk"
+               yield "{"
+
+               yield "template<typename T> VkObjectType getObjectType  (void);"
+
+               for line in indentLines(["template<> inline VkObjectType\tgetObjectType<%s>\t(void) { return %s;\t}" % (handle.name, prefixName("VK_OBJECT_TYPE_", handle.name)) for handle in api.handles if not handle.isAlias]):
+                       yield line
+
+               yield "}"
+
+       writeInlFile(filename, INL_HEADER, makeObjTypeImpl())
+
+class ConstructorFunction:
+       def __init__ (self, type, name, objectType, ifaceArgs, arguments):
+               self.type               = type
+               self.name               = name
+               self.objectType = objectType
+               self.ifaceArgs  = ifaceArgs
+               self.arguments  = arguments
+
+def getConstructorFunctions (api):
+       funcs = []
+       ifacesDict = {
+               Function.TYPE_PLATFORM: [Variable("const PlatformInterface&", "vk", "")],
+               Function.TYPE_INSTANCE: [Variable("const InstanceInterface&", "vk", "")],
+               Function.TYPE_DEVICE: [Variable("const DeviceInterface&", "vk", "")]
+       }
+       for function in api.functions:
+               if function.isAlias:
+                       continue
+               if (function.name[:8] == "vkCreate" or function.name == "vkAllocateMemory") and not "createInfoCount" in [a.name for a in function.arguments]:
+                       if function.name == "vkCreateDisplayModeKHR":
+                               continue # No way to delete display modes (bug?)
+
+                       # \todo [pyry] Rather hacky
+                       ifaceArgs = ifacesDict[function.getType()]
+                       if function.name == "vkCreateDevice":
+                               ifaceArgs = [Variable("const PlatformInterface&", "vkp", ""), Variable("VkInstance", "instance", "")] + ifaceArgs
+
+                       assert (function.arguments[-2].type == ["const", "VkAllocationCallbacks", "*"])
+
+                       objectType      = function.arguments[-1].type[0] #not getType() but type[0] on purpose
+                       arguments       = function.arguments[:-1]
+                       funcs.append(ConstructorFunction(function.getType(), getInterfaceName(function), objectType, ifaceArgs, arguments))
+       return funcs
+
+def addVersionDefines(versionSpectrum):
+       output = ["#define " + ver.getDefineName() + " " + ver.getInHex() for ver in versionSpectrum if not ver.isStandardVersion()]
+       return output
+
+def removeVersionDefines(versionSpectrum):
+       output = ["#undef " + ver.getDefineName() for ver in versionSpectrum if not ver.isStandardVersion()]
+       return output
+
+def writeRefUtilProto (api, filename):
+       functions = getConstructorFunctions(api)
+
+       def makeRefUtilProto ():
+               unindented = []
+               for line in indentLines(["Move<%s>\t%s\t(%s = DE_NULL);" % (function.objectType, function.name, argListToStr(function.ifaceArgs + function.arguments)) for function in functions]):
+                       yield line
+
+       writeInlFile(filename, INL_HEADER, makeRefUtilProto())
+
+def writeRefUtilImpl (api, filename):
+       functions = getConstructorFunctions(api)
+
+       def makeRefUtilImpl ():
+               yield "namespace refdetails"
+               yield "{"
+               yield ""
+
+               for function in api.functions:
+                       if function.getType() == Function.TYPE_DEVICE \
+                       and (function.name[:9] == "vkDestroy" or function.name == "vkFreeMemory") \
+                       and not function.name == "vkDestroyDevice" \
+                       and not function.isAlias:
+                               objectType = function.arguments[-2].getType()
+                               yield "template<>"
+                               yield "void Deleter<%s>::operator() (%s obj) const" % (objectType, objectType)
+                               yield "{"
+                               yield "\tm_deviceIface->%s(m_device, obj, m_allocator);" % (getInterfaceName(function))
+                               yield "}"
+                               yield ""
+
+               yield "} // refdetails"
+               yield ""
+
+               dtorDict = {
+                       Function.TYPE_PLATFORM: "object",
+                       Function.TYPE_INSTANCE: "instance",
+                       Function.TYPE_DEVICE: "device"
+               }
+
+               for function in functions:
+                       deleterArgsString = ''
+                       if function.name == "createDevice":
+                               # createDevice requires two additional parameters to setup VkDevice deleter
+                               deleterArgsString = "vkp, instance, object, " +  function.arguments[-1].name
+                       else:
+                               deleterArgsString = "vk, %s, %s" % (dtorDict[function.type], function.arguments[-1].name)
+
+                       yield "Move<%s> %s (%s)" % (function.objectType, function.name, argListToStr(function.ifaceArgs + function.arguments))
+                       yield "{"
+                       yield "\t%s object = 0;" % function.objectType
+                       yield "\tVK_CHECK(vk.%s(%s));" % (function.name, ", ".join([a.name for a in function.arguments] + ["&object"]))
+                       yield "\treturn Move<%s>(check<%s>(object), Deleter<%s>(%s));" % (function.objectType, function.objectType, function.objectType, deleterArgsString)
+                       yield "}"
+                       yield ""
+
+       writeInlFile(filename, INL_HEADER, makeRefUtilImpl())
+
+def writeStructTraitsImpl (api, filename):
+       def gen ():
+               for type in api.compositeTypes:
+                       if type.getClassName() == "struct" and type.members[0].name == "sType" and not type.isAlias and type.name != "VkBaseOutStructure" and type.name != "VkBaseInStructure":
+                               yield "template<> VkStructureType getStructureType<%s> (void)" % type.name
+                               yield "{"
+                               yield "\treturn %s;" % prefixName("VK_STRUCTURE_TYPE_", type.name)
+                               yield "}"
+                               yield ""
+
+       writeInlFile(filename, INL_HEADER, gen())
+
+def writeNullDriverImpl (api, filename):
+       def genNullDriverImpl ():
+               specialFuncNames        = [
+                               "vkCreateGraphicsPipelines",
+                               "vkCreateComputePipelines",
+                               "vkCreateRayTracingPipelinesNV",
+                               "vkCreateRayTracingPipelinesKHR",
+                               "vkGetInstanceProcAddr",
+                               "vkGetDeviceProcAddr",
+                               "vkEnumeratePhysicalDevices",
+                               "vkEnumerateInstanceExtensionProperties",
+                               "vkEnumerateDeviceExtensionProperties",
+                               "vkGetPhysicalDeviceFeatures",
+                               "vkGetPhysicalDeviceFeatures2KHR",
+                               "vkGetPhysicalDeviceProperties",
+                               "vkGetPhysicalDeviceProperties2KHR",
+                               "vkGetPhysicalDeviceQueueFamilyProperties",
+                               "vkGetPhysicalDeviceMemoryProperties",
+                               "vkGetPhysicalDeviceFormatProperties",
+                               "vkGetPhysicalDeviceImageFormatProperties",
+                               "vkGetDeviceQueue",
+                               "vkGetBufferMemoryRequirements",
+                               "vkGetBufferMemoryRequirements2KHR",
+                               "vkGetImageMemoryRequirements",
+                               "vkGetImageMemoryRequirements2KHR",
+                               "vkAllocateMemory",
+                               "vkMapMemory",
+                               "vkUnmapMemory",
+                               "vkAllocateDescriptorSets",
+                               "vkFreeDescriptorSets",
+                               "vkResetDescriptorPool",
+                               "vkAllocateCommandBuffers",
+                               "vkFreeCommandBuffers",
+                               "vkCreateDisplayModeKHR",
+                               "vkCreateSharedSwapchainsKHR",
+                               "vkGetPhysicalDeviceExternalBufferPropertiesKHR",
+                               "vkGetPhysicalDeviceImageFormatProperties2KHR",
+                               "vkGetMemoryAndroidHardwareBufferANDROID",
+                       ]
+
+               coreFunctions           = [f for f in api.functions if not f.isAlias]
+               specialFuncs            = [f for f in coreFunctions if f.name in specialFuncNames]
+               createFuncs                     = [f for f in coreFunctions if (f.name[:8] == "vkCreate" or f.name == "vkAllocateMemory") and not f in specialFuncs]
+               destroyFuncs            = [f for f in coreFunctions if (f.name[:9] == "vkDestroy" or f.name == "vkFreeMemory") and not f in specialFuncs]
+               dummyFuncs                      = [f for f in coreFunctions if f not in specialFuncs + createFuncs + destroyFuncs]
+
+               def getHandle (name):
+                       for handle in api.handles:
+                               if handle.name == name[0]:
+                                       return handle
+                       raise Exception("No such handle: %s" % name)
+
+               for function in createFuncs:
+                       objectType      = function.arguments[-1].type[:-1]
+                       argsStr         = ", ".join([a.name for a in function.arguments[:-1]])
+
+                       yield "VKAPI_ATTR %s VKAPI_CALL %s (%s)" % (function.returnType, getInterfaceName(function), argListToStr(function.arguments))
+                       yield "{"
+                       yield "\tDE_UNREF(%s);" % function.arguments[-2].name
+
+                       if getHandle(objectType).type == Handle.TYPE_NONDISP:
+                               yield "\tVK_NULL_RETURN((*%s = allocateNonDispHandle<%s, %s>(%s)));" % (function.arguments[-1].name, objectType[0][2:], objectType[0], argsStr)
+                       else:
+                               yield "\tVK_NULL_RETURN((*%s = allocateHandle<%s, %s>(%s)));" % (function.arguments[-1].name, objectType[0][2:], objectType[0], argsStr)
+                       yield "}"
+                       yield ""
+
+               for function in destroyFuncs:
+                       objectArg       = function.arguments[-2]
+
+                       yield "VKAPI_ATTR %s VKAPI_CALL %s (%s)" % (function.returnType, getInterfaceName(function), argListToStr(function.arguments))
+                       yield "{"
+                       for arg in function.arguments[:-2]:
+                               yield "\tDE_UNREF(%s);" % arg.name
+
+                       if getHandle(objectArg.type).type == Handle.TYPE_NONDISP:
+                               yield "\tfreeNonDispHandle<%s, %s>(%s, %s);" % (objectArg.getType()[2:], objectArg.getType(), objectArg.name, function.arguments[-1].name)
+                       else:
+                               yield "\tfreeHandle<%s, %s>(%s, %s);" % (objectArg.getType()[2:], objectArg.getType(), objectArg.name, function.arguments[-1].name)
+
+                       yield "}"
+                       yield ""
+
+               for function in dummyFuncs:
+                       yield "VKAPI_ATTR %s VKAPI_CALL %s (%s)" % (function.returnType, getInterfaceName(function), argListToStr(function.arguments))
+                       yield "{"
+                       for arg in function.arguments:
+                               yield "\tDE_UNREF(%s);" % arg.name
+                       if function.returnType != "void":
+                               yield "\treturn VK_SUCCESS;"
+                       yield "}"
+                       yield ""
+
+               def genFuncEntryTable (type, name):
+                       funcs = [f for f in api.functions if f.getType() == type]
+                       refFuncs = {}
+                       for f in api.functions:
+                               if f.alias != None:
+                                       refFuncs[f.alias] = f
+
+                       yield "static const tcu::StaticFunctionLibrary::Entry %s[] =" % name
+                       yield "{"
+                       for line in indentLines(["\tVK_NULL_FUNC_ENTRY(%s,\t%s)," % (function.name, getInterfaceName(function if not function.isAlias else refFuncs[function])) for function in funcs]):
+                               yield line
+                       yield "};"
+                       yield ""
+
+               # Func tables
+               for line in genFuncEntryTable(Function.TYPE_PLATFORM, "s_platformFunctions"):
+                       yield line
+
+               for line in genFuncEntryTable(Function.TYPE_INSTANCE, "s_instanceFunctions"):
+                       yield line
+
+               for line in genFuncEntryTable(Function.TYPE_DEVICE, "s_deviceFunctions"):
+                       yield line
+
+       writeInlFile(filename, INL_HEADER, genNullDriverImpl())
+
+def writeTypeUtil (api, filename):
+       # Structs filled by API queries are not often used in test code
+       QUERY_RESULT_TYPES = set([
+                       "VkPhysicalDeviceFeatures",
+                       "VkPhysicalDeviceLimits",
+                       "VkFormatProperties",
+                       "VkImageFormatProperties",
+                       "VkPhysicalDeviceSparseProperties",
+                       "VkQueueFamilyProperties",
+                       "VkMemoryType",
+                       "VkMemoryHeap",
+                       "StdVideoH264SpsVuiFlags",
+                       "StdVideoH264SpsFlags",
+                       "StdVideoH264PpsFlags",
+                       "StdVideoDecodeH264PictureInfoFlags",
+                       "StdVideoDecodeH264ReferenceInfoFlags",
+                       "StdVideoDecodeH264MvcElementFlags",
+                       "StdVideoEncodeH264SliceHeaderFlags",
+                       "StdVideoEncodeH264PictureInfoFlags",
+                       "StdVideoEncodeH264RefMgmtFlags",
+                       "StdVideoEncodeH264ReferenceInfoFlags",
+                       "StdVideoH265HrdFlags",
+                       "StdVideoH265VpsFlags",
+                       "StdVideoH265SpsVuiFlags",
+                       "StdVideoH265SpsFlags",
+                       "StdVideoH265PpsFlags",
+                       "StdVideoDecodeH265PictureInfoFlags",
+                       "StdVideoDecodeH265ReferenceInfoFlags",
+                       "StdVideoEncodeH265PictureInfoFlags",
+                       "StdVideoEncodeH265SliceHeaderFlags",
+                       "StdVideoEncodeH265ReferenceModificationFlags",
+                       "StdVideoEncodeH265ReferenceInfoFlags",
+                       "StdVideoEncodeH265SliceSegmentHeaderFlags",
+               ])
+       COMPOSITE_TYPES = set([t.name for t in api.compositeTypes if not t.isAlias])
+
+       def isSimpleStruct (type):
+               def hasArrayMember (type):
+                       for member in type.members:
+                               if member.arraySize != '':
+                                       return True
+                       return False
+
+               def hasCompositeMember (type):
+                       for member in type.members:
+                               if member.getType() in COMPOSITE_TYPES:
+                                       return True
+                       return False
+
+               return type.typeClass == CompositeType.CLASS_STRUCT and \
+               type.members[0].getType() != "VkStructureType" and \
+               not type.name in QUERY_RESULT_TYPES and \
+               not hasArrayMember(type) and \
+               not hasCompositeMember(type)
+
+       def gen ():
+               for type in api.compositeTypes:
+                       if not isSimpleStruct(type) or type.isAlias:
+                               continue
+
+                       name = type.name[2:] if type.name[:2].lower() == "vk" else type.name
+
+                       yield ""
+                       yield "inline %s make%s (%s)" % (type.name, name, argListToStr(type.members))
+                       yield "{"
+                       yield "\t%s res;" % type.name
+                       for line in indentLines(["\tres.%s\t= %s;" % (m.name, m.name) for m in type.members]):
+                               yield line
+                       yield "\treturn res;"
+                       yield "}"
+
+       writeInlFile(filename, INL_HEADER, gen())
+
+def writeDriverIds(apiName, filename):
+
+       driverIdsString = []
+       driverIdsString.append("static const struct\n"
+                                        "{\n"
+                                        "\tstd::string driver;\n"
+                                        "\tuint32_t id;\n"
+                                        "} driverIds [] =\n"
+                                        "{")
+
+       vulkanHeaderFile = { "" :       os.path.join(VULKAN_HEADERS_INCLUDE_DIR, "vulkan", "vulkan_core.h"),
+                                               "SC" :  os.path.join(SCRIPTS_SRC_DIR, "vulkan_sc_core.h") }
+       vulkanCore = readFile(vulkanHeaderFile[apiName])
+
+       items = re.search(r'(?:typedef\s+enum\s+VkDriverId\s*{)((.*\n)*)(?:}\s*VkDriverId\s*;)', vulkanCore).group(1).split(',')
+       driverItems = dict()
+       for item in items:
+               item.strip()
+               splitted = item.split('=')
+               key = splitted[0].strip()
+               value_str = splitted[1].strip()
+               try: # is this previously defined value?
+                       value = driverItems[value_str]
+               except:
+                       value = value_str
+                       value_str = ""
+               if value_str:
+                       value_str = "\t// " + value_str
+               driverItems[key] = value
+               if not item == items[-1]:
+                       driverIdsString.append("\t{\"" + key + "\"" + ", " + value + "}," + value_str)
+               else:
+                       driverIdsString.append("\t{\"" + key + "\"" + ", " + value + "}" + value_str)
+               driverItems[key] = value
+
+       driverIdsString.append("};")
+
+       writeInlFile(filename, INL_HEADER, driverIdsString)
+
+
+def writeSupportedExtensions(apiName, api, filename):
+
+       def writeExtensionsForVersions(map):
+               result = []
+               for version in map:
+                       result.append(" if (coreVersion >= " + str(version) + ")")
+                       result.append(" {")
+                       for extension in map[version]:
+                               result.append('         dst.push_back("' + extension.name + '");')
+                       result.append(" }")
+
+               if not map:
+                       result.append(" DE_UNREF(coreVersion);")
+
+               return result
+
+       instanceMap             = {}
+       deviceMap               = {}
+       versionSet              = set()
+
+       for ext in api.extensions:
+               if ext.versionInCore != None:
+                       currVersion = Version(ext.versionInCore[1:])
+                       # VulkanSC is based on Vulkan 1.2. Any Vulkan version greater than 1.2 should be excluded
+                       if apiName=='SC' and currVersion.api==0 and currVersion.major==1 and currVersion.minor>2:
+                               continue
+                       if ext.versionInCore[0] == 'instance':
+                               list = instanceMap.get(Version(ext.versionInCore[1:]))
+                               instanceMap[Version(ext.versionInCore[1:])] = list + [ext] if list else [ext]
+                       else:
+                               list = deviceMap.get(Version(ext.versionInCore[1:]))
+                               deviceMap[Version(ext.versionInCore[1:])] = list + [ext] if list else [ext]
+                       versionSet.add(Version(ext.versionInCore[1:]))
+
+       # add list of extensions missing in Vulkan SC specification
+       if apiName == 'SC':
+               for extensionName, data in api.additionalExtensionData:
+                       # make sure that this extension was registered
+                       if 'register_extension' not in data.keys():
+                               continue
+                       # save array containing 'device' or 'instance' string followed by the optional vulkan version in which this extension is core;
+                       # note that register_extension section is also required for partialy promoted extensions like VK_EXT_extended_dynamic_state2
+                       # but those extensions should not fill 'core' tag
+                       match = re.match("(\d).(\d).(\d).(\d)", data['register_extension']['core'])
+                       if match != None:
+                               currVersion = Version([int(match.group(1)), int(match.group(2)), int(match.group(3)), int(match.group(4))])
+                               ext = Extension(extensionName, 0, 0, 0, 0, 0, 0, 0, 0, 0)
+                               if currVersion.api==0 and currVersion.major==1 and currVersion.minor>2:
+                                       continue
+                               if data['register_extension']['type'] == 'instance':
+                                       list = instanceMap.get(currVersion)
+                                       instanceMap[currVersion] = list + [ext] if list else [ext]
+                               else:
+                                       list = deviceMap.get(currVersion)
+                                       deviceMap[currVersion] = list + [ext] if list else [ext]
+                               versionSet.add(currVersion)
+
+       lines = addVersionDefines(versionSet) + [
+       "",
+       "void getCoreDeviceExtensionsImpl (uint32_t coreVersion, ::std::vector<const char*>&%s)" % (" dst" if len(deviceMap) != 0 or apiName == 'SC' else ""),
+       "{"] + writeExtensionsForVersions(deviceMap) + [
+       "}",
+       "",
+       "void getCoreInstanceExtensionsImpl (uint32_t coreVersion, ::std::vector<const char*>&%s)" % (" dst" if len(instanceMap) != 0 or apiName == 'SC' else ""),
+       "{"] + writeExtensionsForVersions(instanceMap) + [
+       "}",
+       ""] + removeVersionDefines(versionSet)
+       writeInlFile(filename, INL_HEADER, lines)
+
+
+def writeExtensionFunctions (api, filename):
+
+       def isInstanceExtension (ext):
+               if ext.name and ext.functions:
+                       if ext.functions[0].getType() == Function.TYPE_INSTANCE:
+                               return True
+                       else:
+                               return False
+
+       def isDeviceExtension (ext):
+               if ext.name and ext.functions:
+                       if ext.functions[0].getType() == Function.TYPE_DEVICE:
+                               return True
+                       else:
+                               return False
+
+       def writeExtensionNameArrays ():
+               instanceExtensionNames = []
+               deviceExtensionNames = []
+               for ext in api.extensions:
+                       if ext.name and isInstanceExtension(ext):
+                               instanceExtensionNames += [ext.name]
+                       elif ext.name and isDeviceExtension(ext):
+                               deviceExtensionNames += [ext.name]
+               yield '::std::string instanceExtensionNames[] =\n{'
+               for instanceExtName in instanceExtensionNames:
+                       if (instanceExtName == instanceExtensionNames[len(instanceExtensionNames) - 1]):
+                               yield '\t"%s"' % instanceExtName
+                       else:
+                               yield '\t"%s",' % instanceExtName
+               yield '};\n'
+               yield '::std::string deviceExtensionNames[] =\n{'
+               for deviceExtName in deviceExtensionNames:
+                       if (deviceExtName == deviceExtensionNames[len(deviceExtensionNames) - 1]):
+                               yield '\t"%s"' % deviceExtName
+                       else:
+                               yield '\t"%s",' % deviceExtName
+               yield '};'
+
+       def writeExtensionFunctions (functionType):
+               isFirstWrite = True
+               dg_list = []    # Device groups functions need special casing, as Vulkan 1.0 keeps them in VK_KHR_device_groups whereas 1.1 moved them into VK_KHR_swapchain
+               if functionType == Function.TYPE_INSTANCE:
+                       yield 'void getInstanceExtensionFunctions (uint32_t apiVersion, ::std::string extName, ::std::vector<const char*>& functions)\n{'
+                       dg_list = ["vkGetPhysicalDevicePresentRectanglesKHR"]
+               elif functionType == Function.TYPE_DEVICE:
+                       yield 'void getDeviceExtensionFunctions (uint32_t apiVersion, ::std::string extName, ::std::vector<const char*>& functions)\n{'
+                       dg_list = ["vkGetDeviceGroupPresentCapabilitiesKHR", "vkGetDeviceGroupSurfacePresentModesKHR", "vkAcquireNextImage2KHR"]
+               for ext in api.extensions:
+                       funcNames = []
+                       if ext.name:
+                               for func in ext.functions:
+                                       if func.getType() == functionType:
+                                               # only add functions with same vendor as extension
+                                               # this is a workaroudn for entrypoints requiring more
+                                               # than one excetions and lack of the dependency in vulkan_core.h
+                                               vendor = ext.name.split('_')[1]
+                                               if func.name.endswith(vendor):
+                                                       funcNames.append(func.name)
+                       if ext.name:
+                               yield '\tif (extName == "%s")' % ext.name
+                               yield '\t{'
+                               for funcName in funcNames:
+                                       if funcName in dg_list:
+                                               yield '\t\tif(apiVersion >= VK_API_VERSION_1_1) functions.push_back("%s");' % funcName
+                                       else:
+                                               yield '\t\tfunctions.push_back("%s");' % funcName
+                               if ext.name == "VK_KHR_device_group":
+                                       for dg_func in dg_list:
+                                               yield '\t\tif(apiVersion < VK_API_VERSION_1_1) functions.push_back("%s");' % dg_func
+                               yield '\t\treturn;'
+                               yield '\t}'
+                               isFirstWrite = False
+               if not isFirstWrite:
+                       yield '\tDE_FATAL("Extension name not found");'
+                       yield '}'
+
+       lines = ['']
+       for line in writeExtensionFunctions(Function.TYPE_INSTANCE):
+               lines += [line]
+       lines += ['']
+       for line in writeExtensionFunctions(Function.TYPE_DEVICE):
+               lines += [line]
+       lines += ['']
+       for line in writeExtensionNameArrays():
+               lines += [line]
+
+       writeInlFile(filename, INL_HEADER, lines)
+
+def writeCoreFunctionalities(api, filename):
+       functionOriginValues    = ["FUNCTIONORIGIN_PLATFORM", "FUNCTIONORIGIN_INSTANCE", "FUNCTIONORIGIN_DEVICE"]
+       lines                                   = addVersionDefines(api.versions) + [
+       "",
+       'enum FunctionOrigin', '{'] + [line for line in indentLines([
+       '\t' + functionOriginValues[0] + '\t= 0,',
+       '\t' + functionOriginValues[1] + ',',
+       '\t' + functionOriginValues[2]])] + [
+       "};",
+       "",
+       "typedef ::std::pair<const char*, FunctionOrigin> FunctionInfo;",
+       "typedef ::std::vector<FunctionInfo> FunctionInfosList;",
+       "typedef ::std::map<uint32_t, FunctionInfosList> ApisMap;",
+       "",
+       "void initApisMap (ApisMap& apis)",
+       "{",
+       "       apis.clear();"] + [
+       "       apis.insert(::std::pair<uint32_t, FunctionInfosList>(" + str(v) + ", FunctionInfosList()));" for v in api.versions] + [
+       ""]
+
+       apiVersions = []
+       for index, v in enumerate(api.versions):
+               funcs = []
+               apiVersions.append("VK_VERSION_{0}_{1}".format(v.major, v.minor))
+               # iterate over all functions that are core in latest vulkan version
+               # note that first item in api.extension array are actually all definitions that are in vulkan.h.in before section with extensions
+               for fun in api.extensions[0].functions:
+                       if fun.apiVersion in apiVersions:
+                               funcs.append('  apis[' + str(v) + '].push_back(FunctionInfo("' + fun.name + '",\t' + functionOriginValues[fun.getType()] + '));')
+               lines = lines + [line for line in indentLines(funcs)] + [""]
+
+       lines = lines + ["}", ""] + removeVersionDefines(api.versions)
+       writeInlFile(filename, INL_HEADER, lines)
+
+def camelToSnake(name):
+    name = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name)
+    return re.sub('([a-z0-9])([A-Z])', r'\1_\2', name).lower()
+
+def writeDeviceFeatures2(api, filename):
+       def structInAPI(name):
+               for c in api.compositeTypes:
+                       if c.name == name:
+                               return True
+               return False
+
+       # list of structures that should be tested with getPhysicalDeviceFeatures2
+       # this is not posible to determine from vulkan_core.h, if new feature structures
+       # are added they should be manualy added to this list
+       testedStructures = [
+               'VkPhysicalDevice4444FormatsFeaturesEXT',
+               'VkPhysicalDevice8BitStorageFeatures',
+               'VkPhysicalDevice16BitStorageFeatures',
+               'VkPhysicalDeviceAccelerationStructureFeaturesKHR',
+               'VkPhysicalDeviceASTCDecodeFeaturesEXT',
+               'VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT',
+               'VkPhysicalDeviceBufferDeviceAddressFeaturesEXT',
+               'VkPhysicalDeviceBufferDeviceAddressFeatures',
+               'VkPhysicalDeviceConditionalRenderingFeaturesEXT',
+               'VkPhysicalDeviceCustomBorderColorFeaturesEXT',
+               'VkPhysicalDeviceColorWriteEnableFeaturesEXT',
+               'VkPhysicalDeviceDescriptorIndexingFeatures',
+               'VkPhysicalDeviceDepthClipEnableFeaturesEXT',
+               'VkPhysicalDeviceDynamicRenderingFeatures',
+               'VkPhysicalDeviceExtendedDynamicStateFeaturesEXT',
+               'VkPhysicalDeviceExtendedDynamicState2FeaturesEXT',
+               'VkPhysicalDeviceFragmentDensityMapFeaturesEXT',
+               'VkPhysicalDeviceFragmentDensityMap2FeaturesEXT',
+               'VkPhysicalDeviceFragmentShadingRateFeaturesKHR',
+               'VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR',
+               'VkPhysicalDeviceInlineUniformBlockFeatures',
+               'VkPhysicalDeviceIndexTypeUint8FeaturesEXT',
+               'VkPhysicalDeviceImagelessFramebufferFeatures',
+               'VkPhysicalDeviceImageRobustnessFeatures',
+               'VkPhysicalDeviceHostQueryResetFeatures',
+               'VkPhysicalDeviceLineRasterizationFeaturesEXT',
+               'VkPhysicalDeviceMaintenance4Features',
+               'VkPhysicalDeviceMultiviewFeatures',
+               'VkPhysicalDeviceMultiDrawFeaturesEXT',
+               'VkPhysicalDeviceMemoryPriorityFeaturesEXT',
+               'VkPhysicalDeviceDeviceMemoryReportFeaturesEXT',
+               'VkPhysicalDevicePerformanceQueryFeaturesKHR',
+               'VkPhysicalDevicePipelineCreationCacheControlFeatures',
+               'VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR',
+               'VkPhysicalDevicePresentIdFeaturesKHR',
+               'VkPhysicalDevicePresentWaitFeaturesKHR',
+               'VkPhysicalDeviceProtectedMemoryFeatures',
+               'VkPhysicalDeviceProvokingVertexFeaturesEXT',
+               'VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT',
+               'VkPhysicalDevicePrivateDataFeatures',
+               'VkPhysicalDeviceRayTracingPipelineFeaturesKHR',
+               'VkPhysicalDeviceRayQueryFeaturesKHR',
+               'VkPhysicalDeviceRobustness2FeaturesEXT',
+               'VkPhysicalDeviceSamplerYcbcrConversionFeatures',
+               'VkPhysicalDeviceScalarBlockLayoutFeatures',
+               'VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures',
+               'VkPhysicalDeviceShaderAtomicInt64Features',
+               'VkPhysicalDeviceShaderAtomicFloatFeaturesEXT',
+               'VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT',
+               'VkPhysicalDeviceShaderFloat16Int8Features',
+               'VkPhysicalDeviceShaderClockFeaturesKHR',
+               'VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures',
+               'VkPhysicalDeviceShaderDrawParametersFeatures',
+               'VkPhysicalDeviceShaderIntegerDotProductFeatures',
+               'VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures',
+               'VkPhysicalDeviceShaderTerminateInvocationFeatures',
+               'VkPhysicalDeviceSubgroupSizeControlFeatures',
+               'VkPhysicalDeviceSynchronization2Features',
+               'VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT',
+               'VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT',
+               'VkPhysicalDeviceTextureCompressionASTCHDRFeatures',
+               'VkPhysicalDeviceTimelineSemaphoreFeatures',
+               'VkPhysicalDeviceTransformFeedbackFeaturesEXT',
+               'VkPhysicalDeviceUniformBufferStandardLayoutFeatures',
+               'VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR',
+               'VkPhysicalDeviceVariablePointersFeatures',
+               'VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT',
+               'VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT',
+               'VkPhysicalDeviceVulkanMemoryModelFeaturesKHR',
+               'VkPhysicalDeviceYcbcrImageArraysFeaturesEXT',
+               'VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT',
+               'VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures',
+       ]
+
+       # helper class used to encapsulate all data needed during generation
+       class StructureDetail:
+               def __init__ (self, name):
+                       nameResult                      = re.search('(.*)Features(.*)', name[len('VkPhysicalDevice'):])
+                       nameSplitUp                     = ''
+                       # generate structure type name from structure name
+                       # note that sometimes digits are separated with '_':
+                       # VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT
+                       # but mostly they are not:
+                       # VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES
+                       specialCaseDict = {
+                               'FragmentDensityMap2'                   : ['FRAGMENT', 'DENSITY', 'MAP', '2'],
+                               'Ycbcr2Plane444Formats'                 : ['YCBCR', '2', 'PLANE', '444', 'FORMATS'],
+                               'ASTCDecode'                                    : ['ASTC', 'DECODE'],
+                               '4444Formats'                                   : ['4444', 'FORMATS'],
+                               'TextureCompressionASTCHDR'             : ['TEXTURE', 'COMPRESSION', 'ASTC', 'HDR'],
+                               'Synchronization2'                              : ['SYNCHRONIZATION', '2'],
+                               'ShaderAtomicFloat2'                    : ['SHADER', 'ATOMIC', 'FLOAT', '2'],
+                               'Robustness2'                                   : ['ROBUSTNESS', '2'],
+                               'Maintenance4'                                  : ['MAINTENANCE', '4'],
+                               'ExtendedDynamicState2'                 : ['EXTENDED', 'DYNAMIC', 'STATE', '2'],
+                       }
+                       nameSplitUp = specialCaseDict.get(nameResult.group(1))
+                       if nameSplitUp == None:
+                               nameSplit               = re.findall(r'[1-9A-Z]+(?:[a-z1-9]+|[A-Z]*(?=[A-Z]|$))', nameResult.group(1))
+                               nameSplitUp             = map(str.upper, nameSplit)
+                       nameSplitUp = list(nameSplitUp) + ['FEATURES']
+                       # check if there is extension suffix
+                       if (len(nameResult.group(2)) != 0):
+                               nameSplitUp.append(nameResult.group(2))
+                       self.name                       = name
+                       self.sType                      = 'VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_' + '_'.join(nameSplitUp)
+                       self.instanceName       = 'd' + name[11:]
+                       self.flagName           = 'is' + name[16:]
+                       self.extension          = None
+                       self.api                        = None
+                       self.major                      = None
+                       self.minor                      = None
+                       self.members            = []
+       # helper extension class used in algorith below
+       class StructureFoundContinueToNextOne(Exception):
+               pass
+       existingStructures = list(filter(structInAPI, testedStructures)) # remove features not found in API ( important for Vulkan SC )
+       testedStructureDetail = [StructureDetail(struct) for struct in existingStructures]
+       # iterate over all searched structures and find extensions that enable them
+       for structureDetail in testedStructureDetail:
+               try:
+                       # iterate over all extensions
+                       for extension in api.extensions[1:]:
+                               # check composite types and typedefs in case extension is part of core
+                               for structureList in [extension.compositeTypes, extension.typedefs]:
+                                       # iterate over all structures added by extension
+                                       for extensionStructure in structureList:
+                                               # compare checked structure name to name of structure from extension
+                                               if structureDetail.name == extensionStructure.name:
+                                                       structureDetail.extension = extension.name
+                                                       if extension.versionInCore is not None:
+                                                               structureDetail.api   = extension.versionInCore[1]
+                                                               structureDetail.major = extension.versionInCore[2]
+                                                               structureDetail.minor = extension.versionInCore[3]
+                                                       raise StructureFoundContinueToNextOne
+               except StructureFoundContinueToNextOne:
+                       continue
+       for structureDetail in testedStructureDetail:
+               for compositeType in api.compositeTypes:
+                       if structureDetail.name != compositeType.name:
+                               continue
+                       structureMembers = compositeType.members[2:]
+                       structureDetail.members = [m.name for m in structureMembers]
+                       if structureDetail.major is not None:
+                               break
+                       # if structure was not added with extension then check if
+                       # it was added directly with one of vulkan versions
+                       apiVersion = compositeType.apiVersion
+                       if apiVersion is None:
+                               continue
+                       structureDetail.api   = apiVersion.api
+                       structureDetail.major = apiVersion.major
+                       structureDetail.minor = apiVersion.minor
+                       break
+       # generate file content
+       structureDefinitions = []
+       featureEnabledFlags = []
+       clearStructures = []
+       structureChain = []
+       logStructures = []
+       verifyStructures = []
+       for index, structureDetail in enumerate(testedStructureDetail):
+               # create two instances of each structure
+               nameSpacing = '\t'
+               structureDefinitions.append(structureDetail.name + nameSpacing + structureDetail.instanceName + '[count];')
+               # create flags that check if proper extension or vulkan version is available
+               condition       = ''
+               extension       = structureDetail.extension
+               major           = structureDetail.major
+               if extension is not None:
+                       condition = ' checkExtension(properties, "' + extension + '")'
+               if major is not None:
+                       if condition != '':
+                               condition += ' || '
+                       else:
+                               condition += ' '
+                       condition += 'context.contextSupports(vk::ApiVersion(' + str(structureDetail.api) + ', ' + str(major) + ', ' + str(structureDetail.minor) + ', 0))'
+               if condition == '':
+                       condition = 'true'
+               condition += ';'
+               nameSpacing = '\t' * int((len(structureDetail.name) - 4) / 4)
+               featureEnabledFlags.append('const bool' + nameSpacing + structureDetail.flagName + ' =' + condition)
+               # clear memory of each structure
+               clearStructures.append('\tdeMemset(&' + structureDetail.instanceName + '[ndx], 0xFF * ndx, sizeof(' + structureDetail.name + '));')
+               # construct structure chain
+               nextInstanceName = 'DE_NULL';
+               if index < len(testedStructureDetail)-1:
+                       nextInstanceName = '&' + testedStructureDetail[index+1].instanceName + '[ndx]'
+               structureChain.append([
+                       '\t\t' + structureDetail.instanceName + '[ndx].sType = ' + structureDetail.flagName + ' ? ' + structureDetail.sType + ' : VK_STRUCTURE_TYPE_MAX_ENUM;',
+                       '\t\t' + structureDetail.instanceName + '[ndx].pNext = DE_NULL;'])
+               # construct log section
+               logStructures.append([
+                       '\tif (' + structureDetail.flagName + ')',
+                       '\t\tlog << TestLog::Message << ' + structureDetail.instanceName + '[0] << TestLog::EndMessage;'
+                       ])
+               #construct verification section
+               verifyStructure = []
+               verifyStructure.append('\tif (' + structureDetail.flagName + ' &&')
+               for index, m in enumerate(structureDetail.members):
+                       prefix = '\t\t(' if index == 0 else '\t\t '
+                       postfix = '))' if index == len(structureDetail.members)-1 else ' ||'
+                       verifyStructure.append(prefix + structureDetail.instanceName + '[0].' + m + ' != ' + structureDetail.instanceName + '[1].' + m + postfix)
+               if len(structureDetail.members) == 0:
+                       verifyStructure.append('\t\tfalse)')
+               verifyStructure.append('\t{\n\t\tTCU_FAIL("Mismatch between ' + structureDetail.name + '");\n\t}')
+               verifyStructures.append(verifyStructure)
+
+       # construct file content
+       stream = []
+
+       # individual test functions
+       for n, x in enumerate(testedStructureDetail):
+               stream.append("tcu::TestStatus testPhysicalDeviceFeature" + x.instanceName[len('device'):]+" (Context& context)")
+               stream.append("""{
+       const VkPhysicalDevice          physicalDevice  = context.getPhysicalDevice();
+       const CustomInstance            instance                (createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
+       const InstanceDriver&           vki                             (instance.getDriver());
+       const int                                       count                   = 2u;
+       TestLog&                                        log                             = context.getTestContext().getLog();
+       VkPhysicalDeviceFeatures2       extFeatures;
+       vector<VkExtensionProperties> properties        = enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
+""")
+               stream.append("\t"+structureDefinitions[n])
+               stream.append("\t"+featureEnabledFlags[n])
+               stream.append('')
+               stream.append('\tfor (int ndx = 0; ndx < count; ++ndx)\n\t{')
+               stream.append("\t" + clearStructures[n])
+               stream.extend(structureChain[n])
+               stream.append('')
+               stream.append(
+                               '\t\tdeMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));\n'
+                               '\t\textFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;\n'
+                               '\t\textFeatures.pNext = &' + testedStructureDetail[n].instanceName + '[ndx];\n\n'
+                               '\t\tvki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);')
+               stream.append('\t}\n')
+               stream.extend(logStructures[n])
+               stream.append('')
+               stream.extend(verifyStructures[n])
+               stream.append('\treturn tcu::TestStatus::pass("Querying succeeded");')
+               stream.append("}\n")
+
+       # function to create tests
+       stream.append("""
+void addSeparateFeatureTests (tcu::TestCaseGroup* testGroup)
+{
+""")
+       for x in testedStructureDetail:
+               stream.append('\taddFunctionCase(testGroup, "' + camelToSnake(x.instanceName[len('device'):]) + '", "' + x.name + '", testPhysicalDeviceFeature' + x.instanceName[len('device'):] + ');')
+       stream.append('}\n')
+
+       # write out
+       writeInlFile(filename, INL_HEADER, stream)
+
+def generateDeviceFeaturesDefs(apiName, src):
+       # look for definitions
+       ptrnSType       = r'VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_(\w+)_FEATURES(\w*)\s*='
+       matches         = re.findall(ptrnSType, src, re.M)
+       matches         = sorted(matches, key=lambda m: m[0])
+       # hardcoded list of core extensions having features and missing from Vulkan SC
+       missingVulkanSCExt = \
+               '#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME \"VK_KHR_16bit_storage\"\n' \
+               '#define VK_KHR_8BIT_STORAGE_EXTENSION_NAME \"VK_KHR_8bit_storage\"\n' \
+               '#define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME \"VK_KHR_buffer_device_address\"\n' \
+               '#define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME \"VK_EXT_descriptor_indexing\"\n' \
+               '#define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME \"VK_EXT_host_query_reset\"\n' \
+               '#define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME \"VK_KHR_imageless_framebuffer\"\n' \
+               '#define VK_KHR_MULTIVIEW_EXTENSION_NAME   \"VK_KHR_multiview\"\n' \
+               '#define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME \"VK_KHR_sampler_ycbcr_conversion\"\n' \
+               '#define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME \"VK_EXT_scalar_block_layout\"\n' \
+               '#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME \"VK_KHR_separate_depth_stencil_layouts\"\n' \
+               '#define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME \"VK_KHR_shader_atomic_int64\"\n' \
+               '#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME \"VK_KHR_shader_draw_parameters\"\n' \
+               '#define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME \"VK_KHR_shader_float16_int8\"\n' \
+               '#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME \"VK_KHR_shader_subgroup_extended_types\"\n' \
+               '#define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME \"VK_KHR_timeline_semaphore\"\n' \
+               '#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME \"VK_KHR_uniform_buffer_standard_layout\"\n' \
+               '#define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME \"VK_KHR_variable_pointers\"\n' \
+               '#define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME \"VK_KHR_vulkan_memory_model\"\n'
+       # construct final list
+       defs = []
+       for sType, sSuffix in matches:
+               structName                      = re.sub("[_0-9][a-z]", lambda match: match.group(0).upper(), sType.capitalize()).replace('_', '')
+               ptrnStructName          = r'\s*typedef\s+struct\s+(VkPhysicalDevice' + structName + 'Features' + sSuffix.replace('_', '') + ')'
+               matchStructName         = re.search(ptrnStructName, src, re.IGNORECASE)
+               if matchStructName:
+                       # handle special cases
+                       if sType == "EXCLUSIVE_SCISSOR":
+                               sType = "SCISSOR_EXCLUSIVE"
+                       elif sType == "ASTC_DECODE":
+                               sType = "ASTC_DECODE_MODE"
+                       elif sType == "MAINTENANCE_4":
+                               sType = "MAINTENANCE4"
+                       elif sType == "YCBCR_2_PLANE_444_FORMATS":
+                               sType = "YCBCR_2PLANE_444_FORMATS"
+                       elif sType in {'VULKAN_1_1', 'VULKAN_1_2', 'VULKAN_1_3'}:
+                               continue
+                       elif sType == 'RASTERIZATION_ORDER_ATTACHMENT_ACCESS':
+                               # skip case that has const pNext pointer
+                               continue
+                       # end handling special cases
+                       ptrnExtensionName       = r'^\s*#define\s+(\w+' + sSuffix + '_' + sType + '_EXTENSION_NAME).+$'
+                       matchExtensionName      = re.search(ptrnExtensionName, src, re.M)
+                       if matchExtensionName is None and apiName=='SC':
+                               matchExtensionName      = re.search(ptrnExtensionName, missingVulkanSCExt, re.M)
+                       ptrnSpecVersion         = r'^\s*#define\s+(\w+' + sSuffix + '_' + sType + '_SPEC_VERSION).+$'
+                       matchSpecVersion        = re.search(ptrnSpecVersion, src, re.M)
+                       defs.append( (sType, '', sSuffix, matchStructName.group(1), \
+                                                       matchExtensionName.group(0)     if matchExtensionName   else None,
+                                                       matchExtensionName.group(1)     if matchExtensionName   else None,
+                                                       matchSpecVersion.group(1)       if matchSpecVersion             else '0') )
+       return defs
+
+def generateDevicePropertiesDefs(apiName, src):
+       # look for definitions
+       ptrnSType       = r'VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_(\w+)_PROPERTIES(\w*)\s*='
+       matches         = re.findall(ptrnSType, src, re.M)
+       matches         = sorted(matches, key=lambda m: m[0])
+       # hardcoded list of core extensions having properties and missing from Vulkan SC
+       missingVulkanSCExt = \
+               '#define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME \"VK_KHR_depth_stencil_resolve\"\n' \
+               '#define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME \"VK_EXT_descriptor_indexing\"\n' \
+               '#define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME \"VK_KHR_driver_properties\"\n' \
+               '#define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME \"VK_KHR_shader_float_controls\"\n' \
+               '#define VK_KHR_MAINTENANCE3_EXTENSION_NAME \"VK_KHR_maintenance3\"\n' \
+               '#define VK_KHR_MULTIVIEW_EXTENSION_NAME   \"VK_KHR_multiview\"\n' \
+               '#define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME \"VK_EXT_sampler_filter_minmax\"\n' \
+               '#define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME \"VK_KHR_timeline_semaphore\"\n'
+       # construct final list
+       defs = []
+       for sType, sSuffix in matches:
+               # handle special cases
+               if sType in {'VULKAN_1_1', 'VULKAN_1_2', 'VULKAN_1_3', 'VULKAN_SC_1_0', 'GROUP', 'MEMORY_BUDGET', 'MEMORY', 'TOOL'}:
+                       continue
+               # there are cases like VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD
+               # where 2 is after PROPERTIES - to handle this we need to split suffix to two parts
+               sVerSuffix = ''
+               sExtSuffix = sSuffix
+               suffixStart = sSuffix.rfind('_')
+               if suffixStart > 0:
+                       sVerSuffix = sSuffix[:suffixStart]
+                       sExtSuffix = sSuffix[suffixStart:]
+               # handle special case
+               if sType == "ID":
+                       structName      = sType
+               else:
+                       structName      = re.sub("[_0-9][a-z]", lambda match: match.group(0).upper(), sType.capitalize()).replace('_', '')
+               ptrnStructName          = r'\s*typedef\s+struct\s+(VkPhysicalDevice' + structName + 'Properties' + sSuffix.replace('_', '') + ')'
+               matchStructName         = re.search(ptrnStructName, src, re.M)
+               if matchStructName:
+                       extType = sType
+                       if extType == "DISCARD_RECTANGLE":
+                               extType = "DISCARD_RECTANGLES"
+                       elif extType == "DRIVER":
+                               extType = "DRIVER_PROPERTIES"
+                       elif extType == "POINT_CLIPPING":
+                               extType = "MAINTENANCE_2"
+                       elif extType == "SHADER_CORE":
+                               extType = "SHADER_CORE_PROPERTIES"
+                       elif extType == "DRM":
+                               extType = "PHYSICAL_DEVICE_DRM"
+                       if apiName == 'SC':
+                               if extType == "MAINTENANCE_3":
+                                       extType = "MAINTENANCE3"
+                               elif extType == "MAINTENANCE_4":
+                                       extType = "MAINTENANCE4"
+                               elif extType == "POINT_CLIPPING":
+                                       extType = "MAINTENANCE2"
+                       # end handling special cases
+                       ptrnExtensionName       = r'^\s*#define\s+(\w+' + sExtSuffix + '_' + extType + sVerSuffix +'[_0-9]*_EXTENSION_NAME).+$'
+                       matchExtensionName      = re.search(ptrnExtensionName, src, re.M)
+                       if matchExtensionName is None and apiName=='SC':
+                               matchExtensionName      = re.search(ptrnExtensionName, missingVulkanSCExt, re.M)
+                       ptrnSpecVersion         = r'^\s*#define\s+(\w+' + sExtSuffix + '_' + extType + sVerSuffix + '[_0-9]*_SPEC_VERSION).+$'
+                       matchSpecVersion        = re.search(ptrnSpecVersion, src, re.M)
+                       defs.append( (sType, sVerSuffix, sExtSuffix, matchStructName.group(1), \
+                                                       matchExtensionName.group(0)     if matchExtensionName   else None,
+                                                       matchExtensionName.group(1)     if matchExtensionName   else None,
+                                                       matchSpecVersion.group  (1)     if matchSpecVersion             else '0') )
+       return defs
+
+def writeDeviceFeatures(api, dfDefs, filename):
+       # find VkPhysicalDeviceVulkan[1-9][0-9]Features blob structurs
+       # and construct dictionary with all of their attributes
+       blobMembers = {}
+       blobStructs = {}
+       blobPattern = re.compile("^VkPhysicalDeviceVulkan([1-9][0-9])Features[0-9]*$")
+       for structureType in api.compositeTypes:
+               match = blobPattern.match(structureType.name)
+               if match:
+                       allMembers = [member.name for member in structureType.members]
+                       vkVersion = match.group(1)
+                       blobMembers[vkVersion] = allMembers[2:]
+                       blobStructs[vkVersion] = set()
+       initFromBlobDefinitions = []
+       emptyInitDefinitions = []
+       # iterate over all feature structures
+       allFeaturesPattern = re.compile("^VkPhysicalDevice\w+Features[1-9]*")
+       nonExtFeaturesPattern = re.compile("^VkPhysicalDevice\w+Features[1-9]*$")
+       for structureType in api.compositeTypes:
+               # skip structures that are not feature structures
+               if not allFeaturesPattern.match(structureType.name):
+                       continue
+               # skip structures that were previously identified as blobs
+               if blobPattern.match(structureType.name):
+                       continue
+               if structureType.isAlias:
+                       continue
+               # skip sType and pNext and just grab third and next attributes
+               structureMembers = structureType.members[2:]
+               notPartOfBlob = True
+               if nonExtFeaturesPattern.match(structureType.name):
+                       # check if this member is part of any of the blobs
+                       for blobName, blobMemberList in blobMembers.items():
+                               # if just one member is not part of this blob go to the next blob
+                               # (we asume that all members are part of blob - no need to check all)
+                               if structureMembers[0].name not in blobMemberList:
+                                       continue
+                               # add another feature structure name to this blob
+                               blobStructs[blobName].add(structureType)
+                               # add specialization for this feature structure
+                               memberCopying = ""
+                               for member in structureMembers:
+                                       memberCopying += "\tfeatureType.{0} = allFeaturesBlobs.vk{1}.{0};\n".format(member.name, blobName)
+                               wholeFunction = \
+                                       "template<> void initFeatureFromBlob<{0}>({0}& featureType, const AllFeaturesBlobs& allFeaturesBlobs)\n" \
+                                       "{{\n" \
+                                       "{1}" \
+                                       "}}".format(structureType.name, memberCopying)
+                               initFromBlobDefinitions.append(wholeFunction)
+                               notPartOfBlob = False
+                               # assuming that all members are part of blob, goto next
+                               break
+               # add empty template definition as on Fedora there are issue with
+               # linking using just generic template - all specializations are needed
+               if notPartOfBlob:
+                       emptyFunction = "template<> void initFeatureFromBlob<{0}>({0}&, const AllFeaturesBlobs&) {{}}"
+                       emptyInitDefinitions.append(emptyFunction.format(structureType.name))
+       extensionDefines = []
+       makeFeatureDescDefinitions = []
+       featureStructWrappers = []
+       for idx, (sType, sVerSuffix, sExtSuffix, extStruct, extLine, extName, specVer) in enumerate(dfDefs):
+               extensionNameDefinition = extName
+               if not extensionNameDefinition:
+                       extensionNameDefinition = 'DECL{0}_{1}_EXTENSION_NAME'.format((sExtSuffix if sExtSuffix else ''), sType)
+               # construct defines with names
+               if extLine:
+                       extensionDefines.append(extLine)
+               else:
+                       extensionDefines.append('#define {0} "not_existent_feature"'.format(extensionNameDefinition))
+               # handle special cases
+               if sType == "SCISSOR_EXCLUSIVE":
+                       sType = "EXCLUSIVE_SCISSOR"
+               elif sType == "ASTC_DECODE_MODE":
+                       sType = "ASTC_DECODE"
+               elif sType == "MAINTENANCE4":
+                       sType = "MAINTENANCE_4"
+               elif sType == "YCBCR_2PLANE_444_FORMATS":
+                       sType = "YCBCR_2_PLANE_444_FORMATS"
+               # end handling special cases
+               # construct makeFeatureDesc template function definitions
+               sTypeName = "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_{0}_FEATURES{1}".format(sType, sVerSuffix + sExtSuffix)
+               makeFeatureDescDefinitions.append("template<> FeatureDesc makeFeatureDesc<{0}>(void) " \
+                       "{{ return FeatureDesc{{{1}, {2}, {3}, {4}}}; }}".format(extStruct, sTypeName, extensionNameDefinition, specVer, len(dfDefs)-idx))
+               # construct CreateFeatureStruct wrapper block
+               featureStructWrappers.append("\t{{ createFeatureStructWrapper<{0}>, {1}, {2} }},".format(extStruct, extensionNameDefinition, specVer))
+       # construct function that will check for which vk version structure sType is part of blob
+       blobChecker = "deUint32 getBlobFeaturesVersion (VkStructureType sType)\n{\n" \
+                                 "\tconst std::map<VkStructureType, deUint32> sTypeBlobMap\n" \
+                                 "\t{\n"
+       # iterate over blobs with list of structures
+       for blobName in sorted(blobStructs.keys()):
+               blobChecker += "\t\t// Vulkan{0}\n".format(blobName)
+               # iterate over all feature structures in current blob
+               structuresList = list(blobStructs[blobName])
+               structuresList = sorted(structuresList, key=lambda s: s.name)
+               for structType in structuresList:
+                       # find definition of this structure in dfDefs
+                       structName = structType.name
+                       # handle special cases
+                       if structName == 'VkPhysicalDeviceShaderDrawParameterFeatures':
+                               structName = 'VkPhysicalDeviceShaderDrawParametersFeatures'
+                       # end handling special cases
+                       structDef = [s for s in dfDefs if s[3] == structName][0]
+                       sType = structDef[0]
+                       sSuffix = structDef[1] + structDef[2]
+                       # handle special cases
+                       if sType == "SCISSOR_EXCLUSIVE":
+                               sType = "EXCLUSIVE_SCISSOR"
+                       elif sType == "MAINTENANCE4":
+                               sType = "MAINTENANCE_4"
+                       # end handling special cases
+                       sTypeName = "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_{0}_FEATURES{1}".format(sType, sSuffix)
+                       tabs = "\t" * int((88 - len(sTypeName)) / 4)
+                       blobChecker += "\t\t{{ {0},{1}VK_API_VERSION_{2}_{3} }},\n".format(sTypeName, tabs, blobName[0], blobName[1])
+       blobChecker += "\t};\n\n" \
+                                  "\tauto it = sTypeBlobMap.find(sType);\n" \
+                                  "\tif(it == sTypeBlobMap.end())\n" \
+                                  "\t\treturn 0;\n" \
+                                  "\treturn it->second;\n" \
+                                  "}\n"
+       # combine all definition lists
+       stream = [
+       '#include "vkDeviceFeatures.hpp"\n',
+       'namespace vk\n{']
+       stream.extend(extensionDefines)
+       stream.append('\n')
+       stream.extend(initFromBlobDefinitions)
+       stream.append('\n// generic template is not enough for some compilers')
+       stream.extend(emptyInitDefinitions)
+       stream.append('\n')
+       stream.extend(makeFeatureDescDefinitions)
+       stream.append('\n')
+       stream.append('static const FeatureStructCreationData featureStructCreationArray[]\n{')
+       stream.extend(featureStructWrappers)
+       stream.append('};\n')
+       stream.append(blobChecker)
+       stream.append('} // vk\n')
+       writeInlFile(filename, INL_HEADER, stream)
+
+def writeDeviceFeatureTest(apiName, api, filename):
+
+       coreFeaturesPattern = re.compile("^VkPhysicalDeviceVulkan([1-9][0-9])Features[0-9]*$")
+       featureItems = []
+       testFunctions = []
+       # iterate over all feature structures
+       allFeaturesPattern = re.compile("^VkPhysicalDevice\w+Features[1-9]*")
+       for structureType in api.compositeTypes:
+               # skip structures that are not feature structures
+               if not allFeaturesPattern.match(structureType.name):
+                       continue
+               # skip alias structures
+               if structureType.isAlias:
+                       continue
+               # skip sType and pNext and just grab third and next attributes
+               structureMembers = structureType.members[2:]
+
+               items = []
+               for member in structureMembers:
+                       items.append("          FEATURE_ITEM ({0}, {1}),".format(structureType.name, member.name))
+
+               testBlock = """
+tcu::TestStatus createDeviceWithUnsupportedFeaturesTest{4} (Context& context)
+{{
+       const PlatformInterface&                                vkp                                             = context.getPlatformInterface();
+       tcu::TestLog&                                                   log                                             = context.getTestContext().getLog();
+       tcu::ResultCollector                                    resultCollector                 (log);
+       const CustomInstance                                    instance                                (createCustomInstanceWithExtensions(context, context.getInstanceExtensions(), DE_NULL, true));
+       const InstanceDriver&                                   instanceDriver                  (instance.getDriver());
+       const VkPhysicalDevice                                  physicalDevice                  = chooseDevice(instanceDriver, instance, context.getTestContext().getCommandLine());
+       const deUint32                                                  queueFamilyIndex                = 0;
+       const deUint32                                                  queueCount                              = 1;
+       const float                                                             queuePriority                   = 1.0f;
+       const DeviceFeatures                                    deviceFeaturesAll               (context.getInstanceInterface(), context.getUsedApiVersion(), physicalDevice, context.getInstanceExtensions(), context.getDeviceExtensions(), DE_TRUE);
+       const VkPhysicalDeviceFeatures2                 deviceFeatures2                 = deviceFeaturesAll.getCoreFeatures2();
+       int                                                                             numErrors                               = 0;
+       bool                                                                    isSubProcess                    = context.getTestContext().getCommandLine().isSubProcess();
+{6}
+
+       VkPhysicalDeviceFeatures emptyDeviceFeatures;
+       deMemset(&emptyDeviceFeatures, 0, sizeof(emptyDeviceFeatures));
+
+       // Only non-core extensions will be used when creating the device.
+       vector<const char*>     coreExtensions;
+       getCoreDeviceExtensions(context.getUsedApiVersion(), coreExtensions);
+       vector<string> nonCoreExtensions(removeExtensions(context.getDeviceExtensions(), coreExtensions));
+
+       vector<const char*> extensionNames;
+       extensionNames.reserve(nonCoreExtensions.size());
+       for (const string& extension : nonCoreExtensions)
+               extensionNames.push_back(extension.c_str());
+
+       if (const void* featuresStruct = findStructureInChain(const_cast<const void*>(deviceFeatures2.pNext), getStructureType<{0}>()))
+       {{
+               static const Feature features[] =
+               {{
+{1}
+               }};
+               auto* supportedFeatures = reinterpret_cast<const {0}*>(featuresStruct);
+               checkFeatures(vkp, instance, instanceDriver, physicalDevice, {2}, features, supportedFeatures, queueFamilyIndex, queueCount, queuePriority, numErrors, resultCollector, {3}, emptyDeviceFeatures, {5});
+       }}
+
+       if (numErrors > 0)
+               return tcu::TestStatus(resultCollector.getResult(), "Enabling unsupported features didn't return VK_ERROR_FEATURE_NOT_PRESENT.");
+       else
+               return tcu::TestStatus(resultCollector.getResult(), resultCollector.getMessage());
+}}
+"""
+               additionalParams = ( 'memReservationStatMax, isSubProcess' if apiName == 'SC' else 'isSubProcess' )
+               additionalDefs = ( '    VkDeviceObjectReservationCreateInfo memReservationStatMax = context.getResourceInterface()->getStatMax();' if apiName == 'SC' else '')
+               featureItems.append(testBlock.format(structureType.name, "\n".join(items), len(items), ("DE_NULL" if coreFeaturesPattern.match(structureType.name) else "&extensionNames"), structureType.name[len('VkPhysicalDevice'):], additionalParams, additionalDefs))
+
+               testFunctions.append("createDeviceWithUnsupportedFeaturesTest" + structureType.name[len('VkPhysicalDevice'):])
+
+       stream = ['']
+       stream.extend(featureItems)
+       stream.append("""
+void addSeparateUnsupportedFeatureTests (tcu::TestCaseGroup* testGroup)
+{
+""")
+       for x in testFunctions:
+               stream.append('\taddFunctionCase(testGroup, "' + camelToSnake(x[len('createDeviceWithUnsupportedFeaturesTest'):]) + '", "' + x + '", ' + x + ');')
+       stream.append('}\n')
+
+       writeInlFile(filename, INL_HEADER, stream)
+
+def writeDeviceProperties(api, dpDefs, filename):
+       # find VkPhysicalDeviceVulkan[1-9][0-9]Features blob structurs
+       # and construct dictionary with all of their attributes
+       blobMembers = {}
+       blobStructs = {}
+       blobPattern = re.compile("^VkPhysicalDeviceVulkan([1-9][0-9])Properties[0-9]*$")
+       for structureType in api.compositeTypes:
+               match = blobPattern.match(structureType.name)
+               if match:
+                       allMembers = [member.name for member in structureType.members]
+                       vkVersion = match.group(1)
+                       blobMembers[vkVersion] = allMembers[2:]
+                       blobStructs[vkVersion] = set()
+       initFromBlobDefinitions = []
+       emptyInitDefinitions = []
+       # iterate over all property structures
+       allPropertiesPattern = re.compile("^VkPhysicalDevice\w+Properties[1-9]*")
+       nonExtPropertiesPattern = re.compile("^VkPhysicalDevice\w+Properties[1-9]*$")
+       for structureType in api.compositeTypes:
+               # skip structures that are not property structures
+               if not allPropertiesPattern.match(structureType.name):
+                       continue
+               # skip structures that were previously identified as blobs
+               if blobPattern.match(structureType.name):
+                       continue
+               if structureType.isAlias:
+                       continue
+               # skip sType and pNext and just grab third and next attributes
+               structureMembers = structureType.members[2:]
+               notPartOfBlob = True
+               if nonExtPropertiesPattern.match(structureType.name):
+                       # check if this member is part of any of the blobs
+                       for blobName, blobMemberList in blobMembers.items():
+                               # if just one member is not part of this blob go to the next blob
+                               # (we asume that all members are part of blob - no need to check all)
+                               if structureMembers[0].name not in blobMemberList:
+                                       continue
+                               # add another property structure name to this blob
+                               blobStructs[blobName].add(structureType)
+                               # add specialization for this property structure
+                               memberCopying = ""
+                               for member in structureMembers:
+                                       if not member.arraySize:
+                                               # handle special case
+                                               if structureType.name == "VkPhysicalDeviceSubgroupProperties" and "subgroup" not in member.name :
+                                                       blobMemberName = "subgroup" + member.name[0].capitalize() + member.name[1:]
+                                                       memberCopying += "\tpropertyType.{0} = allPropertiesBlobs.vk{1}.{2};\n".format(member.name, blobName, blobMemberName)
+                                               # end handling special case
+                                               else:
+                                                       memberCopying += "\tpropertyType.{0} = allPropertiesBlobs.vk{1}.{0};\n".format(member.name, blobName)
+                                       else:
+                                               memberCopying += "\tmemcpy(propertyType.{0}, allPropertiesBlobs.vk{1}.{0}, sizeof({2}) * {3});\n".format(member.name, blobName, member.type[0], member.arraySize[1:-1])
+                               wholeFunction = \
+                                       "template<> void initPropertyFromBlob<{0}>({0}& propertyType, const AllPropertiesBlobs& allPropertiesBlobs)\n" \
+                                       "{{\n" \
+                                       "{1}" \
+                                       "}}".format(structureType.name, memberCopying)
+                               initFromBlobDefinitions.append(wholeFunction)
+                               notPartOfBlob = False
+                               # assuming that all members are part of blob, goto next
+                               break
+               # add empty template definition as on Fedora there are issue with
+               # linking using just generic template - all specializations are needed
+               if notPartOfBlob:
+                       emptyFunction = "template<> void initPropertyFromBlob<{0}>({0}&, const AllPropertiesBlobs&) {{}}"
+                       emptyInitDefinitions.append(emptyFunction.format(structureType.name))
+       extensionDefines = []
+       makePropertyDescDefinitions = []
+       propertyStructWrappers = []
+       for idx, (sType, sVerSuffix, sExtSuffix, extStruct, extLine, extName, specVer) in enumerate(dpDefs):
+               extensionNameDefinition = extName
+               if not extensionNameDefinition:
+                       extensionNameDefinition = 'DECL{0}_{1}_EXTENSION_NAME'.format((sExtSuffix if sExtSuffix else ''), sType)
+               # construct defines with names
+               if extLine:
+                       extensionDefines.append(extLine)
+               else:
+                       extensionDefines.append('#define {0} "core_property"'.format(extensionNameDefinition))
+               # construct makePropertyDesc template function definitions
+               sTypeName = "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_{0}_PROPERTIES{1}".format(sType, sVerSuffix + sExtSuffix)
+               makePropertyDescDefinitions.append("template<> PropertyDesc makePropertyDesc<{0}>(void) " \
+                       "{{ return PropertyDesc{{{1}, {2}, {3}, {4}}}; }}".format(extStruct, sTypeName, extensionNameDefinition, specVer, len(dpDefs)-idx))
+               # construct CreateProperty struct wrapper block
+               propertyStructWrappers.append("\t{{ createPropertyStructWrapper<{0}>, {1}, {2} }},".format(extStruct, extensionNameDefinition, specVer))
+       # construct method that will check if structure sType is part of blob
+       blobChecker = "deUint32 getBlobPropertiesVersion (VkStructureType sType)\n{\n" \
+                                 "\tconst std::map<VkStructureType, deUint32> sTypeBlobMap\n" \
+                                 "\t{\n"
+       # iterate over blobs with list of structures
+       for blobName in sorted(blobStructs.keys()):
+               blobChecker += "\t\t// Vulkan{0}\n".format(blobName)
+               # iterate over all feature structures in current blob
+               structuresList = list(blobStructs[blobName])
+               structuresList = sorted(structuresList, key=lambda s: s.name)
+               for structType in structuresList:
+                       # find definition of this structure in dpDefs
+                       structName = structType.name
+                       structDef = [s for s in dpDefs if s[3] == structName][0]
+                       sType = structDef[0]
+                       sSuffix = structDef[1] + structDef[2]
+                       sTypeName = "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_{0}_PROPERTIES{1}".format(sType, sSuffix)
+                       tabs = "\t" * int((76 - len(sTypeName)) / 4)
+                       blobChecker += "\t\t{{ {0},{1}VK_API_VERSION_{2}_{3} }},\n".format(sTypeName, tabs, blobName[0], blobName[1])
+       blobChecker += "\t};\n\n" \
+                                  "\tauto it = sTypeBlobMap.find(sType);\n" \
+                                  "\tif(it == sTypeBlobMap.end())\n" \
+                                  "\t\treturn 0;\n" \
+                                  "\treturn it->second;\n" \
+                                  "}\n"
+       # combine all definition lists
+       stream = [
+       '#include "vkDeviceProperties.hpp"\n',
+       'namespace vk\n{']
+       stream.extend(extensionDefines)
+       stream.append('\n')
+       stream.extend(initFromBlobDefinitions)
+       stream.append('\n// generic template is not enough for some compilers')
+       stream.extend(emptyInitDefinitions)
+       stream.append('\n')
+       stream.extend(makePropertyDescDefinitions)
+       stream.append('\n')
+       stream.append('static const PropertyStructCreationData propertyStructCreationArray[] =\n{')
+       stream.extend(propertyStructWrappers)
+       stream.append('};\n')
+       stream.append(blobChecker)
+       stream.append('} // vk\n')
+       writeInlFile(filename, INL_HEADER, stream)
+
+def genericDeviceFeaturesWriter(dfDefs, pattern, filename):
+       stream = []
+       for _, _, _, extStruct, _, _, _ in dfDefs:
+               nameSubStr = extStruct.replace("VkPhysicalDevice", "").replace("KHR", "").replace("NV", "")
+               stream.append(pattern.format(extStruct, nameSubStr))
+       writeInlFile(filename, INL_HEADER, indentLines(stream))
+
+def writeDeviceFeaturesDefaultDeviceDefs(dfDefs, filename):
+       pattern = "const {0}&\tget{1}\t(void) const {{ return m_deviceFeatures.getFeatureType<{0}>();\t}}"
+       genericDeviceFeaturesWriter(dfDefs, pattern, filename)
+
+def writeDeviceFeaturesContextDecl(dfDefs, filename):
+       pattern = "const vk::{0}&\tget{1}\t(void) const;"
+       genericDeviceFeaturesWriter(dfDefs, pattern, filename)
+
+def writeDeviceFeaturesContextDefs(dfDefs, filename):
+       pattern = "const vk::{0}&\tContext::get{1}\t(void) const {{ return m_device->get{1}();\t}}"
+       genericDeviceFeaturesWriter(dfDefs, pattern, filename)
+
+def genericDevicePropertiesWriter(dfDefs, pattern, filename):
+       stream = []
+       for _, _, _, extStruct, _, _, _ in dfDefs:
+               nameSubStr = extStruct.replace("VkPhysicalDevice", "").replace("KHR", "").replace("NV", "")
+               if extStruct == "VkPhysicalDeviceRayTracingPropertiesNV":
+                       nameSubStr += "NV"
+               stream.append(pattern.format(extStruct, nameSubStr))
+       writeInlFile(filename, INL_HEADER, indentLines(stream))
+
+def writeDevicePropertiesDefaultDeviceDefs(dfDefs, filename):
+       pattern = "const {0}&\tget{1}\t(void) const {{ return m_deviceProperties.getPropertyType<{0}>();\t}}"
+       genericDevicePropertiesWriter(dfDefs, pattern, filename)
+
+def writeDevicePropertiesContextDecl(dfDefs, filename):
+       pattern = "const vk::{0}&\tget{1}\t(void) const;"
+       genericDevicePropertiesWriter(dfDefs, pattern, filename)
+
+def writeDevicePropertiesContextDefs(dfDefs, filename):
+       pattern = "const vk::{0}&\tContext::get{1}\t(void) const {{ return m_device->get{1}();\t}}"
+       genericDevicePropertiesWriter(dfDefs, pattern, filename)
+
+def writeMandatoryFeatures(api, filename):
+
+       def structInAPI(name):
+               for c in api.compositeTypes:
+                       if c.name == name:
+                               return True
+               return False
+       stream = []
+
+       dictStructs = {}
+       dictData = []
+       for _, data in api.additionalExtensionData:
+               if 'mandatory_features' not in data.keys():
+                       continue
+               # sort to have same results for py2 and py3
+               listStructFeatures = sorted(data['mandatory_features'].items(), key=lambda tup: tup[0])
+               for structure, featuresList in listStructFeatures:
+                       for featureData in featuresList:
+                               # allow for featureless VKSC only extensions
+                               if not 'features' in featureData.keys() or 'requirements' not in featureData.keys():
+                                       continue
+                               requirements = featureData['requirements']
+
+                               mandatory_variant = ''
+                               try:
+                                       mandatory_variant = featureData['mandatory_variant']
+                               except KeyError:
+                                       mandatory_variant = ''
+
+                               dictData.append( [ structure, featureData['features'], requirements, mandatory_variant] )
+
+                               if structure == 'VkPhysicalDeviceFeatures':
+                                       continue
+                               # if structure is not in dict construct name of variable and add is as a first item
+                               if (structure not in dictStructs):
+                                       dictStructs[structure] = ([structure[2:3].lower() + structure[3:]], mandatory_variant)
+                               # add first requirement if it is unique
+                               if requirements and (requirements[0] not in dictStructs[structure][0]):
+                                       dictStructs[structure][0].append(requirements[0])
+
+
+       stream.extend(['bool checkMandatoryFeatures(const vkt::Context& context)\n{',
+                                  '\tif (!context.isInstanceFunctionalitySupported("VK_KHR_get_physical_device_properties2"))',
+                                  '\t\tTCU_THROW(NotSupportedError, "Extension VK_KHR_get_physical_device_properties2 is not present");',
+                                  '',
+                                  '\tVkPhysicalDevice\t\t\t\t\tphysicalDevice\t\t= context.getPhysicalDevice();',
+                                  '\tconst InstanceInterface&\t\t\tvki\t\t\t\t\t= context.getInstanceInterface();',
+                                  '\tconst vector<VkExtensionProperties>\tdeviceExtensions\t= enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);',
+                                  '',
+                                  '\ttcu::TestLog& log = context.getTestContext().getLog();',
+                                  '\tvk::VkPhysicalDeviceFeatures2 coreFeatures;',
+                                  '\tdeMemset(&coreFeatures, 0, sizeof(coreFeatures));',
+                                  '\tcoreFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;',
+                                  '\tvoid** nextPtr = &coreFeatures.pNext;',
+                                  ''])
+
+       listStruct = sorted(dictStructs.items(), key=lambda tup: tup[0]) # sort to have same results for py2 and py3
+       apiStruct       = list( filter(lambda x : structInAPI(x[0]), listStruct)) # remove items not defined in current A
+
+       for k, v in apiStruct:
+               metaCondition = ''
+               if v[1] != '':
+                       metaCondition = metaCondition + ' || defined(CTS_USES_' + v[1][0].upper() + ')'
+                       stream.extend(['#if ' + metaCondition[4:]])
+               if (v[0][1].startswith("ApiVersion")):
+                       cond = '\tif (context.contextSupports(vk::' + v[0][1] + '))'
+               else:
+                       cond = '\tif (vk::isDeviceExtensionSupported(context.getUsedApiVersion(), context.getDeviceExtensions(), "' + v[0][1] + '"))'
+               stream.extend(['\tvk::' + k + ' ' + v[0][0]+ ';',
+                                       '\tdeMemset(&' + v[0][0] + ', 0, sizeof(' + v[0][0] + '));',
+                                       ''])
+               reqs = v[0][1:]
+               if len(reqs) > 0 :
+                       cond = 'if ( '
+                       for i, req in enumerate(reqs) :
+                               if (req.startswith("ApiVersion")):
+                                       cond = cond + 'context.contextSupports(vk::' + req + ')'
+                               else:
+                                       cond = cond + 'isExtensionStructSupported(deviceExtensions, RequiredExtension("' + req + '"))'
+                               if i+1 < len(reqs) :
+                                       cond = cond + ' || '
+                       cond = cond + ' )'
+                       stream.append('\t' + cond)
+               stream.extend(['\t{',
+                                          '\t\t' + v[0][0] + '.sType = getStructureType<' + k + '>();',
+                                          '\t\t*nextPtr = &' + v[0][0] + ';',
+                                          '\t\tnextPtr  = &' + v[0][0] + '.pNext;',
+                                          '\t}'])
+               if metaCondition != '':
+                       stream.extend(['#endif // ' + metaCondition[4:],
+                                                 ''])
+               else:
+                       stream.extend([''])
+       stream.extend(['\tcontext.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &coreFeatures);',
+                                  '\tbool result = true;',
+                                  ''])
+
+
+       for v in dictData:
+               if not structInAPI(v[0]): # remove items not defined in current API ( important for Vulkan SC )
+                       continue
+               structType = v[0];
+               structName = 'coreFeatures.features';
+               metaCondition = ''
+               if len(v) == 4 and v[3] != '':
+                       # for x in v[3].split('_'):
+                       metaCondition = metaCondition + ' || defined(CTS_USES_' + v[3][0].upper() + ')'
+                       stream.extend(['#if ' + metaCondition[4:]])
+               if v[0] != 'VkPhysicalDeviceFeatures' :
+                       structName = dictStructs[v[0]][0][0]
+               if len(v[2]) > 0 :
+                       condition = 'if ( '
+                       for i, req in enumerate(v[2]) :
+                               if (req.startswith("ApiVersion")):
+                                       condition = condition + 'context.contextSupports(vk::' + req + ')'
+                               elif '.' in req:
+                                       condition = condition + req
+                               else:
+                                       condition = condition + 'isExtensionStructSupported(deviceExtensions, RequiredExtension("' + req + '"))'
+                               if i+1 < len(v[2]) :
+                                       condition = condition + ' && '
+                       condition = condition + ' )'
+                       stream.append('\t' + condition)
+               stream.append('\t{')
+               # Don't need to support an AND case since that would just be another line in the .txt
+               if len(v[1]) == 1:
+                       stream.append('\t\tif ( ' + structName + '.' + v[1][0] + ' == VK_FALSE )')
+               else:
+                       condition = 'if ( '
+                       for i, feature in enumerate(v[1]):
+                               if i != 0:
+                                       condition = condition + ' && '
+                               condition = condition + '( ' + structName + '.' + feature + ' == VK_FALSE )'
+                       condition = condition + ' )'
+                       stream.append('\t\t' + condition)
+               featureSet = " or ".join(v[1])
+               stream.extend(['\t\t{',
+                                          '\t\t\tlog << tcu::TestLog::Message << "Mandatory feature ' + featureSet + ' not supported" << tcu::TestLog::EndMessage;',
+                                          '\t\t\tresult = false;',
+                                          '\t\t}',
+                                          '\t}'])
+               if metaCondition != '':
+                       stream.extend(['#endif // ' + metaCondition[4:],
+                                                 ''])
+               else:
+                       stream.extend([''])
+
+       stream.append('\treturn result;')
+       stream.append('}\n')
+       writeInlFile(filename, INL_HEADER, stream)
+
+def writeExtensionList(apiName, api, filename, extensionType):
+       extensionList = []
+       for extensionName, data in api.additionalExtensionData:
+               # make sure extension name starts with VK_KHR
+               if not extensionName.startswith('VK_KHR'):
+                       continue
+               # make sure that this extension was registered
+               if 'register_extension' not in data.keys():
+                       continue
+               # make sure extension is intended for the vulkan variant
+               is_sc_only = False
+
+               if apiName != 'SC':
+                       if 'mandatory_features' in data.keys():
+                               for structure, listStruct in data['mandatory_features'].items():
+                                       for featureData in listStruct:
+                                               mandatory_variant = ''
+                                               try:
+                                                       mandatory_variant = featureData['mandatory_variant']
+                                               except KeyError:
+                                                       mandatory_variant = ''
+                                               # VKSC only
+                                               if 'vulkansc' in mandatory_variant:
+                                                       is_sc_only = True
+               if is_sc_only:
+                       continue
+
+               # make sure extension has proper type
+               if extensionType == data['register_extension']['type']:
+                       extensionList.append(extensionName)
+       extensionList.sort()
+       # write list of all found extensions
+       stream = []
+       stream.append('static const char* s_allowed{0}KhrExtensions[] =\n{{'.format(extensionType.title()))
+       for n in extensionList:
+               stream.append('\t"' + n + '",')
+       stream.append('};\n')
+       writeInlFile(filename, INL_HEADER, stream)
+
+def parseCmdLineArgs():
+       parser = argparse.ArgumentParser(description = "Generate Vulkan INL files",
+                                                                        formatter_class=argparse.ArgumentDefaultsHelpFormatter)
+       parser.add_argument("-a",
+                                               "--api",
+                                               dest="api",
+                                               default="",
+                                               help="Choose between Vulkan and Vulkan SC")
+       parser.add_argument("-o",
+                                               "--outdir",
+                                               dest="outdir",
+                                               default="",
+                                               help="Choose output directory")
+       return parser.parse_args()
+
+def preprocessTopInclude(src, dir):
+       pattern = r'#include\s+"([^\n]+)"'
+       while True:
+               inc = re.search(pattern, src)
+               if inc is None:
+                       return src
+               incFileName = inc.string[inc.start(1):inc.end(1)]
+               patternIncNamed = r'#include\s+"' + incFileName + '"'
+               incBody = readFile(os.path.join(dir, incFileName)) if incFileName != 'vk_platform.h' else ''
+               incBodySanitized = re.sub(pattern, '', incBody)
+               bodyEndSanitized = re.sub(patternIncNamed, '', src[inc.end(0):])
+               src = src[0:inc.start(0)] + incBodySanitized + bodyEndSanitized
+       return src
+
+if __name__ == "__main__":
+       args = parseCmdLineArgs()
+
+       outputPath = DEFAULT_OUTPUT_DIR[args.api]
+       # if argument was specified it is interpreted as a path to which .inl files will be written
+       if args.outdir != '':
+               outputPath = args.outdir
+
+       files = []
+       src = ""
+       if args.api == '':
+
+               # Generate vulkan headers from vk.xml
+               currentDir                      = os.getcwd()
+               pythonExecutable        = sys.executable or "python"
+               os.chdir(os.path.join(VULKAN_HEADERS_INCLUDE_DIR, "..", "xml"))
+               vkTargets = [
+                       "vulkan_android.h",
+                       "vulkan_beta.h",
+                       "vulkan_core.h",
+                       "vulkan_fuchsia.h",
+                       "vulkan_ggp.h",
+                       "vulkan_ios.h",
+                       "vulkan_macos.h",
+                       "vulkan_metal.h",
+                       "vulkan_vi.h",
+                       "vulkan_wayland.h",
+                       "vulkan_win32.h",
+                       "vulkan_xcb.h",
+                       "vulkan_xlib.h",
+                       "vulkan_xlib_xrandr.h",
+               ]
+               for target in vkTargets:
+                       execute([pythonExecutable, "../scripts/genvk.py", "-o", "../include/vulkan", target])
+
+               videoDir = "../include/vk_video"
+               if (not os.path.isdir(videoDir)):
+                       os.mkdir(videoDir)
+
+               videoTargets = [
+                       'vulkan_video_codecs_common.h',
+                       'vulkan_video_codec_h264std.h',
+                       'vulkan_video_codec_h264std_decode.h',
+                       'vulkan_video_codec_h264std_encode.h',
+                       'vulkan_video_codec_h265std.h',
+                       'vulkan_video_codec_h265std_decode.h',
+                       'vulkan_video_codec_h265std_encode.h',
+               ]
+               for target in videoTargets:
+                       execute([pythonExecutable, "../scripts/genvk.py", "-registry", "video.xml", "-o", videoDir, target])
+
+               os.chdir(currentDir)
+
+               # Read all .h files and make sure vulkan_core.h is first out of vulkan files
+               vkTargets.remove("vulkan_core.h")
+               vkTargets.sort()
+               vkTargets.insert(0, "vulkan_core.h")
+               vkFilesWithCatalog = [os.path.join("vulkan", f) for f in vkTargets]
+
+               for file in vkFilesWithCatalog:
+                       src += preprocessTopInclude(readFile(os.path.join(VULKAN_HEADERS_INCLUDE_DIR,file)), VULKAN_HEADERS_INCLUDE_DIR)
+       elif args.api=='SC':
+               # At the moment vulkan-docs does not have vulkan_sc_core.h. We will use a file from external/vulkancts/scripts/src
+               src = preprocessTopInclude(readFile(os.path.join(os.path.dirname(__file__), "src", "vulkan_sc_core.h" )), VULKAN_HEADERS_INCLUDE_DIR)
+
+       src = re.sub('\s*//[^\n]*', '', src)
+       src = re.sub('\n\n', '\n', src)
+
+       api                             = parseAPI(src)
+
+       platformFuncs   = [Function.TYPE_PLATFORM]
+       instanceFuncs   = [Function.TYPE_INSTANCE]
+       deviceFuncs             = [Function.TYPE_DEVICE]
+
+       dfd                                                                             = generateDeviceFeaturesDefs(args.api, src)
+       writeDeviceFeatures                                             (api, dfd, os.path.join(outputPath, "vkDeviceFeatures.inl"))
+       writeDeviceFeaturesDefaultDeviceDefs    (dfd, os.path.join(outputPath, "vkDeviceFeaturesForDefaultDeviceDefs.inl"))
+       writeDeviceFeaturesContextDecl                  (dfd, os.path.join(outputPath, "vkDeviceFeaturesForContextDecl.inl"))
+       writeDeviceFeaturesContextDefs                  (dfd, os.path.join(outputPath, "vkDeviceFeaturesForContextDefs.inl"))
+       writeDeviceFeatureTest                                  (args.api, api, os.path.join(outputPath, "vkDeviceFeatureTest.inl"))
+
+       dpd                                                                             = generateDevicePropertiesDefs(args.api, src)
+       writeDeviceProperties                                   (api, dpd, os.path.join(outputPath, "vkDeviceProperties.inl"))
+
+       writeDevicePropertiesDefaultDeviceDefs  (dpd, os.path.join(outputPath, "vkDevicePropertiesForDefaultDeviceDefs.inl"))
+       writeDevicePropertiesContextDecl                (dpd, os.path.join(outputPath, "vkDevicePropertiesForContextDecl.inl"))
+       writeDevicePropertiesContextDefs                (dpd, os.path.join(outputPath, "vkDevicePropertiesForContextDefs.inl"))
+
+       writeHandleType                                                 (api, os.path.join(outputPath, "vkHandleType.inl"))
+       writeBasicTypes                                                 (args.api, api, os.path.join(outputPath, "vkBasicTypes.inl"))
+       writeCompositeTypes                                             (api, os.path.join(outputPath, "vkStructTypes.inl"))
+       writeInterfaceDecl                                              (api, os.path.join(outputPath, "vkVirtualPlatformInterface.inl"),               platformFuncs,  False)
+       writeInterfaceDecl                                              (api, os.path.join(outputPath, "vkVirtualInstanceInterface.inl"),               instanceFuncs,  False)
+       writeInterfaceDecl                                              (api, os.path.join(outputPath, "vkVirtualDeviceInterface.inl"),                 deviceFuncs,    False)
+       writeInterfaceDecl                                              (api, os.path.join(outputPath, "vkConcretePlatformInterface.inl"),              platformFuncs,  True)
+       writeInterfaceDecl                                              (api, os.path.join(outputPath, "vkConcreteInstanceInterface.inl"),              instanceFuncs,  True)
+       writeInterfaceDecl                                              (api, os.path.join(outputPath, "vkConcreteDeviceInterface.inl"),                deviceFuncs,    True)
+       writeFunctionPtrTypes                                   (api, os.path.join(outputPath, "vkFunctionPointerTypes.inl"))
+       writeFunctionPointers                                   (api, os.path.join(outputPath, "vkPlatformFunctionPointers.inl"),               platformFuncs)
+       writeFunctionPointers                                   (api, os.path.join(outputPath, "vkInstanceFunctionPointers.inl"),               instanceFuncs)
+       writeFunctionPointers                                   (api, os.path.join(outputPath, "vkDeviceFunctionPointers.inl"),                 deviceFuncs)
+       writeInitFunctionPointers                               (api, os.path.join(outputPath, "vkInitPlatformFunctionPointers.inl"),   platformFuncs,  lambda f: f.name != "vkGetInstanceProcAddr")
+       writeInitFunctionPointers                               (api, os.path.join(outputPath, "vkInitInstanceFunctionPointers.inl"),   instanceFuncs)
+       writeInitFunctionPointers                               (api, os.path.join(outputPath, "vkInitDeviceFunctionPointers.inl"),             deviceFuncs)
+       writeFuncPtrInterfaceImpl                               (api, os.path.join(outputPath, "vkPlatformDriverImpl.inl"),                             platformFuncs,  "PlatformDriver")
+       writeFuncPtrInterfaceImpl                               (api, os.path.join(outputPath, "vkInstanceDriverImpl.inl"),                             instanceFuncs,  "InstanceDriver")
+       writeFuncPtrInterfaceImpl                               (api, os.path.join(outputPath, "vkDeviceDriverImpl.inl"),                               deviceFuncs,    "DeviceDriver")
+       if args.api=='SC':
+               writeFuncPtrInterfaceSCImpl                     (api, os.path.join(outputPath, "vkDeviceDriverSCImpl.inl"),                             deviceFuncs,    "DeviceDriverSC")
+       writeStrUtilProto                                               (api, os.path.join(outputPath, "vkStrUtil.inl"))
+       writeStrUtilImpl                                                (api, os.path.join(outputPath, "vkStrUtilImpl.inl"))
+       writeRefUtilProto                                               (api, os.path.join(outputPath, "vkRefUtil.inl"))
+       writeRefUtilImpl                                                (api, os.path.join(outputPath, "vkRefUtilImpl.inl"))
+       writeStructTraitsImpl                                   (api, os.path.join(outputPath, "vkGetStructureTypeImpl.inl"))
+       writeNullDriverImpl                                             (api, os.path.join(outputPath, "vkNullDriverImpl.inl"))
+       writeTypeUtil                                                   (api, os.path.join(outputPath, "vkTypeUtil.inl"))
+       writeSupportedExtensions                                (args.api, api, os.path.join(outputPath, "vkSupportedExtensions.inl"))
+       writeCoreFunctionalities                                (api, os.path.join(outputPath, "vkCoreFunctionalities.inl"))
+       writeExtensionFunctions                                 (api, os.path.join(outputPath, "vkExtensionFunctions.inl"))
+       writeDeviceFeatures2                                    (api, os.path.join(outputPath, "vkDeviceFeatures2.inl"))
+       writeMandatoryFeatures                                  (api, os.path.join(outputPath, "vkMandatoryFeatures.inl"))
+       writeExtensionList                                              (args.api, api, os.path.join(outputPath, "vkInstanceExtensions.inl"),                           'instance')
+       writeExtensionList                                              (args.api, api, os.path.join(outputPath, "vkDeviceExtensions.inl"),                             'device')
+       writeDriverIds                                                  (args.api, os.path.join(outputPath, "vkKnownDriverIds.inl"))
+       writeObjTypeImpl                                                (api, os.path.join(outputPath, "vkObjTypeImpl.inl"))
+       # NOTE: when new files are generated then they should also be added to the
+       # vk-gl-cts\external\vulkancts\framework\vulkan\CMakeLists.txt outputs list
index 6a6ec6f..d53aaa9 100644 (file)
@@ -190,7 +190,6 @@ EARLY_SPECIAL_RECIPES       = [
                        RunScript(os.path.join("scripts", "opengl", "gen_all.py")),
                        RunScript(os.path.join("external", "vulkancts", "scripts", "gen_framework.py")),
                        RunScript(os.path.join("external", "vulkancts", "scripts", "gen_framework_c.py")),
-                       RunScript(os.path.join("external", "vulkancts", "scripts", "gen_ext_deps.py")),
                        RunScript(os.path.join("external", "vulkancts", "scripts", "gen_framework.py"), lambda env: ["--api", "SC"] ),
                        RunScript(os.path.join("external", "vulkancts", "scripts", "gen_framework_c.py"), lambda env: ["--api", "SC"] ),
                        RunScript(os.path.join("scripts", "gen_android_mk.py"))